1234567891011121314151617181920212223242526272829303132 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- "use strict";
-
- const ConcatSource = require("webpack-sources").ConcatSource;
-
- function accessorToObjectAccess(accessor) {
- return accessor.map(a => `[${JSON.stringify(a)}]`).join("");
- }
-
- class ExportPropertyMainTemplatePlugin {
- constructor(property) {
- this.property = property;
- }
-
- apply(compilation) {
- const mainTemplate = compilation.mainTemplate;
- compilation.templatesPlugin("render-with-entry", (source, chunk, hash) => {
- const postfix = `${accessorToObjectAccess([].concat(this.property))}`;
- return new ConcatSource(source, postfix);
- });
- mainTemplate.plugin("hash", hash => {
- hash.update("export property");
- hash.update(`${this.property}`);
- });
- }
- }
-
- module.exports = ExportPropertyMainTemplatePlugin;
|