summaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/ModuleTemplate.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
commitefbc2ffe6a1ee5ec38a4396305561d6515d0943e (patch)
tree2b4c94f18f2c792dfda813050755d5c0273fae22 /node_modules/webpack/lib/ModuleTemplate.js
parent43acceb75957c880a5ba5a31aae221394a36d5f6 (diff)
node fixes, updates
Diffstat (limited to 'node_modules/webpack/lib/ModuleTemplate.js')
-rw-r--r--node_modules/webpack/lib/ModuleTemplate.js174
1 files changed, 174 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/ModuleTemplate.js b/node_modules/webpack/lib/ModuleTemplate.js
new file mode 100644
index 00000000..79903771
--- /dev/null
+++ b/node_modules/webpack/lib/ModuleTemplate.js
@@ -0,0 +1,174 @@
+/*
+ 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("tapable").Tap} Tap */
+/** @typedef {import("webpack-sources").Source} Source */
+/** @typedef {import("./Chunk")} Chunk */
+/** @typedef {import("./ChunkGraph")} ChunkGraph */
+/** @typedef {import("./Compilation")} Compilation */
+/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
+/** @typedef {import("./Module")} Module */
+/** @typedef {import("./ModuleGraph")} ModuleGraph */
+/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
+/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
+/** @typedef {import("./util/Hash")} Hash */
+
+/**
+ * @template T
+ * @typedef {import("tapable").IfSet<T>} IfSet
+ */
+
+const getJavascriptModulesPlugin = memoize(() =>
+ require("./javascript/JavascriptModulesPlugin")
+);
+
+// TODO webpack 6: remove this class
+class ModuleTemplate {
+ /**
+ * @param {RuntimeTemplate} runtimeTemplate the runtime template
+ * @param {Compilation} compilation the compilation
+ */
+ constructor(runtimeTemplate, compilation) {
+ this._runtimeTemplate = runtimeTemplate;
+ this.type = "javascript";
+ this.hooks = Object.freeze({
+ content: {
+ tap: util.deprecate(
+ /**
+ * @template AdditionalOptions
+ * @param {string | Tap & IfSet<AdditionalOptions>} options options
+ * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
+ */
+ (options, fn) => {
+ getJavascriptModulesPlugin()
+ .getCompilationHooks(compilation)
+ .renderModuleContent.tap(
+ options,
+ (source, module, renderContext) =>
+ fn(
+ source,
+ module,
+ renderContext,
+ renderContext.dependencyTemplates
+ )
+ );
+ },
+ "ModuleTemplate.hooks.content is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
+ "DEP_MODULE_TEMPLATE_CONTENT"
+ )
+ },
+ module: {
+ tap: util.deprecate(
+ /**
+ * @template AdditionalOptions
+ * @param {string | Tap & IfSet<AdditionalOptions>} options options
+ * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
+ */
+ (options, fn) => {
+ getJavascriptModulesPlugin()
+ .getCompilationHooks(compilation)
+ .renderModuleContent.tap(
+ options,
+ (source, module, renderContext) =>
+ fn(
+ source,
+ module,
+ renderContext,
+ renderContext.dependencyTemplates
+ )
+ );
+ },
+ "ModuleTemplate.hooks.module is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
+ "DEP_MODULE_TEMPLATE_MODULE"
+ )
+ },
+ render: {
+ tap: util.deprecate(
+ /**
+ * @template AdditionalOptions
+ * @param {string | Tap & IfSet<AdditionalOptions>} options options
+ * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
+ */
+ (options, fn) => {
+ getJavascriptModulesPlugin()
+ .getCompilationHooks(compilation)
+ .renderModuleContainer.tap(
+ options,
+ (source, module, renderContext) =>
+ fn(
+ source,
+ module,
+ renderContext,
+ renderContext.dependencyTemplates
+ )
+ );
+ },
+ "ModuleTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContainer instead)",
+ "DEP_MODULE_TEMPLATE_RENDER"
+ )
+ },
+ package: {
+ tap: util.deprecate(
+ /**
+ * @template AdditionalOptions
+ * @param {string | Tap & IfSet<AdditionalOptions>} options options
+ * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn
+ */
+ (options, fn) => {
+ getJavascriptModulesPlugin()
+ .getCompilationHooks(compilation)
+ .renderModulePackage.tap(
+ options,
+ (source, module, renderContext) =>
+ fn(
+ source,
+ module,
+ renderContext,
+ renderContext.dependencyTemplates
+ )
+ );
+ },
+ "ModuleTemplate.hooks.package is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModulePackage instead)",
+ "DEP_MODULE_TEMPLATE_PACKAGE"
+ )
+ },
+ hash: {
+ tap: util.deprecate(
+ /**
+ * @template AdditionalOptions
+ * @param {string | Tap & IfSet<AdditionalOptions>} options options
+ * @param {function(Hash): void} fn fn
+ */
+ (options, fn) => {
+ compilation.hooks.fullHash.tap(options, fn);
+ },
+ "ModuleTemplate.hooks.hash is deprecated (use Compilation.hooks.fullHash instead)",
+ "DEP_MODULE_TEMPLATE_HASH"
+ )
+ }
+ });
+ }
+}
+
+Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", {
+ get: util.deprecate(
+ /**
+ * @this {ModuleTemplate}
+ * @returns {RuntimeTemplate} output options
+ */
+ function () {
+ return this._runtimeTemplate;
+ },
+ "ModuleTemplate.runtimeTemplate is deprecated (use Compilation.runtimeTemplate instead)",
+ "DEP_WEBPACK_CHUNK_TEMPLATE_OUTPUT_OPTIONS"
+ )
+});
+
+module.exports = ModuleTemplate;