| /* |
| 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; |