* Applies the plugin by registering its hooks on the compiler. * @param {Compiler} compiler the compiler instance * @returns {void}
(compiler)
| 432 | * @returns {void} |
| 433 | */ |
| 434 | apply(compiler) { |
| 435 | compiler.hooks.compilation.tap( |
| 436 | PLUGIN_NAME, |
| 437 | (compilation, { normalModuleFactory }) => { |
| 438 | const hooks = JavascriptModulesPlugin.getCompilationHooks(compilation); |
| 439 | |
| 440 | for (const type of [ |
| 441 | JAVASCRIPT_MODULE_TYPE_AUTO, |
| 442 | JAVASCRIPT_MODULE_TYPE_DYNAMIC, |
| 443 | JAVASCRIPT_MODULE_TYPE_ESM |
| 444 | ]) { |
| 445 | normalModuleFactory.hooks.createModuleClass |
| 446 | .for(type) |
| 447 | .tap( |
| 448 | PLUGIN_NAME, |
| 449 | (createData, _resolveData) => new JavascriptModule(createData) |
| 450 | ); |
| 451 | normalModuleFactory.hooks.createParser |
| 452 | .for(type) |
| 453 | .tap(PLUGIN_NAME, (options) => { |
| 454 | switch (type) { |
| 455 | case JAVASCRIPT_MODULE_TYPE_AUTO: { |
| 456 | return new JavascriptParser(class="st">"auto", { |
| 457 | parse: options.parse, |
| 458 | typescript: options.typescript |
| 459 | }); |
| 460 | } |
| 461 | case JAVASCRIPT_MODULE_TYPE_DYNAMIC: { |
| 462 | return new JavascriptParser(class="st">"script", { |
| 463 | parse: options.parse, |
| 464 | typescript: options.typescript |
| 465 | }); |
| 466 | } |
| 467 | case JAVASCRIPT_MODULE_TYPE_ESM: { |
| 468 | return new JavascriptParser(class="st">"module", { |
| 469 | parse: options.parse, |
| 470 | typescript: options.typescript |
| 471 | }); |
| 472 | } |
| 473 | } |
| 474 | }); |
| 475 | normalModuleFactory.hooks.createGenerator |
| 476 | .for(type) |
| 477 | .tap(PLUGIN_NAME, () => new JavascriptGenerator()); |
| 478 | |
| 479 | NormalModule.getCompilationHooks(compilation).processResult.tap( |
| 480 | PLUGIN_NAME, |
| 481 | (result, module) => { |
| 482 | if (module.type === type) { |
| 483 | const [source, ...rest] = result; |
| 484 | |
| 485 | return [removeBOM(source), ...rest]; |
| 486 | } |
| 487 | |
| 488 | return result; |
| 489 | } |
| 490 | ); |
| 491 | } |
nothing calls this directly
no test coverage detected