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