forked from webpack/webpack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSetVarMainTemplateDecorator.js
More file actions
27 lines (26 loc) · 1008 Bytes
/
SetVarMainTemplateDecorator.js
File metadata and controls
27 lines (26 loc) · 1008 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var ConcatSource = require("webpack-core/lib/ConcatSource");
function SetVarMainTemplateDecorator(mainTemplate, varExpression, copyObject) {
this.mainTemplate = mainTemplate;
this.varExpression = varExpression;
this.copyObject = copyObject;
}
module.exports = SetVarMainTemplateDecorator;
SetVarMainTemplateDecorator.prototype.render = function(hash, chunk, moduleTemplate, dependencyTemplates) {
var source = this.mainTemplate.render(hash, chunk, moduleTemplate, dependencyTemplates);
if(this.copyObject) {
return new ConcatSource("(function(e, a) { for(var i in a) e[i] = a[i]; }(" +
this.varExpression + ", ", source, "))");
} else {
var prefix = this.varExpression + " =\n";
return new ConcatSource(prefix, source);
}
};
SetVarMainTemplateDecorator.prototype.updateHash = function(hash) {
hash.update("set var");
hash.update(this.varExpression);
this.mainTemplate.updateHash(hash);
};