|
2 | 2 | MIT License http://www.opensource.org/licenses/mit-license.php |
3 | 3 | Author Tobias Koppers @sokra |
4 | 4 | */ |
5 | | -var Dependency = require("../Dependency"); |
| 5 | +"use strict"; |
| 6 | +const Dependency = require("../Dependency"); |
| 7 | +const webpackMissingModuleModule = require("./WebpackMissingModule").module; |
6 | 8 |
|
7 | | -function AMDRequireArrayDependency(depsArray, range) { |
8 | | - Dependency.call(this); |
9 | | - this.depsArray = depsArray; |
10 | | - this.range = range; |
| 9 | +class AMDRequireArrayDependency extends Dependency { |
| 10 | + constructor(depsArray, range) { |
| 11 | + super(); |
| 12 | + this.depsArray = depsArray; |
| 13 | + this.range = range; |
| 14 | + } |
| 15 | + |
| 16 | + get type() { |
| 17 | + return "amd require array"; |
| 18 | + } |
11 | 19 | } |
12 | | -module.exports = AMDRequireArrayDependency; |
13 | 20 |
|
14 | | -AMDRequireArrayDependency.prototype = Object.create(Dependency.prototype); |
15 | | -AMDRequireArrayDependency.prototype.constructor = AMDRequireArrayDependency; |
16 | | -AMDRequireArrayDependency.prototype.type = "amd require array"; |
| 21 | +AMDRequireArrayDependency.Template = class AMDRequireArrayDependencyTemplate { |
| 22 | + apply(dep, source, outputOptions, requestShortener) { |
| 23 | + const content = this.getContent(dep, outputOptions, requestShortener); |
| 24 | + source.replace(dep.range[0], dep.range[1] - 1, content); |
| 25 | + } |
17 | 26 |
|
18 | | -AMDRequireArrayDependency.Template = function AMDRequireArrayDependencyTemplate() {}; |
| 27 | + getContent(dep, outputOptions, requestShortener) { |
| 28 | + const requires = dep.depsArray.map((dependency) => { |
| 29 | + const optionalComment = this.optionalComment(outputOptions.pathinfo, requestShortener.shorten(dependency.request)); |
| 30 | + return this.contentForDependency(dependency, optionalComment); |
| 31 | + }); |
| 32 | + return `[${requires.join(", ")}]`; |
| 33 | + } |
19 | 34 |
|
20 | | -AMDRequireArrayDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) { |
21 | | - var content = "[" + dep.depsArray.map(function(dep) { |
| 35 | + optionalComment(pathInfo, shortenedRequest) { |
| 36 | + if(!pathInfo) { |
| 37 | + return ""; |
| 38 | + } |
| 39 | + return `/*! ${shortenedRequest} */ `; |
| 40 | + } |
| 41 | + |
| 42 | + contentForDependency(dep, comment) { |
22 | 43 | if(typeof dep === "string") { |
23 | 44 | return dep; |
24 | | - } else { |
25 | | - var comment = ""; |
26 | | - if(outputOptions.pathinfo) comment = "/*! " + requestShortener.shorten(dep.request) + " */ "; |
27 | | - if(dep.module) |
28 | | - return "__webpack_require__(" + comment + JSON.stringify(dep.module.id) + ")"; |
29 | | - else |
30 | | - return require("./WebpackMissingModule").module(dep.request); |
31 | 45 | } |
32 | | - }).join(", ") + "]"; |
33 | | - source.replace(dep.range[0], dep.range[1] - 1, content); |
34 | | -}; |
| 46 | + |
| 47 | + if(dep.module) { |
| 48 | + const stringifiedId = JSON.stringify(dep.module.id); |
| 49 | + return `__webpack_require__(${comment}${stringifiedId})`; |
| 50 | + } |
| 51 | + |
| 52 | + return webpackMissingModuleModule(dep.request); |
| 53 | + } |
| 54 | +} |
| 55 | + |
| 56 | +module.exports = AMDRequireArrayDependency; |
0 commit comments