mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | 	Author Tobias Koppers @sokra | ||
|  | */ | ||
|  | var ReplaceSource = require("./ReplaceSource"); | ||
|  | var StringSource = 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 StringSource(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); | ||
|  | 	}); | ||
|  | 	return source; | ||
|  | }; | ||
|  | 
 | ||
|  | DependenciesBlockVariable.prototype.disconnect = function() { | ||
|  | 	this.dependencies.forEach(function(d) { | ||
|  | 		d.disconnect(); | ||
|  | 	}); | ||
|  | }; |