2013-01-31 01:49:25 +08:00
|
|
|
/*
|
|
|
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
|
|
|
Author Tobias Koppers @sokra
|
|
|
|
|
*/
|
|
|
|
|
var RawSource = require("webpack-core/lib/RawSource");
|
|
|
|
|
|
2013-07-04 20:08:47 +08:00
|
|
|
function EvalDevToolModuleTemplateDecorator(moduleTemplate, sourceUrlComment) {
|
2013-01-31 01:49:25 +08:00
|
|
|
this.moduleTemplate = moduleTemplate;
|
2013-07-04 20:08:47 +08:00
|
|
|
this.sourceUrlComment = sourceUrlComment || "//@ sourceURL=[url]";
|
2013-01-31 01:49:25 +08:00
|
|
|
}
|
|
|
|
|
module.exports = EvalDevToolModuleTemplateDecorator;
|
|
|
|
|
|
|
|
|
|
EvalDevToolModuleTemplateDecorator.prototype.render = function(module, dependencyTemplates) {
|
2013-07-04 20:08:47 +08:00
|
|
|
var sourceUrlComment = this.sourceUrlComment;
|
2013-01-31 01:49:25 +08:00
|
|
|
var fakeModule = {
|
|
|
|
|
source: function(dependencyTemplates, outputOptions, requestShortener) {
|
|
|
|
|
var source = module.source(dependencyTemplates, outputOptions, requestShortener);
|
|
|
|
|
var content = source.source();
|
2014-02-13 18:40:16 +08:00
|
|
|
var str = module.readableIdentifier(requestShortener);
|
|
|
|
|
str = str.split("!");
|
|
|
|
|
str = str.pop() + (str.length > 0 ? " " + str.join("!") : "");
|
2013-01-31 01:49:25 +08:00
|
|
|
var footer = ["\n",
|
|
|
|
|
"// WEBPACK FOOTER",
|
|
|
|
|
"// module.id = " + module.id,
|
|
|
|
|
"// module.readableIdentifier = " + module.readableIdentifier(requestShortener),
|
2014-02-13 18:40:16 +08:00
|
|
|
sourceUrlComment.replace(/\[url\]/g, "webpack-module:///" + encodeURI(str).replace(/%2F/g, "/").replace(/%20/g, "_").replace(/%5E/g, "^").replace(/%5C/g, "\\").replace(/\?/, "%3F").replace(/^\//, ""))
|
2013-01-31 01:49:25 +08:00
|
|
|
].join("\n");
|
|
|
|
|
return new RawSource("eval(" + JSON.stringify(content + footer) + ");" );
|
|
|
|
|
},
|
|
|
|
|
identifier: function() { return module.identifier() },
|
|
|
|
|
readableIdentifier: function(rs) { return module.readableIdentifier(rs) },
|
|
|
|
|
id: module.id
|
|
|
|
|
};
|
|
|
|
|
return this.moduleTemplate.render(fakeModule, dependencyTemplates);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
EvalDevToolModuleTemplateDecorator.prototype.updateHash = function(hash) {
|
|
|
|
|
hash.update("1");
|
|
|
|
|
};
|