mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
						|
	Author Tobias Koppers @sokra
 | 
						|
*/
 | 
						|
var ReplaceSource = require("webpack-core/lib/ReplaceSource");
 | 
						|
var RawSource = require("webpack-core/lib/RawSource");
 | 
						|
 | 
						|
function DependenciesBlockVariable(name, expression, dependencies) {
 | 
						|
	this.name = name;
 | 
						|
	this.expression = expression;
 | 
						|
	this.dependencies = dependencies || [];
 | 
						|
}
 | 
						|
module.exports = DependenciesBlockVariable;
 | 
						|
 | 
						|
DependenciesBlockVariable.prototype.updateHash = function(hash) {
 | 
						|
	hash.update(this.name);
 | 
						|
	hash.update(this.expression);
 | 
						|
	this.dependencies.forEach(function(d) {
 | 
						|
		d.updateHash(hash);
 | 
						|
	});
 | 
						|
};
 | 
						|
 | 
						|
DependenciesBlockVariable.prototype.expressionSource = function(dependencyTemplates, outputOptions, requestShortener) {
 | 
						|
	var source = new ReplaceSource(new RawSource(this.expression));
 | 
						|
	this.dependencies.forEach(function(dep) {
 | 
						|
		var template = dependencyTemplates.get(dep.Class);
 | 
						|
		if(!template) throw new Error("No template for dependency: " + dep.Class.name);
 | 
						|
		template.apply(dep, source, outputOptions, requestShortener, dependencyTemplates);
 | 
						|
	});
 | 
						|
	return source;
 | 
						|
};
 | 
						|
 | 
						|
DependenciesBlockVariable.prototype.disconnect = function() {
 | 
						|
	this.dependencies.forEach(function(d) {
 | 
						|
		d.disconnect();
 | 
						|
	});
 | 
						|
};
 |