webpack/lib/EvalDevToolModuleTemplateDe...

34 lines
1.4 KiB
JavaScript

/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var RawSource = require("webpack-core/lib/RawSource");
function EvalDevToolModuleTemplateDecorator(moduleTemplate) {
this.moduleTemplate = moduleTemplate;
}
module.exports = EvalDevToolModuleTemplateDecorator;
EvalDevToolModuleTemplateDecorator.prototype.render = function(module, dependencyTemplates) {
var fakeModule = {
source: function(dependencyTemplates, outputOptions, requestShortener) {
var source = module.source(dependencyTemplates, outputOptions, requestShortener);
var content = source.source();
var footer = ["\n",
"// WEBPACK FOOTER",
"// module.id = " + module.id,
"// module.readableIdentifier = " + module.readableIdentifier(requestShortener),
"//@ sourceURL=webpack-module:///" + encodeURI(module.readableIdentifier(requestShortener)).replace(/%2F/g, "/").replace(/%20/g, "_").replace(/%5E/g, "^").replace(/%5C/g, "\\").replace(/\?/, "%3F").replace(/^\//, "")
].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");
};