| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | var Module = require("./Module"); | 
					
						
							|  |  |  | var OriginalSource = require("webpack-core/lib/OriginalSource"); | 
					
						
							|  |  |  | var RawSource = require("webpack-core/lib/RawSource"); | 
					
						
							|  |  |  | var WebpackMissingModule = require("./dependencies/WebpackMissingModule"); | 
					
						
							|  |  |  | var DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-18 05:03:21 +08:00
										 |  |  | function DelegatedModule(sourceRequest, request, type, userRequest) { | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 	Module.call(this); | 
					
						
							|  |  |  | 	this.sourceRequest = sourceRequest; | 
					
						
							|  |  |  | 	this.request = request; | 
					
						
							|  |  |  | 	this.type = type; | 
					
						
							| 
									
										
										
										
											2015-05-18 05:03:21 +08:00
										 |  |  | 	this.userRequest = userRequest; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 	this.built = false; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | module.exports = DelegatedModule; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype = Object.create(Module.prototype); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.delegated = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.identifier = function() { | 
					
						
							|  |  |  | 	return "delegated " + JSON.stringify(this.request) + " from " + this.sourceRequest; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.readableIdentifier = function() { | 
					
						
							| 
									
										
										
										
											2015-05-18 05:03:21 +08:00
										 |  |  | 	return "delegated " + this.userRequest + " from " + this.sourceRequest; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.needRebuild = function() { | 
					
						
							|  |  |  | 	return false; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.build = function(options, compilation, resolver, fs, callback) { | 
					
						
							|  |  |  | 	this.builtTime = new Date().getTime(); | 
					
						
							|  |  |  | 	this.dependencies.length = 0; | 
					
						
							|  |  |  | 	this.addDependency(new DelegatedSourceDependency(this.sourceRequest)); | 
					
						
							|  |  |  | 	callback(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.source = function() { | 
					
						
							|  |  |  | 	var sourceModule = this.dependencies[0].module; | 
					
						
							|  |  |  | 	var str; | 
					
						
							| 
									
										
										
										
											2015-07-16 06:19:23 +08:00
										 |  |  | 	if(!sourceModule) { | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 		str = WebpackMissingModule.moduleCode(this.sourceRequest); | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		str = "module.exports = (__webpack_require__(" + sourceModule.id + "))"; | 
					
						
							| 
									
										
										
										
											2015-07-16 06:19:23 +08:00
										 |  |  | 		switch(this.type) { | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 			case "require": | 
					
						
							|  |  |  | 				str += "(" + JSON.stringify(this.request) + ");"; | 
					
						
							|  |  |  | 				break; | 
					
						
							|  |  |  | 			case "object": | 
					
						
							|  |  |  | 				str += "[" + JSON.stringify(this.request) + "];"; | 
					
						
							|  |  |  | 				break; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2015-07-16 06:19:23 +08:00
										 |  |  | 	if(this.useSourceMap) { | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 		return new OriginalSource(str, this.identifier()); | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		return new RawSource(str); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype.size = function() { | 
					
						
							|  |  |  | 	return 42; | 
					
						
							|  |  |  | }; |