mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
	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 { SyncWaterfallHook, SyncHook } = require("tapable");
 | 
						|
 | 
						|
module.exports = class HotUpdateChunkTemplate {
 | 
						|
	constructor(outputOptions) {
 | 
						|
		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);
 | 
						|
	}
 | 
						|
};
 |