66
77const ConcatSource = require ( "webpack-sources" ) . ConcatSource ;
88const Template = require ( "./Template" ) ;
9+ const SyncWaterfallHook = require ( "tapable" ) . SyncWaterfallHook ;
10+ const SyncHook = require ( "tapable" ) . SyncHook ;
911
1012module . exports = class ChunkTemplate extends Template {
1113 constructor ( outputOptions ) {
1214 super ( outputOptions ) ;
15+ this . hooks = {
16+ modules : new SyncWaterfallHook ( [ "source" , "chunk" , "moduleTemplate" , "dependencyTemplates" ] ) ,
17+ render : new SyncWaterfallHook ( [ "source" , "chunk" , "moduleTemplate" , "dependencyTemplates" ] ) ,
18+ renderWithEntry : new SyncWaterfallHook ( [ "source" , "chunk" ] ) ,
19+ hash : new SyncHook ( [ "hash" ] ) ,
20+ hashForChunk : new SyncHook ( [ "hash" , "chunk" ] ) ,
21+ } ;
1322 }
1423
1524 getRenderManifest ( options ) {
@@ -59,10 +68,10 @@ module.exports = class ChunkTemplate extends Template {
5968
6069 renderJavascript ( chunk , moduleTemplate , dependencyTemplates ) {
6170 const moduleSources = this . renderChunkModules ( chunk , m => true , moduleTemplate , dependencyTemplates ) ;
62- const core = this . applyPluginsWaterfall ( " modules" , moduleSources , chunk , moduleTemplate , dependencyTemplates ) ;
63- let source = this . applyPluginsWaterfall ( " render" , core , chunk , moduleTemplate , dependencyTemplates ) ;
71+ const core = this . hooks . modules . call ( moduleSources , chunk , moduleTemplate , dependencyTemplates ) ;
72+ let source = this . hooks . render . call ( core , chunk , moduleTemplate , dependencyTemplates ) ;
6473 if ( chunk . hasEntryModule ( ) ) {
65- source = this . applyPluginsWaterfall ( "render-with-entry" , source , chunk ) ;
74+ source = this . hooks . renderWithEntry . call ( source , chunk ) ;
6675 }
6776 chunk . rendered = true ;
6877 return new ConcatSource ( source , ";" ) ;
@@ -75,11 +84,11 @@ module.exports = class ChunkTemplate extends Template {
7584 updateHash ( hash ) {
7685 hash . update ( "ChunkTemplate" ) ;
7786 hash . update ( "2" ) ;
78- this . applyPlugins ( " hash" , hash ) ;
87+ this . hooks . hash . call ( hash ) ;
7988 }
8089
8190 updateHashForChunk ( hash , chunk ) {
8291 this . updateHash ( hash ) ;
83- this . applyPlugins ( "hash-for-chunk" , hash , chunk ) ;
92+ this . hooks . hashForChunk . call ( hash , chunk ) ;
8493 }
8594} ;
0 commit comments