| 
									
										
										
										
											2013-06-19 19:49:57 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2017-01-13 04:38:38 +08:00
										 |  |  | "use strict"; | 
					
						
							| 
									
										
										
										
											2013-06-19 19:49:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-13 04:38:38 +08:00
										 |  |  | const Template = require("./Template"); | 
					
						
							| 
									
										
										
										
											2017-04-21 16:05:56 +08:00
										 |  |  | const Chunk = require("./Chunk"); | 
					
						
							| 
									
										
										
										
											2013-06-19 19:49:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-13 04:38:38 +08:00
										 |  |  | module.exports = class HotUpdateChunkTemplate extends Template { | 
					
						
							|  |  |  | 	constructor(outputOptions) { | 
					
						
							|  |  |  | 		super(outputOptions); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-06-19 19:49:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-13 04:38:38 +08:00
										 |  |  | 	render(id, modules, removedModules, hash, moduleTemplate, dependencyTemplates) { | 
					
						
							| 
									
										
										
										
											2017-04-21 16:05:56 +08:00
										 |  |  | 		const hotUpdateChunk = new Chunk(); | 
					
						
							|  |  |  | 		hotUpdateChunk.id = id; | 
					
						
							|  |  |  | 		hotUpdateChunk.setModules(modules); | 
					
						
							|  |  |  | 		hotUpdateChunk.removedModules = removedModules; | 
					
						
							|  |  |  | 		const modulesSource = this.renderChunkModules(hotUpdateChunk, moduleTemplate, dependencyTemplates); | 
					
						
							| 
									
										
										
										
											2017-02-05 07:28:31 +08:00
										 |  |  | 		const core = this.applyPluginsWaterfall("modules", modulesSource, modules, removedModules, moduleTemplate, dependencyTemplates); | 
					
						
							|  |  |  | 		const source = this.applyPluginsWaterfall("render", core, modules, removedModules, hash, id, moduleTemplate, dependencyTemplates); | 
					
						
							| 
									
										
										
										
											2017-01-13 04:38:38 +08:00
										 |  |  | 		return source; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2016-05-20 13:39:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-13 04:38:38 +08:00
										 |  |  | 	updateHash(hash) { | 
					
						
							|  |  |  | 		hash.update("HotUpdateChunkTemplate"); | 
					
						
							|  |  |  | 		hash.update("1"); | 
					
						
							|  |  |  | 		this.applyPlugins("hash", hash); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2015-07-08 20:39:02 +08:00
										 |  |  | }; |