Code coverage report for lib\SetVarMainTemplatePlugin.js

Statements: 90% (18 / 20)      Branches: 62.5% (5 / 8)      Functions: 100% (5 / 5)      Lines: 90% (18 / 20)      Ignored: none     

All files » lib\ » SetVarMainTemplatePlugin.js
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 28 29 30 31 32 33 34 35 36 37        1 1   1 10 10   1 1 10 10         10       10 10     10 9     10 10 10 10    
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
var ConcatSource = require("webpack-core/lib/ConcatSource");
var Template = require("./Template");
 
function SetVarMainTemplatePlugin(varExpression, copyObject) {
	this.varExpression = varExpression;
	this.copyObject = copyObject;
}
module.exports = SetVarMainTemplatePlugin;
SetVarMainTemplatePlugin.prototype.apply = function(mainTemplate) {
	mainTemplate.plugin("render", function(source, chunk, hash) {
		var varExpression = this.varExpression
			.replace(Template.REGEXP_HASH, hash)
			.replace(Template.REGEXP_CHUNKHASH, chunk.renderedHash)
			.replace(Template.REGEXP_ID, chunk.id)
			.replace(Template.REGEXP_NAME, chunk.name || chunk.id);
		Iif(this.copyObject) {
			return new ConcatSource("(function(e, a) { for(var i in a) e[i] = a[i]; }(" +
				varExpression + ", ", source, "))");
		} else {
			var prefix = varExpression + " =\n";
			return new ConcatSource(prefix, source);
		}
	}.bind(this));
	mainTemplate.plugin("global-hash", function(chunk) {
		Iif(Template.REGEXP_HASH.test(this.varExpression || ""))
			return true;
	}.bind(this));
	mainTemplate.plugin("hash", function(hash) {
		hash.update("set var");
		hash.update(this.varExpression + "");
		hash.update(this.copyObject + "");
	}.bind(this));
};