UNPKG

1.78 kBJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5
6"use strict";
7
8const RuntimeGlobals = require("../RuntimeGlobals");
9const makeSerializable = require("../util/makeSerializable");
10const NullDependency = require("./NullDependency");
11
12/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
13/** @typedef {import("../Dependency")} Dependency */
14/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
15
16class CreateScriptUrlDependency extends NullDependency {
17 /**
18 * @param {[number, number]} range range
19 */
20 constructor(range) {
21 super();
22 this.range = range;
23 }
24
25 get type() {
26 return "create script url";
27 }
28
29 serialize(context) {
30 const { write } = context;
31 write(this.range);
32 super.serialize(context);
33 }
34
35 deserialize(context) {
36 const { read } = context;
37 this.range = read();
38 super.deserialize(context);
39 }
40}
41
42CreateScriptUrlDependency.Template = class CreateScriptUrlDependencyTemplate extends (
43 NullDependency.Template
44) {
45 /**
46 * @param {Dependency} dependency the dependency for which the template should be applied
47 * @param {ReplaceSource} source the current replace source which can be modified
48 * @param {DependencyTemplateContext} templateContext the context object
49 * @returns {void}
50 */
51 apply(dependency, source, { runtimeRequirements }) {
52 const dep = /** @type {CreateScriptUrlDependency} */ (dependency);
53
54 runtimeRequirements.add(RuntimeGlobals.createScriptUrl);
55
56 source.insert(dep.range[0], `${RuntimeGlobals.createScriptUrl}(`);
57 source.insert(dep.range[1], ")");
58 }
59};
60
61makeSerializable(
62 CreateScriptUrlDependency,
63 "webpack/lib/dependencies/CreateScriptUrlDependency"
64);
65
66module.exports = CreateScriptUrlDependency;