aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/HotUpdateChunkTemplate.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/HotUpdateChunkTemplate.js')
-rw-r--r--node_modules/webpack/lib/HotUpdateChunkTemplate.js109
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);
+ }
+};