Skip to content

Commit ffb977f

Browse files
committed
refactor meta -> buildMeta, add factoryMeta
add compat layer to Module.meta
1 parent 2bb95a3 commit ffb977f

29 files changed

+133
-101
lines changed

lib/Compilation.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1426,11 +1426,11 @@ class Compilation extends Tapable {
14261426
for(let indexModule = 0; indexModule < modules.length; indexModule++) {
14271427
const module = modules[indexModule];
14281428

1429-
if(module.fileDependencies) {
1430-
addAllToSet(this.fileDependencies, module.fileDependencies);
1429+
if(module.buildInfo.fileDependencies) {
1430+
addAllToSet(this.fileDependencies, module.buildInfo.fileDependencies);
14311431
}
1432-
if(module.contextDependencies) {
1433-
addAllToSet(this.contextDependencies, module.contextDependencies);
1432+
if(module.buildInfo.contextDependencies) {
1433+
addAllToSet(this.contextDependencies, module.buildInfo.contextDependencies);
14341434
}
14351435
}
14361436
this.errors.forEach(error => {
@@ -1514,10 +1514,11 @@ class Compilation extends Tapable {
15141514
createModuleAssets() {
15151515
for(let i = 0; i < this.modules.length; i++) {
15161516
const module = this.modules[i];
1517-
if(module.assets) {
1518-
Object.keys(module.assets).forEach((assetName) => {
1517+
if(!module.buildInfo) console.log(module);
1518+
if(module.buildInfo.assets) {
1519+
Object.keys(module.buildInfo.assets).forEach((assetName) => {
15191520
const fileName = this.getPath(assetName);
1520-
this.assets[fileName] = module.assets[assetName];
1521+
this.assets[fileName] = module.buildInfo.assets[assetName];
15211522
this.hooks.moduleAsset.call(module, fileName);
15221523
});
15231524
}

lib/ContextModule.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ class ContextModule extends Module {
4040
this.resolveOptions = options.resolveOptions;
4141

4242
// Info from Build
43-
this.builtTime = undefined;
44-
this.contextDependencies = new Set([this.context]);
43+
this._contextDependencies = new Set([this.context]);
4544

4645
if(typeof options.mode !== "string")
4746
throw new Error("options.mode is a required option");
@@ -136,12 +135,16 @@ class ContextModule extends Module {
136135
return true;
137136
}
138137

139-
return ts >= this.builtTime;
138+
return ts >= this.buildInfo.builtTime;
140139
}
141140

142141
build(options, compilation, resolver, fs, callback) {
143142
this.built = true;
144-
this.builtTime = Date.now();
143+
this.buildMeta = {};
144+
this.buildInfo = {
145+
builtTime: Date.now(),
146+
contextDependencies: this._contextDependencies
147+
};
145148
this.resolveDependencies(fs, this.options, (err, dependencies) => {
146149
if(err) return callback(err);
147150

@@ -238,7 +241,7 @@ class ContextModule extends Module {
238241
.sort((a, b) => {
239242
return b.module.id - a.module.id;
240243
}).reduce((map, dep) => {
241-
const harmonyModule = dep.module.meta && dep.module.meta.harmonyModule;
244+
const harmonyModule = dep.module.buildMeta && dep.module.buildMeta.harmonyModule;
242245
if(!harmonyModule) hasNonHarmony = true;
243246
if(harmonyModule) hasHarmony = true;
244247
map[dep.module.id] = harmonyModule ? 1 : 0;

lib/DelegatedModule.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ class DelegatedModule extends Module {
1818
// Info from Factory
1919
this.sourceRequest = sourceRequest;
2020
this.request = data.id;
21-
this.meta = data.meta;
2221
this.type = type;
2322
this.userRequest = userRequest;
2423
this.originalRequest = originalRequest;
@@ -43,6 +42,8 @@ class DelegatedModule extends Module {
4342

4443
build(options, compilation, resolver, fs, callback) {
4544
this.built = true;
45+
this.buildMeta = Object.assign({}, this.delegateData.buildMeta);
46+
this.buildInfo = {};
4647
this.dependencies.length = 0;
4748
this.addDependency(new DelegatedSourceDependency(this.sourceRequest));
4849
this.addDependency(new DelegatedExportsDependency(this, this.delegateData.exports || true));

lib/DllModule.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class DllModule extends Module {
2828

2929
build(options, compilation, resolver, fs, callback) {
3030
this.built = true;
31+
this.buildMeta = {};
32+
this.buildInfo = {};
3133
return callback();
3234
}
3335

lib/ExternalModule.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class ExternalModule extends Module {
4242

4343
build(options, compilation, resolver, fs, callback) {
4444
this.built = true;
45+
this.buildMeta = {};
46+
this.buildInfo = {};
4547
callback();
4648
}
4749

lib/FlagDependencyExportsPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class FlagDependencyExportsPlugin {
105105
module = queue.dequeue();
106106

107107
if(module.providedExports !== true) {
108-
moduleWithExports = module.meta && module.meta.harmonyModule;
108+
moduleWithExports = module.buildMeta && module.buildMeta.harmonyModule;
109109
moduleProvidedExports = Array.isArray(module.providedExports) ? new Set(module.providedExports) : new Set();
110110
processDependenciesBlock(module);
111111
if(!moduleWithExports) {

lib/FlagDependencyUsagePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class FlagDependencyUsagePlugin {
4141

4242
// for a module without side effects we stop tracking usage here when no export is used
4343
// This module won't be evaluated in this case
44-
if(module.sideEffectFree) {
44+
if(module.factoryMeta.sideEffectFree) {
4545
if(module.usedExports === false) return;
4646
if(Array.isArray(module.usedExports) && module.usedExports.length === 0) return;
4747
}

lib/FunctionModuleTemplatePlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class FunctionModuleTemplatePlugin {
2424
args.push(module.exportsArgument, "__webpack_require__");
2525
}
2626
source.add("/***/ (function(" + args.join(", ") + ") {\n\n");
27-
if(module.strict) source.add("\"use strict\";\n");
27+
if(module.buildInfo.strict) source.add("\"use strict\";\n");
2828
source.add(moduleSource);
2929
source.add("\n\n/***/ })");
3030
return source;

lib/LibManifestPlugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class LibManifestPlugin {
4040
ident,
4141
data: {
4242
id: module.id,
43-
meta: module.meta,
43+
buildMeta: module.buildMeta,
4444
exports: Array.isArray(module.providedExports) ? module.providedExports : undefined
4545
}
4646
};

lib/Module.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,13 @@ class Module extends DependenciesBlock {
5959
// TODO refactor: pass as constructor argument
6060
this.context = null;
6161
this.resolveOptions = EMPTY_RESOLVE_OPTIONS;
62+
this.factoryMeta = {};
6263

6364
// Info from Build
64-
this.sideEffectFree = false;
6565
this.warnings = [];
6666
this.errors = [];
67-
this.strict = false;
68-
this.meta = {};
69-
this.exportsArgument = "exports";
70-
this.moduleArgument = "module";
71-
this.assets = null;
72-
this.fileDependencies = undefined;
73-
this.contextDependencies = undefined;
67+
this.buildMeta = undefined;
68+
this.buildInfo = undefined;
7469

7570
// Graph (per Compilation)
7671
this.reasons = [];
@@ -96,6 +91,14 @@ class Module extends DependenciesBlock {
9691
this._rewriteChunkInReasons = undefined;
9792
}
9893

94+
get exportsArgument() {
95+
return this.buildInfo && this.buildInfo.exportsArgument || "exports";
96+
}
97+
98+
get moduleArgument() {
99+
return this.buildInfo && this.buildInfo.moduleArgument || "module";
100+
}
101+
99102
disconnect() {
100103
this.hash = undefined;
101104
this.renderedHash = undefined;
@@ -288,6 +291,8 @@ class Module extends DependenciesBlock {
288291
}
289292

290293
unbuild() {
294+
this.buildMeta = undefined;
295+
this.buildInfo = undefined;
291296
this.disconnect();
292297
}
293298

@@ -320,6 +325,16 @@ Object.defineProperty(Module.prototype, "chunks", {
320325
}
321326
});
322327

328+
Object.defineProperty(Module.prototype, "meta", {
329+
configurable: false,
330+
get: util.deprecate(function() {
331+
return this.buildMeta;
332+
}, "Module.meta was renamed to Module.buildMeta"),
333+
set: util.deprecate(function(value) {
334+
this.buildMeta = value;
335+
}, "Module.meta was renamed to Module.buildMeta"),
336+
});
337+
323338
Module.prototype.identifier = null;
324339
Module.prototype.readableIdentifier = null;
325340
Module.prototype.build = null;

0 commit comments

Comments
 (0)