source: frontend/node_modules/webpack/lib/dependencies/AMDRequireArrayDependency.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: 3.8 KB
Line 
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5
6"use strict";
7
8const DependencyTemplate = require("../DependencyTemplate");
9const makeSerializable = require("../util/makeSerializable");
10const LocalModuleDependency = require("./LocalModuleDependency");
11const NullDependency = require("./NullDependency");
12
13/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
14/** @typedef {import("../Dependency")} Dependency */
15/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
16/** @typedef {import("../javascript/JavascriptParser").Range} Range */
17/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
18/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
19/** @typedef {import("./AMDRequireItemDependency")} AMDRequireItemDependency */
20
21class AMDRequireArrayDependency extends NullDependency {
22 /**
23 * Creates an instance of AMDRequireArrayDependency.
24 * @param {(string | LocalModuleDependency | AMDRequireItemDependency)[]} depsArray deps array
25 * @param {Range} range range
26 */
27 constructor(depsArray, range) {
28 super();
29
30 this.depsArray = depsArray;
31 this.range = range;
32 }
33
34 get type() {
35 return "amd require array";
36 }
37
38 get category() {
39 return "amd";
40 }
41
42 /**
43 * Serializes this instance into the provided serializer context.
44 * @param {ObjectSerializerContext} context context
45 */
46 serialize(context) {
47 const { write } = context;
48
49 write(this.depsArray);
50 write(this.range);
51
52 super.serialize(context);
53 }
54
55 /**
56 * Restores this instance from the provided deserializer context.
57 * @param {ObjectDeserializerContext} context context
58 */
59 deserialize(context) {
60 const { read } = context;
61
62 this.depsArray = read();
63 this.range = read();
64
65 super.deserialize(context);
66 }
67}
68
69makeSerializable(
70 AMDRequireArrayDependency,
71 "webpack/lib/dependencies/AMDRequireArrayDependency"
72);
73
74AMDRequireArrayDependency.Template = class AMDRequireArrayDependencyTemplate extends (
75 DependencyTemplate
76) {
77 /**
78 * Applies the plugin by registering its hooks on the compiler.
79 * @param {Dependency} dependency the dependency for which the template should be applied
80 * @param {ReplaceSource} source the current replace source which can be modified
81 * @param {DependencyTemplateContext} templateContext the context object
82 * @returns {void}
83 */
84 apply(dependency, source, templateContext) {
85 const dep = /** @type {AMDRequireArrayDependency} */ (dependency);
86 const content = this.getContent(dep, templateContext);
87 source.replace(dep.range[0], dep.range[1] - 1, content);
88 }
89
90 /**
91 * Returns content.
92 * @param {AMDRequireArrayDependency} dep the dependency for which the template should be applied
93 * @param {DependencyTemplateContext} templateContext the context object
94 * @returns {string} content
95 */
96 getContent(dep, templateContext) {
97 const requires = dep.depsArray.map((dependency) =>
98 this.contentForDependency(dependency, templateContext)
99 );
100 return `[${requires.join(", ")}]`;
101 }
102
103 /**
104 * Content for dependency.
105 * @param {string | LocalModuleDependency | AMDRequireItemDependency} dep the dependency for which the template should be applied
106 * @param {DependencyTemplateContext} templateContext the context object
107 * @returns {string} content
108 */
109 contentForDependency(
110 dep,
111 { runtimeTemplate, moduleGraph, chunkGraph, runtimeRequirements }
112 ) {
113 if (typeof dep === "string") {
114 return dep;
115 }
116
117 if (dep instanceof LocalModuleDependency) {
118 return dep.localModule.variableName();
119 }
120
121 return runtimeTemplate.moduleExports({
122 module: moduleGraph.getModule(dep),
123 chunkGraph,
124 request: dep.request,
125 runtimeRequirements
126 });
127 }
128};
129
130module.exports = AMDRequireArrayDependency;
Note: See TracBrowser for help on using the repository browser.