34 lines
1.4 KiB
JavaScript
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");
|
|
}; |