| /* |
| MIT License http://www.opensource.org/licenses/mit-license.php |
| Author Tobias Koppers @sokra |
| */ |
| "use strict"; |
| const { ConcatSource } = require("webpack-sources"); |
| |
| class WebWorkerHotUpdateChunkTemplatePlugin { |
| apply(hotUpdateChunkTemplate) { |
| hotUpdateChunkTemplate.hooks.render.tap( |
| "WebWorkerHotUpdateChunkTemplatePlugin", |
| (modulesSource, modules, removedModules, hash, id) => { |
| const hotUpdateFunction = |
| hotUpdateChunkTemplate.outputOptions.hotUpdateFunction; |
| const globalObject = hotUpdateChunkTemplate.outputOptions.globalObject; |
| const source = new ConcatSource(); |
| source.add( |
| `${globalObject}[${JSON.stringify( |
| hotUpdateFunction |
| )}](${JSON.stringify(id)},` |
| ); |
| source.add(modulesSource); |
| source.add(")"); |
| return source; |
| } |
| ); |
| hotUpdateChunkTemplate.hooks.hash.tap( |
| "WebWorkerHotUpdateChunkTemplatePlugin", |
| hash => { |
| hash.update("WebWorkerHotUpdateChunkTemplatePlugin"); |
| hash.update("3"); |
| hash.update( |
| hotUpdateChunkTemplate.outputOptions.hotUpdateFunction + "" |
| ); |
| hash.update(hotUpdateChunkTemplate.outputOptions.globalObject + ""); |
| } |
| ); |
| } |
| } |
| module.exports = WebWorkerHotUpdateChunkTemplatePlugin; |