From 8a10ea3c926c80087efd3f5f1eabbddc7fb87d40 Mon Sep 17 00:00:00 2001 From: Florent Cailhol Date: Thu, 8 Nov 2018 22:59:19 +0100 Subject: [PATCH] Type 'apply' method of plugins --- lib/ConstPlugin.js | 6 ++++++ lib/EvalDevToolModulePlugin.js | 6 ++++++ lib/EvalDevToolModuleTemplatePlugin.js | 8 +++++++ ...valSourceMapDevToolModuleTemplatePlugin.js | 8 +++++++ lib/LoaderOptionsPlugin.js | 5 +++++ lib/LoaderTargetPlugin.js | 9 ++++++++ lib/Module.js | 7 ++++++- lib/NormalModule.js | 5 ----- lib/ProvidePlugin.js | 9 ++++++++ lib/SizeFormatHelpers.js | 4 ++++ lib/SourceMapDevToolModuleOptionsPlugin.js | 6 ++++++ lib/WatchIgnorePlugin.js | 5 +++++ lib/ids/assignAscendingChunkIds.js | 12 ++++++++++- lib/ids/assignAscendingModuleIds.js | 12 ++++++++++- lib/node/NodeEnvironmentPlugin.js | 11 +++++++++- lib/node/NodeSourcePlugin.js | 7 +++++++ lib/node/NodeTargetPlugin.js | 6 ++++++ lib/node/NodeTemplatePlugin.js | 6 ++++++ lib/node/ReadFileCompileWasmTemplatePlugin.js | 6 ++++++ lib/optimize/EnsureChunkConditionsPlugin.js | 11 ++++++++++ lib/optimize/FlagIncludedChunksPlugin.js | 10 +++++++++ lib/optimize/RuntimeChunkPlugin.js | 6 ++++++ lib/web/FetchCompileWasmTemplatePlugin.js | 6 ++++++ lib/web/JsonpExportMainTemplatePlugin.js | 21 +++++++++++++------ lib/web/JsonpTemplatePlugin.js | 6 ++++++ lib/webworker/WebWorkerTemplatePlugin.js | 6 ++++++ 26 files changed, 189 insertions(+), 15 deletions(-) diff --git a/lib/ConstPlugin.js b/lib/ConstPlugin.js index f31f44b69..b32089726 100644 --- a/lib/ConstPlugin.js +++ b/lib/ConstPlugin.js @@ -10,6 +10,8 @@ const NullFactory = require("./NullFactory"); const CachedConstDependency = require("./dependencies/CachedConstDependency"); const ConstDependency = require("./dependencies/ConstDependency"); +/** @typedef {import("./Compiler")} Compiler */ + const getQuery = request => { const i = request.indexOf("?"); return i !== -1 ? request.substr(i) : ""; @@ -110,6 +112,10 @@ const getHoistedDeclarations = (branch, includeFunctionDeclarations) => { }; class ConstPlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.compilation.tap( "ConstPlugin", diff --git a/lib/EvalDevToolModulePlugin.js b/lib/EvalDevToolModulePlugin.js index ead42a0e0..f677fd5da 100644 --- a/lib/EvalDevToolModulePlugin.js +++ b/lib/EvalDevToolModulePlugin.js @@ -7,6 +7,8 @@ const EvalDevToolModuleTemplatePlugin = require("./EvalDevToolModuleTemplatePlugin"); +/** @typedef {import("./Compiler")} Compiler */ + class EvalDevToolModulePlugin { constructor(options) { this.sourceUrlComment = options.sourceUrlComment; @@ -14,6 +16,10 @@ class EvalDevToolModulePlugin { this.namespace = options.namespace; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.compilation.tap("EvalDevToolModulePlugin", compilation => { new EvalDevToolModuleTemplatePlugin({ diff --git a/lib/EvalDevToolModuleTemplatePlugin.js b/lib/EvalDevToolModuleTemplatePlugin.js index 10e1cce6b..ec3a247e7 100644 --- a/lib/EvalDevToolModuleTemplatePlugin.js +++ b/lib/EvalDevToolModuleTemplatePlugin.js @@ -8,6 +8,10 @@ const { RawSource } = require("webpack-sources"); const ModuleFilenameHelpers = require("./ModuleFilenameHelpers"); +/** @typedef {import("webpack-sources").Source} Source */ +/** @typedef {import("./ModuleTemplate")} ModuleTemplate */ + +/** @type {WeakMap} */ const cache = new WeakMap(); class EvalDevToolModuleTemplatePlugin { @@ -20,6 +24,10 @@ class EvalDevToolModuleTemplatePlugin { this.namespace = options.namespace || ""; } + /** + * @param {ModuleTemplate} moduleTemplate the module template + * @returns {void} + */ apply(moduleTemplate) { moduleTemplate.hooks.module.tap( "EvalDevToolModuleTemplatePlugin", diff --git a/lib/EvalSourceMapDevToolModuleTemplatePlugin.js b/lib/EvalSourceMapDevToolModuleTemplatePlugin.js index 380d2b478..b404ed8ca 100644 --- a/lib/EvalSourceMapDevToolModuleTemplatePlugin.js +++ b/lib/EvalSourceMapDevToolModuleTemplatePlugin.js @@ -8,6 +8,10 @@ const { RawSource } = require("webpack-sources"); const ModuleFilenameHelpers = require("./ModuleFilenameHelpers"); +/** @typedef {import("webpack-sources").Source} Source */ +/** @typedef {import("./ModuleTemplate")} ModuleTemplate */ + +/** @type {WeakMap} */ const cache = new WeakMap(); class EvalSourceMapDevToolModuleTemplatePlugin { @@ -22,6 +26,10 @@ class EvalSourceMapDevToolModuleTemplatePlugin { this.options = options; } + /** + * @param {ModuleTemplate} moduleTemplate the module template + * @returns {void} + */ apply(moduleTemplate) { const options = this.options; const matchModule = ModuleFilenameHelpers.matchObject.bind( diff --git a/lib/LoaderOptionsPlugin.js b/lib/LoaderOptionsPlugin.js index 4a35d8844..b2785dcad 100644 --- a/lib/LoaderOptionsPlugin.js +++ b/lib/LoaderOptionsPlugin.js @@ -11,6 +11,7 @@ const validateOptions = require("schema-utils"); const schema = require("../schemas/plugins/LoaderOptionsPlugin.json"); /** @typedef {import("../declarations/plugins/LoaderOptionsPlugin").LoaderOptionsPluginOptions} LoaderOptionsPluginOptions */ +/** @typedef {import("./Compiler")} Compiler */ class LoaderOptionsPlugin { /** @@ -28,6 +29,10 @@ class LoaderOptionsPlugin { this.options = options; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { const options = this.options; compiler.hooks.compilation.tap("LoaderOptionsPlugin", compilation => { diff --git a/lib/LoaderTargetPlugin.js b/lib/LoaderTargetPlugin.js index d09a7d8eb..78084903e 100644 --- a/lib/LoaderTargetPlugin.js +++ b/lib/LoaderTargetPlugin.js @@ -5,11 +5,20 @@ "use strict"; +/** @typedef {import("./Compiler")} Compiler */ + class LoaderTargetPlugin { + /** + * @param {string} target the target + */ constructor(target) { this.target = target; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.compilation.tap("LoaderTargetPlugin", compilation => { compilation.hooks.normalModuleLoader.tap( diff --git a/lib/Module.js b/lib/Module.js index 817998473..9f7d77972 100644 --- a/lib/Module.js +++ b/lib/Module.js @@ -101,8 +101,13 @@ class Module extends DependenciesBlock { /** @type {object} */ this.buildInfo = undefined; - /** @type {boolean} */ + // TODO refactor this -> options object filled from Factory this.useSourceMap = false; + this.lineToLine = false; + + // TODO figure out if this should be defined here instead of `NormalModule`. + // Without this, type checking fails because the hooks use `Module`. + this.resource = undefined; } // TODO remove in webpack 6 diff --git a/lib/NormalModule.js b/lib/NormalModule.js index f0c4d0b10..72e9635a5 100644 --- a/lib/NormalModule.js +++ b/lib/NormalModule.js @@ -115,11 +115,6 @@ class NormalModule extends Module { /** @private @type {Map} */ this._cachedSources = new Map(); - // Options for the NormalModule set by plugins - // TODO refactor this -> options object filled from Factory - this.useSourceMap = false; - this.lineToLine = false; - // Cache this._lastSuccessfulBuildMeta = {}; this._forceBuild = true; diff --git a/lib/ProvidePlugin.js b/lib/ProvidePlugin.js index adf3b2998..d65970da9 100644 --- a/lib/ProvidePlugin.js +++ b/lib/ProvidePlugin.js @@ -10,11 +10,20 @@ const NullFactory = require("./NullFactory"); const ConstDependency = require("./dependencies/ConstDependency"); const ProvidedDependency = require("./dependencies/ProvidedDependency"); +/** @typedef {import("./Compiler")} Compiler */ + class ProvidePlugin { + /** + * @param {Record} definitions the provided identifiers + */ constructor(definitions) { this.definitions = definitions; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { const definitions = this.definitions; compiler.hooks.compilation.tap( diff --git a/lib/SizeFormatHelpers.js b/lib/SizeFormatHelpers.js index be6721197..51dceeacd 100644 --- a/lib/SizeFormatHelpers.js +++ b/lib/SizeFormatHelpers.js @@ -5,6 +5,10 @@ "use strict"; +/** + * @param {number} size the size in bytes + * @returns {string} the formatted size + */ exports.formatSize = size => { if (typeof size !== "number" || Number.isNaN(size) === true) { return "unknown size"; diff --git a/lib/SourceMapDevToolModuleOptionsPlugin.js b/lib/SourceMapDevToolModuleOptionsPlugin.js index b3a3a06f3..587961d4d 100644 --- a/lib/SourceMapDevToolModuleOptionsPlugin.js +++ b/lib/SourceMapDevToolModuleOptionsPlugin.js @@ -7,11 +7,17 @@ const ModuleFilenameHelpers = require("./ModuleFilenameHelpers"); +/** @typedef {import("./Compilation")} Compilation */ + class SourceMapDevToolModuleOptionsPlugin { constructor(options) { this.options = options; } + /** + * @param {Compilation} compilation the compiler instance + * @returns {void} + */ apply(compilation) { const options = this.options; if (options.module !== false) { diff --git a/lib/WatchIgnorePlugin.js b/lib/WatchIgnorePlugin.js index e0a991cce..b73fc46e9 100644 --- a/lib/WatchIgnorePlugin.js +++ b/lib/WatchIgnorePlugin.js @@ -9,6 +9,7 @@ const validateOptions = require("schema-utils"); const schema = require("../schemas/plugins/WatchIgnorePlugin.json"); /** @typedef {import("../declarations/plugins/WatchIgnorePlugin").WatchIgnorePluginOptions} WatchIgnorePluginOptions */ +/** @typedef {import("./Compiler")} Compiler */ class IgnoringWatchFileSystem { constructor(wfs, paths) { @@ -94,6 +95,10 @@ class WatchIgnorePlugin { this.paths = paths; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.afterEnvironment.tap("WatchIgnorePlugin", () => { compiler.watchFileSystem = new IgnoringWatchFileSystem( diff --git a/lib/ids/assignAscendingChunkIds.js b/lib/ids/assignAscendingChunkIds.js index d4e341033..bf04ef5eb 100644 --- a/lib/ids/assignAscendingChunkIds.js +++ b/lib/ids/assignAscendingChunkIds.js @@ -5,7 +5,15 @@ "use strict"; -module.exports = (chunks, compilation) => { +/** @typedef {import("../Chunk")} Chunk */ +/** @typedef {import("../Compilation")} Compilation */ + +/** + * @param {Iterable} chunks the chunks + * @param {Compilation} compilation the compilation + * @returns {void} + */ +const assignAscendingChunkIds = (chunks, compilation) => { const usedIds = new Set(); if (compilation.usedChunkIds) { for (const id of compilation.usedChunkIds) { @@ -40,3 +48,5 @@ module.exports = (chunks, compilation) => { } } }; + +module.exports = assignAscendingChunkIds; diff --git a/lib/ids/assignAscendingModuleIds.js b/lib/ids/assignAscendingModuleIds.js index 046d0c42f..872edafa7 100644 --- a/lib/ids/assignAscendingModuleIds.js +++ b/lib/ids/assignAscendingModuleIds.js @@ -5,7 +5,15 @@ "use strict"; -module.exports = (modules, compilation) => { +/** @typedef {import("../Compilation")} Compilation */ +/** @typedef {import("../Module")} Module */ + +/** + * @param {Iterable} modules the modules + * @param {Compilation} compilation the compilation + * @returns {void} + */ +const assignAscendingModuleIds = (modules, compilation) => { const chunkGraph = compilation.chunkGraph; const usedIds = new Set(); @@ -38,3 +46,5 @@ module.exports = (modules, compilation) => { } } }; + +module.exports = assignAscendingModuleIds; diff --git a/lib/node/NodeEnvironmentPlugin.js b/lib/node/NodeEnvironmentPlugin.js index 116ad0328..435c63311 100644 --- a/lib/node/NodeEnvironmentPlugin.js +++ b/lib/node/NodeEnvironmentPlugin.js @@ -10,7 +10,13 @@ const NodeJsInputFileSystem = require("enhanced-resolve/lib/NodeJsInputFileSyste const NodeOutputFileSystem = require("./NodeOutputFileSystem"); const NodeWatchFileSystem = require("./NodeWatchFileSystem"); +/** @typedef {import("../Compiler")} Compiler */ + class NodeEnvironmentPlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.inputFileSystem = new CachedInputFileSystem( new NodeJsInputFileSystem(), @@ -22,8 +28,11 @@ class NodeEnvironmentPlugin { compiler.inputFileSystem ); compiler.hooks.beforeRun.tap("NodeEnvironmentPlugin", compiler => { - if (compiler.inputFileSystem === inputFileSystem) inputFileSystem.purge(); + if (compiler.inputFileSystem === inputFileSystem) { + inputFileSystem.purge(); + } }); } } + module.exports = NodeEnvironmentPlugin; diff --git a/lib/node/NodeSourcePlugin.js b/lib/node/NodeSourcePlugin.js index 687fc8219..d19c28442 100644 --- a/lib/node/NodeSourcePlugin.js +++ b/lib/node/NodeSourcePlugin.js @@ -10,10 +10,17 @@ const nodeLibsBrowser = require("node-libs-browser"); const { getModulePath } = require("../JavascriptParserHelpers"); const ProvidedDependency = require("../dependencies/ProvidedDependency"); +/** @typedef {import("../Compiler")} Compiler */ + module.exports = class NodeSourcePlugin { constructor(options) { this.options = options; } + + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { const options = this.options; if (options === false) { diff --git a/lib/node/NodeTargetPlugin.js b/lib/node/NodeTargetPlugin.js index 53908faf2..d74b1f46f 100644 --- a/lib/node/NodeTargetPlugin.js +++ b/lib/node/NodeTargetPlugin.js @@ -7,11 +7,17 @@ const ExternalsPlugin = require("../ExternalsPlugin"); +/** @typedef {import("../Compiler")} Compiler */ + const builtins = // eslint-disable-next-line node/no-unsupported-features/node-builtins,node/no-deprecated-api require("module").builtinModules || Object.keys(process.binding("natives")); class NodeTargetPlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { new ExternalsPlugin("commonjs", builtins).apply(compiler); } diff --git a/lib/node/NodeTemplatePlugin.js b/lib/node/NodeTemplatePlugin.js index 4d0b46102..94cc44fd0 100644 --- a/lib/node/NodeTemplatePlugin.js +++ b/lib/node/NodeTemplatePlugin.js @@ -9,12 +9,18 @@ const NodeChunkTemplatePlugin = require("./NodeChunkTemplatePlugin"); const NodeHotUpdateChunkTemplatePlugin = require("./NodeHotUpdateChunkTemplatePlugin"); const NodeMainTemplatePlugin = require("./NodeMainTemplatePlugin"); +/** @typedef {import("../Compiler")} Compiler */ + class NodeTemplatePlugin { constructor(options) { options = options || {}; this.asyncChunkLoading = options.asyncChunkLoading; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.thisCompilation.tap("NodeTemplatePlugin", compilation => { new NodeMainTemplatePlugin(this.asyncChunkLoading).apply( diff --git a/lib/node/ReadFileCompileWasmTemplatePlugin.js b/lib/node/ReadFileCompileWasmTemplatePlugin.js index 554c7d788..ba02aa029 100644 --- a/lib/node/ReadFileCompileWasmTemplatePlugin.js +++ b/lib/node/ReadFileCompileWasmTemplatePlugin.js @@ -8,11 +8,17 @@ const Template = require("../Template"); const WasmMainTemplatePlugin = require("../wasm/WasmMainTemplatePlugin"); +/** @typedef {import("../Compiler")} Compiler */ + class ReadFileCompileWasmTemplatePlugin { constructor(options) { this.options = options || {}; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.thisCompilation.tap( "ReadFileCompileWasmTemplatePlugin", diff --git a/lib/optimize/EnsureChunkConditionsPlugin.js b/lib/optimize/EnsureChunkConditionsPlugin.js index 6a8f0f951..5035b6a05 100644 --- a/lib/optimize/EnsureChunkConditionsPlugin.js +++ b/lib/optimize/EnsureChunkConditionsPlugin.js @@ -7,7 +7,15 @@ const { STAGE_BASIC } = require("../OptimizationStages"); +/** @typedef {import("../Chunk")} Chunk */ +/** @typedef {import("../ChunkGroup")} ChunkGroup */ +/** @typedef {import("../Compiler")} Compiler */ + class EnsureChunkConditionsPlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.compilation.tap( "EnsureChunkConditionsPlugin", @@ -17,7 +25,9 @@ class EnsureChunkConditionsPlugin { let changed = false; // These sets are hoisted here to save memory // They are cleared at the end of every loop + /** @type {Set} */ const sourceChunks = new Set(); + /** @type {Set} */ const chunkGroups = new Set(); for (const module of compilation.modules) { for (const chunk of chunkGraph.getModuleChunksIterable(module)) { @@ -29,6 +39,7 @@ class EnsureChunkConditionsPlugin { } } if (sourceChunks.size === 0) continue; + /** @type {Set} */ const targetChunks = new Set(); chunkGroupLoop: for (const chunkGroup of chunkGroups) { // Can module be placed in a chunk of this group? diff --git a/lib/optimize/FlagIncludedChunksPlugin.js b/lib/optimize/FlagIncludedChunksPlugin.js index c5afded2e..cf88d38a1 100644 --- a/lib/optimize/FlagIncludedChunksPlugin.js +++ b/lib/optimize/FlagIncludedChunksPlugin.js @@ -5,7 +5,15 @@ "use strict"; +/** @typedef {import("../Chunk")} Chunk */ +/** @typedef {import("../Compiler")} Compiler */ +/** @typedef {import("../Module")} Module */ + class FlagIncludedChunksPlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.compilation.tap("FlagIncludedChunksPlugin", compilation => { compilation.hooks.optimizeChunkIds.tap( @@ -24,6 +32,7 @@ class FlagIncludedChunksPlugin { // so 1 / modulesCount == p^31 // <=> p = sqrt31(1 / modulesCount) // so we use a modulo of 1 / sqrt31(1 / modulesCount) + /** @type {WeakMap} */ const moduleBits = new WeakMap(); const modulesCount = compilation.modules.size; @@ -46,6 +55,7 @@ class FlagIncludedChunksPlugin { } // interate all chunks to generate bitmaps + /** @type {WeakMap} */ const chunkModulesHash = new WeakMap(); for (const chunk of chunks) { let hash = 0; diff --git a/lib/optimize/RuntimeChunkPlugin.js b/lib/optimize/RuntimeChunkPlugin.js index eee44b5a7..ccd5de8d7 100644 --- a/lib/optimize/RuntimeChunkPlugin.js +++ b/lib/optimize/RuntimeChunkPlugin.js @@ -7,6 +7,8 @@ const { STAGE_ADVANCED } = require("../OptimizationStages"); +/** @typedef {import("../Compiler")} Compiler */ + class RuntimeChunkPlugin { constructor(options) { this.options = Object.assign( @@ -17,6 +19,10 @@ class RuntimeChunkPlugin { ); } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.thisCompilation.tap("RuntimeChunkPlugin", compilation => { compilation.hooks.optimizeChunks.tap( diff --git a/lib/web/FetchCompileWasmTemplatePlugin.js b/lib/web/FetchCompileWasmTemplatePlugin.js index a110ad187..70d8bdc54 100644 --- a/lib/web/FetchCompileWasmTemplatePlugin.js +++ b/lib/web/FetchCompileWasmTemplatePlugin.js @@ -8,11 +8,17 @@ const RuntimeGlobals = require("../RuntimeGlobals"); const WasmMainTemplatePlugin = require("../wasm/WasmMainTemplatePlugin"); +/** @typedef {import("../Compiler")} Compiler */ + class FetchCompileWasmTemplatePlugin { constructor(options) { this.options = options || {}; } + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.thisCompilation.tap( "FetchCompileWasmTemplatePlugin", diff --git a/lib/web/JsonpExportMainTemplatePlugin.js b/lib/web/JsonpExportMainTemplatePlugin.js index 7e9bf65e2..c23761f9d 100644 --- a/lib/web/JsonpExportMainTemplatePlugin.js +++ b/lib/web/JsonpExportMainTemplatePlugin.js @@ -7,6 +7,8 @@ const { ConcatSource } = require("webpack-sources"); +/** @typedef {import("../Compilation")} Compilation */ + class JsonpExportMainTemplatePlugin { /** * @param {string} name jsonp function name @@ -15,6 +17,10 @@ class JsonpExportMainTemplatePlugin { this.name = name; } + /** + * @param {Compilation} compilation the compilation instance + * @returns {void} + */ apply(compilation) { const { mainTemplate, chunkTemplate } = compilation; @@ -26,12 +32,15 @@ class JsonpExportMainTemplatePlugin { return new ConcatSource(`${name}(`, source, ");"); }; - for (const template of [mainTemplate, chunkTemplate]) { - template.hooks.renderWithEntry.tap( - "JsonpExportMainTemplatePlugin", - onRenderWithEntry - ); - } + mainTemplate.hooks.renderWithEntry.tap( + "JsonpExportMainTemplatePlugin", + onRenderWithEntry + ); + + chunkTemplate.hooks.renderWithEntry.tap( + "JsonpExportMainTemplatePlugin", + onRenderWithEntry + ); mainTemplate.hooks.hash.tap("JsonpExportMainTemplatePlugin", hash => { hash.update("jsonp export"); diff --git a/lib/web/JsonpTemplatePlugin.js b/lib/web/JsonpTemplatePlugin.js index aff55bcea..5c364a552 100644 --- a/lib/web/JsonpTemplatePlugin.js +++ b/lib/web/JsonpTemplatePlugin.js @@ -9,7 +9,13 @@ const JsonpChunkTemplatePlugin = require("./JsonpChunkTemplatePlugin"); const JsonpHotUpdateChunkTemplatePlugin = require("./JsonpHotUpdateChunkTemplatePlugin"); const JsonpMainTemplatePlugin = require("./JsonpMainTemplatePlugin"); +/** @typedef {import("../Compiler")} Compiler */ + class JsonpTemplatePlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.thisCompilation.tap("JsonpTemplatePlugin", compilation => { new JsonpMainTemplatePlugin(compilation).apply(compilation.mainTemplate); diff --git a/lib/webworker/WebWorkerTemplatePlugin.js b/lib/webworker/WebWorkerTemplatePlugin.js index 4018cfd9d..7e28f5ed0 100644 --- a/lib/webworker/WebWorkerTemplatePlugin.js +++ b/lib/webworker/WebWorkerTemplatePlugin.js @@ -9,7 +9,13 @@ const WebWorkerChunkTemplatePlugin = require("./WebWorkerChunkTemplatePlugin"); const WebWorkerHotUpdateChunkTemplatePlugin = require("./WebWorkerHotUpdateChunkTemplatePlugin"); const WebWorkerMainTemplatePlugin = require("./WebWorkerMainTemplatePlugin"); +/** @typedef {import("../Compiler")} Compiler */ + class WebWorkerTemplatePlugin { + /** + * @param {Compiler} compiler the compiler instance + * @returns {void} + */ apply(compiler) { compiler.hooks.thisCompilation.tap( "WebWorkerTemplatePlugin",