Skip to content

Commit 306684a

Browse files
michael-ciniawskysokra
authored andcommitted
style(JavascriptModulesPlugin): add space and use destructuring
1 parent 80f6526 commit 306684a

File tree

1 file changed

+72
-35
lines changed

1 file changed

+72
-35
lines changed

lib/JavascriptModulesPlugin.js

Lines changed: 72 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,17 @@ class JavascriptModulesPlugin {
4242
"The 'compilation' argument must be an instance of Compilation"
4343
);
4444
}
45+
4546
let hooks = compilationHooksMap.get(compilation);
47+
4648
if (hooks === undefined) {
4749
hooks = {
4850
shouldRender: new SyncBailHook(["module", "chunk"])
4951
};
52+
5053
compilationHooksMap.set(compilation, hooks);
5154
}
55+
5256
return hooks;
5357
}
5458

@@ -57,67 +61,82 @@ class JavascriptModulesPlugin {
5761
* @returns {void}
5862
*/
5963
apply(compiler) {
60-
compiler.hooks.compilation.tap(
64+
const { compilation } = compiler.hooks;
65+
66+
compilation.tap(
6167
"JavascriptModulesPlugin",
6268
(compilation, { normalModuleFactory }) => {
63-
const moduleGraph = compilation.moduleGraph;
6469
const hooks = JavascriptModulesPlugin.getHooks(compilation);
70+
6571
hooks.shouldRender.tap("JavascriptModulesPlugin", module => {
6672
if (module.type === "javascript/auto") return true;
6773
if (module.type === "javascript/dynamic") return true;
6874
if (module.type === "javascript/esm") return true;
6975
});
70-
normalModuleFactory.hooks.createParser
76+
77+
const { createParser, createGenerator } = normalModuleFactory.hooks;
78+
79+
createParser
7180
.for("javascript/auto")
7281
.tap("JavascriptModulesPlugin", options => {
7382
return new JavascriptParser(options, "auto");
7483
});
75-
normalModuleFactory.hooks.createParser
84+
createParser
7685
.for("javascript/dynamic")
7786
.tap("JavascriptModulesPlugin", options => {
7887
return new JavascriptParser(options, "script");
7988
});
80-
normalModuleFactory.hooks.createParser
89+
createParser
8190
.for("javascript/esm")
8291
.tap("JavascriptModulesPlugin", options => {
8392
return new JavascriptParser(options, "module");
8493
});
85-
normalModuleFactory.hooks.createGenerator
94+
95+
createGenerator
8696
.for("javascript/auto")
8797
.tap("JavascriptModulesPlugin", () => {
8898
return new JavascriptGenerator();
8999
});
90-
normalModuleFactory.hooks.createGenerator
100+
createGenerator
91101
.for("javascript/dynamic")
92102
.tap("JavascriptModulesPlugin", () => {
93103
return new JavascriptGenerator();
94104
});
95-
normalModuleFactory.hooks.createGenerator
105+
createGenerator
96106
.for("javascript/esm")
97107
.tap("JavascriptModulesPlugin", () => {
98108
return new JavascriptGenerator();
99109
});
100-
compilation.mainTemplate.hooks.renderManifest.tap(
110+
111+
const { moduleGraph } = compilation;
112+
const { contentHash } = compilation.hooks;
113+
const { mainTemplate, chunkTemplate } = compilation;
114+
115+
mainTemplate.hooks.renderManifest.tap(
101116
"JavascriptModulesPlugin",
102117
(result, options) => {
103118
const chunk = options.chunk;
104-
const hash = options.hash;
105-
const outputOptions = options.outputOptions;
119+
const { filename } = options.outputOptions;
120+
const { hash } = options;
121+
const { moduleGraph, chunkGraph } = options;
122+
123+
const mainTemplate = compilation.mainTemplate;
124+
125+
const filenameTemplate = chunk.filenameTemplate || filename;
126+
127+
const runtimeTemplate = options.runtimeTemplate;
106128
const moduleTemplates = options.moduleTemplates;
107129
const dependencyTemplates = options.dependencyTemplates;
108130

109-
const filenameTemplate =
110-
chunk.filenameTemplate || outputOptions.filename;
111-
112131
result.push({
113132
render: () =>
114-
compilation.mainTemplate.render(moduleTemplates.javascript, {
133+
mainTemplate.render(moduleTemplates.javascript, {
115134
hash,
116135
chunk,
117-
dependencyTemplates,
118-
runtimeTemplate: options.runtimeTemplate,
119-
moduleGraph: options.moduleGraph,
120-
chunkGraph: options.chunkGraph
136+
chunkGraph,
137+
moduleGraph,
138+
runtimeTemplate,
139+
dependencyTemplates
121140
}),
122141
filenameTemplate,
123142
pathOptions: {
@@ -130,7 +149,8 @@ class JavascriptModulesPlugin {
130149
return result;
131150
}
132151
);
133-
compilation.mainTemplate.hooks.modules.tap(
152+
153+
mainTemplate.hooks.modules.tap(
134154
"JavascriptModulesPlugin",
135155
(source, moduleTemplate, renderContext) => {
136156
const chunk = renderContext.chunk;
@@ -142,23 +162,26 @@ class JavascriptModulesPlugin {
142162
);
143163
}
144164
);
145-
compilation.chunkTemplate.hooks.renderManifest.tap(
165+
166+
chunkTemplate.hooks.renderManifest.tap(
146167
"JavascriptModulesPlugin",
147168
(result, options) => {
148169
const chunk = options.chunk;
149-
const outputOptions = options.outputOptions;
150-
const moduleTemplates = options.moduleTemplates;
151-
const dependencyTemplates = options.dependencyTemplates;
170+
const { filename, chunkFilename } = options.outputOptions;
152171

153172
let filenameTemplate;
173+
154174
if (chunk.filenameTemplate) {
155175
filenameTemplate = chunk.filenameTemplate;
156176
} else if (chunk.isOnlyInitial()) {
157-
filenameTemplate = outputOptions.filename;
177+
filenameTemplate = filename;
158178
} else {
159-
filenameTemplate = outputOptions.chunkFilename;
179+
filenameTemplate = chunkFilename;
160180
}
161181

182+
const { chunkTemplate, runtimeTemplate } = compilation;
183+
const { moduleTemplates, dependencyTemplates } = options;
184+
162185
const { chunkGraph } = compilation;
163186

164187
const hasModules = Array.from(
@@ -176,14 +199,14 @@ class JavascriptModulesPlugin {
176199
render: () =>
177200
this.renderJavascript(
178201
compilation,
179-
compilation.chunkTemplate,
202+
chunkTemplate,
180203
moduleTemplates.javascript,
181204
{
182205
chunk,
183-
dependencyTemplates,
184-
runtimeTemplate: compilation.runtimeTemplate,
206+
chunkGraph,
185207
moduleGraph,
186-
chunkGraph: compilation.chunkGraph
208+
runtimeTemplate,
209+
dependencyTemplates
187210
}
188211
),
189212
filenameTemplate,
@@ -199,10 +222,13 @@ class JavascriptModulesPlugin {
199222
}
200223
}
201224
);
202-
compilation.hooks.contentHash.tap("JavascriptModulesPlugin", chunk => {
225+
226+
contentHash.tap("JavascriptModulesPlugin", chunk => {
203227
const {
204228
chunkGraph,
205229
moduleGraph,
230+
mainTemplate,
231+
chunkTemplate,
206232
runtimeTemplate,
207233
outputOptions: {
208234
hashSalt,
@@ -211,18 +237,22 @@ class JavascriptModulesPlugin {
211237
hashFunction
212238
}
213239
} = compilation;
240+
214241
const hash = createHash(hashFunction);
242+
215243
if (hashSalt) hash.update(hashSalt);
216-
const template = chunk.hasRuntime()
217-
? compilation.mainTemplate
218-
: compilation.chunkTemplate;
244+
245+
const template = chunk.hasRuntime() ? mainTemplate : chunkTemplate;
246+
219247
hash.update(`${chunk.id} `);
220248
hash.update(chunk.ids ? chunk.ids.join(",") : "");
249+
221250
template.updateHashForChunk(hash, chunk, {
222251
chunkGraph,
223252
moduleGraph,
224253
runtimeTemplate
225254
});
255+
226256
for (const m of chunkGraph.getOrderedChunkModulesIterable(
227257
chunk,
228258
compareModulesById(chunkGraph)
@@ -231,6 +261,7 @@ class JavascriptModulesPlugin {
231261
hash.update(chunkGraph.getModuleHash(m));
232262
}
233263
}
264+
234265
chunk.contentHash.javascript = hash
235266
.digest(hashDigest)
236267
.substr(0, hashDigestLength);
@@ -250,25 +281,31 @@ class JavascriptModulesPlugin {
250281
const hooks = JavascriptModulesPlugin.getHooks(compilation);
251282

252283
const chunk = renderContext.chunk;
284+
253285
const moduleSources = Template.renderChunkModules(
254286
renderContext,
255-
m => hooks.shouldRender.call(m, chunk),
287+
module => hooks.shouldRender.call(module, chunk),
256288
moduleTemplate
257289
);
290+
258291
const core = chunkTemplate.hooks.modules.call(
259292
moduleSources,
260293
moduleTemplate,
261294
renderContext
262295
);
296+
263297
let source = chunkTemplate.hooks.render.call(
264298
core,
265299
moduleTemplate,
266300
renderContext
267301
);
302+
268303
if (renderContext.chunkGraph.getNumberOfEntryModules(chunk) > 0) {
269304
source = chunkTemplate.hooks.renderWithEntry.call(source, chunk);
270305
}
306+
271307
chunk.rendered = true;
308+
272309
return new ConcatSource(source, ";");
273310
}
274311
}

0 commit comments

Comments
 (0)