* Processes the provided compiler. * @param {Compiler} compiler webpack compiler * @param {HandlerFn} handler function that executes for every progress step * @returns {void}
(compiler, handler)
| 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": |
no test coverage detected