diff options
Diffstat (limited to 'node_modules/webpack/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js')
| -rw-r--r-- | node_modules/webpack/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js b/node_modules/webpack/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js new file mode 100644 index 00000000..a330b4a4 --- /dev/null +++ b/node_modules/webpack/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js @@ -0,0 +1,46 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php +*/ + +"use strict"; + +const RuntimeModule = require("../RuntimeModule"); +const Template = require("../Template"); + +/** @typedef {import("../Compilation")} Compilation */ +/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ + +class ChunkPrefetchFunctionRuntimeModule extends RuntimeModule { + /** + * @param {string} childType TODO + * @param {string} runtimeFunction TODO + * @param {string} runtimeHandlers TODO + */ + constructor(childType, runtimeFunction, runtimeHandlers) { + super(`chunk ${childType} function`); + this.childType = childType; + this.runtimeFunction = runtimeFunction; + this.runtimeHandlers = runtimeHandlers; + } + + /** + * @returns {string | null} runtime code + */ + generate() { + const { runtimeFunction, runtimeHandlers } = this; + const compilation = /** @type {Compilation} */ (this.compilation); + const { runtimeTemplate } = compilation; + return Template.asString([ + `${runtimeHandlers} = {};`, + `${runtimeFunction} = ${runtimeTemplate.basicFunction("chunkId", [ + // map is shorter than forEach + `Object.keys(${runtimeHandlers}).map(${runtimeTemplate.basicFunction( + "key", + `${runtimeHandlers}[key](chunkId);` + )});` + ])}` + ]); + } +} + +module.exports = ChunkPrefetchFunctionRuntimeModule; |
