| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const util = require("util");const memoize = require("./util/memoize");/** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions *//** @typedef {import("./Compilation")} Compilation */const getJavascriptModulesPlugin = memoize(() =>	require("./javascript/JavascriptModulesPlugin"));// TODO webpack 6 remove this classclass ChunkTemplate {	/**	 * @param {OutputOptions} outputOptions output options	 * @param {Compilation} compilation the compilation	 */	constructor(outputOptions, compilation) {		this._outputOptions = outputOptions || {};		this.hooks = Object.freeze({			renderManifest: {				tap: util.deprecate(					(options, fn) => {						compilation.hooks.renderManifest.tap(							options,							(entries, options) => {								if (options.chunk.hasRuntime()) return entries;								return fn(entries, options);							}						);					},					"ChunkTemplate.hooks.renderManifest is deprecated (use Compilation.hooks.renderManifest instead)",					"DEP_WEBPACK_CHUNK_TEMPLATE_RENDER_MANIFEST"				)			},			modules: {				tap: util.deprecate(					(options, fn) => {						getJavascriptModulesPlugin()							.getCompilationHooks(compilation)							.renderChunk.tap(options, (source, renderContext) =>								fn(									source,									compilation.moduleTemplates.javascript,									renderContext								)							);					},					"ChunkTemplate.hooks.modules is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderChunk instead)",					"DEP_WEBPACK_CHUNK_TEMPLATE_MODULES"				)			},			render: {				tap: util.deprecate(					(options, fn) => {						getJavascriptModulesPlugin()							.getCompilationHooks(compilation)							.renderChunk.tap(options, (source, renderContext) =>								fn(									source,									compilation.moduleTemplates.javascript,									renderContext								)							);					},					"ChunkTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderChunk instead)",					"DEP_WEBPACK_CHUNK_TEMPLATE_RENDER"				)			},			renderWithEntry: {				tap: util.deprecate(					(options, fn) => {						getJavascriptModulesPlugin()							.getCompilationHooks(compilation)							.render.tap(options, (source, renderContext) => {								if (									renderContext.chunkGraph.getNumberOfEntryModules(										renderContext.chunk									) === 0 ||									renderContext.chunk.hasRuntime()								) {									return source;								}								return fn(source, renderContext.chunk);							});					},					"ChunkTemplate.hooks.renderWithEntry is deprecated (use JavascriptModulesPlugin.getCompilationHooks().render instead)",					"DEP_WEBPACK_CHUNK_TEMPLATE_RENDER_WITH_ENTRY"				)			},			hash: {				tap: util.deprecate(					(options, fn) => {						compilation.hooks.fullHash.tap(options, fn);					},					"ChunkTemplate.hooks.hash is deprecated (use Compilation.hooks.fullHash instead)",					"DEP_WEBPACK_CHUNK_TEMPLATE_HASH"				)			},			hashForChunk: {				tap: util.deprecate(					(options, fn) => {						getJavascriptModulesPlugin()							.getCompilationHooks(compilation)							.chunkHash.tap(options, (chunk, hash, context) => {								if (chunk.hasRuntime()) return;								fn(hash, chunk, context);							});					},					"ChunkTemplate.hooks.hashForChunk is deprecated (use JavascriptModulesPlugin.getCompilationHooks().chunkHash instead)",					"DEP_WEBPACK_CHUNK_TEMPLATE_HASH_FOR_CHUNK"				)			}		});	}}Object.defineProperty(ChunkTemplate.prototype, "outputOptions", {	get: util.deprecate(		/**		 * @this {ChunkTemplate}		 * @returns {OutputOptions} output options		 */		function () {			return this._outputOptions;		},		"ChunkTemplate.outputOptions is deprecated (use Compilation.outputOptions instead)",		"DEP_WEBPACK_CHUNK_TEMPLATE_OUTPUT_OPTIONS"	)});module.exports = ChunkTemplate;
 |