diff options
Diffstat (limited to 'node_modules/webpack/lib/HotUpdateChunkTemplate.js')
-rw-r--r-- | node_modules/webpack/lib/HotUpdateChunkTemplate.js | 109 |
1 files changed, 78 insertions, 31 deletions
diff --git a/node_modules/webpack/lib/HotUpdateChunkTemplate.js b/node_modules/webpack/lib/HotUpdateChunkTemplate.js index 0a83c9a85..92ab8db08 100644 --- a/node_modules/webpack/lib/HotUpdateChunkTemplate.js +++ b/node_modules/webpack/lib/HotUpdateChunkTemplate.js @@ -1,31 +1,78 @@ -/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const Template = require("./Template");
-const Chunk = require("./Chunk");
-
-module.exports = class HotUpdateChunkTemplate extends Template {
- constructor(outputOptions) {
- super(outputOptions);
- }
-
- render(id, modules, removedModules, hash, moduleTemplate, dependencyTemplates) {
- const hotUpdateChunk = new Chunk();
- hotUpdateChunk.id = id;
- hotUpdateChunk.setModules(modules);
- hotUpdateChunk.removedModules = removedModules;
- const modulesSource = this.renderChunkModules(hotUpdateChunk, moduleTemplate, dependencyTemplates);
- const core = this.applyPluginsWaterfall("modules", modulesSource, modules, removedModules, moduleTemplate, dependencyTemplates);
- const source = this.applyPluginsWaterfall("render", core, modules, removedModules, hash, id, moduleTemplate, dependencyTemplates);
- return source;
- }
-
- updateHash(hash) {
- hash.update("HotUpdateChunkTemplate");
- hash.update("1");
- this.applyPlugins("hash", hash);
- }
-};
+/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const Template = require("./Template"); +const HotUpdateChunk = require("./HotUpdateChunk"); +const { Tapable, SyncWaterfallHook, SyncHook } = require("tapable"); + +module.exports = class HotUpdateChunkTemplate extends Tapable { + constructor(outputOptions) { + super(); + this.outputOptions = outputOptions || {}; + this.hooks = { + modules: new SyncWaterfallHook([ + "source", + "modules", + "removedModules", + "moduleTemplate", + "dependencyTemplates" + ]), + render: new SyncWaterfallHook([ + "source", + "modules", + "removedModules", + "hash", + "id", + "moduleTemplate", + "dependencyTemplates" + ]), + hash: new SyncHook(["hash"]) + }; + } + + render( + id, + modules, + removedModules, + hash, + moduleTemplate, + dependencyTemplates + ) { + const hotUpdateChunk = new HotUpdateChunk(); + hotUpdateChunk.id = id; + hotUpdateChunk.setModules(modules); + hotUpdateChunk.removedModules = removedModules; + const modulesSource = Template.renderChunkModules( + hotUpdateChunk, + m => typeof m.source === "function", + moduleTemplate, + dependencyTemplates + ); + const core = this.hooks.modules.call( + modulesSource, + modules, + removedModules, + moduleTemplate, + dependencyTemplates + ); + const source = this.hooks.render.call( + core, + modules, + removedModules, + hash, + id, + moduleTemplate, + dependencyTemplates + ); + return source; + } + + updateHash(hash) { + hash.update("HotUpdateChunkTemplate"); + hash.update("1"); + this.hooks.hash.call(hash); + } +}; |