source: frontend/node_modules/webpack/lib/ModuleTemplate.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 11 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 5.8 KB
RevLine 
[9af201e]1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5
6"use strict";
7
8const util = require("util");
9const memoize = require("./util/memoize");
10
11/** @typedef {import("tapable").Tap} Tap */
12/** @typedef {import("webpack-sources").Source} Source */
13/** @typedef {import("./Chunk")} Chunk */
14/** @typedef {import("./Compilation")} Compilation */
15/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
16/** @typedef {import("./Module")} Module */
17/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
18/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
19/** @typedef {import("./javascript/JavascriptModulesPlugin").ModuleRenderContext} ModuleRenderContext */
20/** @typedef {import("./util/Hash")} Hash */
21
22/**
23 * Defines the if set type used by this module.
24 * @template T
25 * @typedef {import("tapable").IfSet<T>} IfSet
26 */
27
28const getJavascriptModulesPlugin = memoize(() =>
29 require("./javascript/JavascriptModulesPlugin")
30);
31
32// TODO webpack 6: remove this class
33class ModuleTemplate {
34 /**
35 * Creates an instance of ModuleTemplate.
36 * @param {RuntimeTemplate} runtimeTemplate the runtime template
37 * @param {Compilation} compilation the compilation
38 */
39 constructor(runtimeTemplate, compilation) {
40 this._runtimeTemplate = runtimeTemplate;
41 this.type = "javascript";
42 this.hooks = Object.freeze({
43 content: {
44 tap: util.deprecate(
45 /**
46 * Handles the callback logic for this hook.
47 * @template AdditionalOptions
48 * @param {string | Tap & IfSet<AdditionalOptions>} options options
49 * @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
50 */
51 (options, fn) => {
52 getJavascriptModulesPlugin()
53 .getCompilationHooks(compilation)
54 .renderModuleContent.tap(
55 options,
56 (source, module, renderContext) =>
57 fn(
58 source,
59 module,
60 renderContext,
61 renderContext.dependencyTemplates
62 )
63 );
64 },
65 "ModuleTemplate.hooks.content is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
66 "DEP_MODULE_TEMPLATE_CONTENT"
67 )
68 },
69 module: {
70 tap: util.deprecate(
71 /**
72 * Handles the callback logic for this hook.
73 * @template AdditionalOptions
74 * @param {string | Tap & IfSet<AdditionalOptions>} options options
75 * @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
76 */
77 (options, fn) => {
78 getJavascriptModulesPlugin()
79 .getCompilationHooks(compilation)
80 .renderModuleContent.tap(
81 options,
82 (source, module, renderContext) =>
83 fn(
84 source,
85 module,
86 renderContext,
87 renderContext.dependencyTemplates
88 )
89 );
90 },
91 "ModuleTemplate.hooks.module is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
92 "DEP_MODULE_TEMPLATE_MODULE"
93 )
94 },
95 render: {
96 tap: util.deprecate(
97 /**
98 * Handles the callback logic for this hook.
99 * @template AdditionalOptions
100 * @param {string | Tap & IfSet<AdditionalOptions>} options options
101 * @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
102 */
103 (options, fn) => {
104 getJavascriptModulesPlugin()
105 .getCompilationHooks(compilation)
106 .renderModuleContainer.tap(
107 options,
108 (source, module, renderContext) =>
109 fn(
110 source,
111 module,
112 renderContext,
113 renderContext.dependencyTemplates
114 )
115 );
116 },
117 "ModuleTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContainer instead)",
118 "DEP_MODULE_TEMPLATE_RENDER"
119 )
120 },
121 package: {
122 tap: util.deprecate(
123 /**
124 * Handles the callback logic for this hook.
125 * @template AdditionalOptions
126 * @param {string | Tap & IfSet<AdditionalOptions>} options options
127 * @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
128 */
129 (options, fn) => {
130 getJavascriptModulesPlugin()
131 .getCompilationHooks(compilation)
132 .renderModulePackage.tap(
133 options,
134 (source, module, renderContext) =>
135 fn(
136 source,
137 module,
138 renderContext,
139 renderContext.dependencyTemplates
140 )
141 );
142 },
143 "ModuleTemplate.hooks.package is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModulePackage instead)",
144 "DEP_MODULE_TEMPLATE_PACKAGE"
145 )
146 },
147 hash: {
148 tap: util.deprecate(
149 /**
150 * Handles the callback logic for this hook.
151 * @template AdditionalOptions
152 * @param {string | Tap & IfSet<AdditionalOptions>} options options
153 * @param {(hash: Hash) => void} fn fn
154 */
155 (options, fn) => {
156 compilation.hooks.fullHash.tap(options, fn);
157 },
158 "ModuleTemplate.hooks.hash is deprecated (use Compilation.hooks.fullHash instead)",
159 "DEP_MODULE_TEMPLATE_HASH"
160 )
161 }
162 });
163 }
164}
165
166Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", {
167 get: util.deprecate(
168 /**
169 * Returns output options.
170 * @this {ModuleTemplate}
171 * @returns {RuntimeTemplate} output options
172 */
173 function runtimeTemplate() {
174 return this._runtimeTemplate;
175 },
176 "ModuleTemplate.runtimeTemplate is deprecated (use Compilation.runtimeTemplate instead)",
177 "DEP_WEBPACK_CHUNK_TEMPLATE_OUTPUT_OPTIONS"
178 )
179});
180
181module.exports = ModuleTemplate;
Note: See TracBrowser for help on using the repository browser.