MCPcopy
hub / github.com/webpack/webpack / _applyOnCompiler

Method _applyOnCompiler

lib/ProgressPlugin.js:316–813  ·  lib/ProgressPlugin.js::ProgressPlugin._applyOnCompiler

* Processes the provided compiler. * @param {Compiler} compiler webpack compiler * @param {HandlerFn} handler function that executes for every progress step * @returns {void}

(compiler, handler)

Source from the content-addressed store, hash-verified

314 * @returns {void}
315 */
316 _applyOnCompiler(compiler, handler) {
317 compiler.hooks.validate.tap(PLUGIN_NAME, () => {
318 compiler.validate(
319 () => require(class="st">"../schemas/plugins/ProgressPlugin.json"),
320 this.options,
321 {
322 name: class="st">"Progress Plugin",
323 baseDataPath: class="st">"options"
324 },
325 (options) => require(class="st">"../schemas/plugins/ProgressPlugin.check")(options)
326 );
327 });
328
329 const showEntries = this.showEntries;
330 const showModules = this.showModules;
331 const showDependencies = this.showDependencies;
332 const showActiveModules = this.showActiveModules;
333 let lastActiveModule = class="st">"";
334 let currentLoader = class="st">"";
335 let lastModulesCount = 0;
336 let lastDependenciesCount = 0;
337 let lastEntriesCount = 0;
338 let modulesCount = 0;
339 let skippedModulesCount = 0;
340 let dependenciesCount = 0;
341 let skippedDependenciesCount = 0;
342 let entriesCount = 1;
343 let doneModules = 0;
344 let doneDependencies = 0;
345 let doneEntries = 0;
346 /** @type {Set<string>} */
347 const activeModules = new Set();
348 let lastUpdate = 0;
349
350 const updateThrottled = () => {
351 if (lastUpdate + 500 < Date.now()) update();
352 };
353
354 const update = () => {
355 /** @type {string[]} */
356 const items = [];
357 const percentByModules =
358 doneModules /
359 Math.max(lastModulesCount || this.modulesCount || 1, modulesCount);
360 const percentByEntries =
361 doneEntries /
362 Math.max(lastEntriesCount || this.dependenciesCount || 1, entriesCount);
363 const percentByDependencies =
364 doneDependencies /
365 Math.max(lastDependenciesCount || 1, dependenciesCount);
366 /** @type {number} */
367 let percentageFactor;
368
369 switch (this.percentBy) {
370 case class="st">"entries":
371 percentageFactor = percentByEntries;
372 break;
373 case class="st">"dependencies":

Callers 1

applyMethod · 0.95

Calls 15

tapMethod · 0.80
validateMethod · 0.80
getItemCacheMethod · 0.80
isChildMethod · 0.80
entriesMethod · 0.80
interceptMethod · 0.80
resolveMethod · 0.65
keysMethod · 0.65
requireFunction · 0.50
updateFunction · 0.50
getCacheMethod · 0.45
getPromiseMethod · 0.45

Tested by

no test coverage detected