Skip to content

Commit 8e39423

Browse files
timseTheLarkInn
authored andcommitted
Refactor AMDRequireArrayDependency to es6 (webpack#3774)
* raw refactor of AmdRequireArrayDependency to es6
1 parent 4463f09 commit 8e39423

1 file changed

Lines changed: 44 additions & 22 deletions

File tree

lib/dependencies/AMDRequireArrayDependency.js

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,55 @@
22
MIT License http://www.opensource.org/licenses/mit-license.php
33
Author Tobias Koppers @sokra
44
*/
5-
var Dependency = require("../Dependency");
5+
"use strict";
6+
const Dependency = require("../Dependency");
7+
const webpackMissingModuleModule = require("./WebpackMissingModule").module;
68

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+
}
1119
}
12-
module.exports = AMDRequireArrayDependency;
1320

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+
}
1726

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+
}
1934

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) {
2243
if(typeof dep === "string") {
2344
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);
3145
}
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

Comments
 (0)