You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							1021 B
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							1021 B
						
					
					
				/* | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php | 
						|
	Author Tobias Koppers @sokra | 
						|
*/ | 
						|
"use strict"; | 
						|
 | 
						|
const { ConcatSource } = require("webpack-sources"); | 
						|
 | 
						|
class WebWorkerChunkTemplatePlugin { | 
						|
	apply(chunkTemplate) { | 
						|
		chunkTemplate.hooks.render.tap( | 
						|
			"WebWorkerChunkTemplatePlugin", | 
						|
			(modules, chunk) => { | 
						|
				const chunkCallbackName = chunkTemplate.outputOptions.chunkCallbackName; | 
						|
				const globalObject = chunkTemplate.outputOptions.globalObject; | 
						|
				const source = new ConcatSource(); | 
						|
				source.add( | 
						|
					`${globalObject}[${JSON.stringify( | 
						|
						chunkCallbackName | 
						|
					)}](${JSON.stringify(chunk.ids)},` | 
						|
				); | 
						|
				source.add(modules); | 
						|
				source.add(")"); | 
						|
				return source; | 
						|
			} | 
						|
		); | 
						|
		chunkTemplate.hooks.hash.tap("WebWorkerChunkTemplatePlugin", hash => { | 
						|
			hash.update("webworker"); | 
						|
			hash.update("3"); | 
						|
			hash.update(`${chunkTemplate.outputOptions.chunkCallbackName}`); | 
						|
			hash.update(`${chunkTemplate.outputOptions.globalObject}`); | 
						|
		}); | 
						|
	} | 
						|
} | 
						|
module.exports = WebWorkerChunkTemplatePlugin;
 | 
						|
 |