| 
									
										
										
										
											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"); | 
					
						
							| 
									
										
										
										
											2015-12-30 00:44:55 +08:00
										 |  |  | var OriginalSource = require("webpack-sources").OriginalSource; | 
					
						
							|  |  |  | var RawSource = require("webpack-sources").RawSource; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | var WebpackMissingModule = require("./dependencies/WebpackMissingModule"); | 
					
						
							|  |  |  | var DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-17 18:05:29 +08:00
										 |  |  | function DelegatedModule(sourceRequest, data, type, userRequest) { | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 	Module.call(this); | 
					
						
							|  |  |  | 	this.sourceRequest = sourceRequest; | 
					
						
							| 
									
										
										
										
											2016-08-17 18:05:29 +08:00
										 |  |  | 	this.request = data.id; | 
					
						
							|  |  |  | 	this.meta = data.meta; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 	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; | 
					
						
							| 
									
										
										
										
											2016-12-05 06:47:19 +08:00
										 |  |  | 	this.delegateData = data; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | } | 
					
						
							|  |  |  | module.exports = DelegatedModule; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DelegatedModule.prototype = Object.create(Module.prototype); | 
					
						
							| 
									
										
										
										
											2016-05-20 13:39:36 +08:00
										 |  |  | DelegatedModule.prototype.constructor = DelegatedModule; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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) { | 
					
						
							| 
									
										
										
										
											2016-12-05 06:47:19 +08:00
										 |  |  | 	this.built = true; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 	this.builtTime = new Date().getTime(); | 
					
						
							| 
									
										
										
										
											2016-12-05 06:47:19 +08:00
										 |  |  | 	this.usedExports = true; | 
					
						
							|  |  |  | 	this.providedExports = this.delegateData.exports || true; | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 	this.dependencies.length = 0; | 
					
						
							|  |  |  | 	this.addDependency(new DelegatedSourceDependency(this.sourceRequest)); | 
					
						
							|  |  |  | 	callback(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-05 06:47:19 +08:00
										 |  |  | DelegatedModule.prototype.unbuild = function() { | 
					
						
							|  |  |  | 	this.built = false; | 
					
						
							|  |  |  | 	Module.prototype.unbuild.call(this); | 
					
						
							| 
									
										
										
										
											2017-01-11 17:51:58 +08:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-12-05 06:47:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-13 06:17:06 +08:00
										 |  |  | 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 { | 
					
						
							| 
									
										
										
										
											2016-04-22 05:50:28 +08:00
										 |  |  | 		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; | 
					
						
							|  |  |  | }; |