Skip to content

Commit 157a194

Browse files
authored
Merge pull request webpack#4192 from webpack/refactor/EvalDevToolModuleTemplatePlugin
refactor(EvalDevToolModuleTemplatePlugin): upgrade to ES6
2 parents 93ac8e9 + 31fc3ea commit 157a194

1 file changed

Lines changed: 26 additions & 22 deletions

File tree

lib/EvalDevToolModuleTemplatePlugin.js

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,32 @@
22
MIT License http://www.opensource.org/licenses/mit-license.php
33
Author Tobias Koppers @sokra
44
*/
5-
var RawSource = require("webpack-sources").RawSource;
6-
var ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
5+
"use strict";
76

8-
function EvalDevToolModuleTemplatePlugin(sourceUrlComment, moduleFilenameTemplate) {
9-
this.sourceUrlComment = sourceUrlComment || "\n//# sourceURL=[url]";
10-
this.moduleFilenameTemplate = moduleFilenameTemplate || "webpack:///[resourcePath]?[loaders]";
7+
const RawSource = require("webpack-sources").RawSource;
8+
const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
9+
10+
class EvalDevToolModuleTemplatePlugin {
11+
constructor(sourceUrlComment, moduleFilenameTemplate) {
12+
this.sourceUrlComment = sourceUrlComment || "\n//# sourceURL=[url]";
13+
this.moduleFilenameTemplate = moduleFilenameTemplate || "webpack:///[resourcePath]?[loaders]";
14+
}
15+
16+
apply(moduleTemplate) {
17+
moduleTemplate.plugin("module", (source, module) => {
18+
const content = source.source();
19+
const str = ModuleFilenameHelpers.createFilename(module, this.moduleFilenameTemplate, moduleTemplate.requestShortener);
20+
const footer = ["\n",
21+
ModuleFilenameHelpers.createFooter(module, moduleTemplate.requestShortener),
22+
this.sourceUrlComment.replace(/\[url\]/g, encodeURI(str).replace(/%2F/g, "/").replace(/%20/g, "_").replace(/%5E/g, "^").replace(/%5C/g, "\\").replace(/^\//, ""))
23+
].join("\n");
24+
return new RawSource(`eval(${JSON.stringify(content + footer)});`);
25+
});
26+
moduleTemplate.plugin("hash", hash => {
27+
hash.update("EvalDevToolModuleTemplatePlugin");
28+
hash.update("2");
29+
});
30+
}
1131
}
12-
module.exports = EvalDevToolModuleTemplatePlugin;
1332

14-
EvalDevToolModuleTemplatePlugin.prototype.apply = function(moduleTemplate) {
15-
var self = this;
16-
moduleTemplate.plugin("module", function(source, module) {
17-
var content = source.source();
18-
var str = ModuleFilenameHelpers.createFilename(module, self.moduleFilenameTemplate, this.requestShortener);
19-
var footer = ["\n",
20-
ModuleFilenameHelpers.createFooter(module, this.requestShortener),
21-
self.sourceUrlComment.replace(/\[url\]/g, encodeURI(str).replace(/%2F/g, "/").replace(/%20/g, "_").replace(/%5E/g, "^").replace(/%5C/g, "\\").replace(/^\//, ""))
22-
].join("\n");
23-
return new RawSource("eval(" + JSON.stringify(content + footer) + ");");
24-
});
25-
moduleTemplate.plugin("hash", function(hash) {
26-
hash.update("EvalDevToolModuleTemplatePlugin");
27-
hash.update("2");
28-
});
29-
};
33+
module.exports = EvalDevToolModuleTemplatePlugin;

0 commit comments

Comments
 (0)