| 
									
										
										
										
											2013-01-31 01:49:25 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2018-07-30 23:08:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-11 02:14:05 +08:00
										 |  |  | "use strict"; | 
					
						
							| 
									
										
										
										
											2013-01-31 01:49:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-23 23:33:29 +08:00
										 |  |  | const ContextDependency = require("./ContextDependency"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ | 
					
						
							| 
									
										
										
										
											2018-07-30 23:08:51 +08:00
										 |  |  | /** @typedef {import("../Dependency")} Dependency */ | 
					
						
							| 
									
										
										
										
											2018-07-18 01:38:42 +08:00
										 |  |  | /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ | 
					
						
							| 
									
										
										
										
											2018-07-23 23:33:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ContextDependencyTemplateAsRequireCall extends ContextDependency.Template { | 
					
						
							|  |  |  | 	/** | 
					
						
							|  |  |  | 	 * @param {Dependency} dependency the dependency for which the template should be applied | 
					
						
							|  |  |  | 	 * @param {ReplaceSource} source the current replace source which can be modified | 
					
						
							| 
									
										
										
										
											2018-07-18 01:38:42 +08:00
										 |  |  | 	 * @param {DependencyTemplateContext} templateContext the context object | 
					
						
							| 
									
										
										
										
											2018-07-23 23:33:29 +08:00
										 |  |  | 	 * @returns {void} | 
					
						
							|  |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											2018-08-28 17:50:33 +08:00
										 |  |  | 	apply(dependency, source, { runtimeTemplate, moduleGraph, chunkGraph }) { | 
					
						
							| 
									
										
										
										
											2018-07-23 23:33:29 +08:00
										 |  |  | 		const dep = /** @type {ContextDependency} */ (dependency); | 
					
						
							|  |  |  | 		const moduleExports = runtimeTemplate.moduleExports({ | 
					
						
							| 
									
										
										
										
											2018-07-24 21:30:37 +08:00
										 |  |  | 			module: moduleGraph.getModule(dep), | 
					
						
							| 
									
										
										
										
											2018-08-28 17:50:33 +08:00
										 |  |  | 			chunkGraph, | 
					
						
							| 
									
										
										
										
											2017-12-19 22:50:09 +08:00
										 |  |  | 			request: dep.request | 
					
						
							|  |  |  | 		}); | 
					
						
							| 
									
										
										
										
											2017-02-05 08:34:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-24 21:30:37 +08:00
										 |  |  | 		if (moduleGraph.getModule(dep)) { | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 			if (dep.valueRange) { | 
					
						
							|  |  |  | 				if (Array.isArray(dep.replaces)) { | 
					
						
							|  |  |  | 					for (let i = 0; i < dep.replaces.length; i++) { | 
					
						
							| 
									
										
										
										
											2017-01-11 02:14:05 +08:00
										 |  |  | 						const rep = dep.replaces[i]; | 
					
						
							| 
									
										
										
										
											2017-01-18 23:19:15 +08:00
										 |  |  | 						source.replace(rep.range[0], rep.range[1] - 1, rep.value); | 
					
						
							| 
									
										
										
										
											2017-01-11 02:14:05 +08:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2016-11-15 21:03:53 +08:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2017-01-11 02:14:05 +08:00
										 |  |  | 				source.replace(dep.valueRange[1], dep.range[1] - 1, ")"); | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 				source.replace( | 
					
						
							|  |  |  | 					dep.range[0], | 
					
						
							|  |  |  | 					dep.valueRange[0] - 1, | 
					
						
							| 
									
										
										
										
											2018-10-12 23:59:26 +08:00
										 |  |  | 					`${moduleExports}(` | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 				); | 
					
						
							| 
									
										
										
										
											2017-01-11 02:14:05 +08:00
										 |  |  | 			} else { | 
					
						
							| 
									
										
										
										
											2017-12-19 22:50:09 +08:00
										 |  |  | 				source.replace(dep.range[0], dep.range[1] - 1, moduleExports); | 
					
						
							| 
									
										
										
										
											2016-11-17 20:43:31 +08:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2013-01-31 01:49:25 +08:00
										 |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2017-12-19 22:50:09 +08:00
										 |  |  | 			source.replace(dep.range[0], dep.range[1] - 1, moduleExports); | 
					
						
							| 
									
										
										
										
											2013-01-31 01:49:25 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-01-11 02:14:05 +08:00
										 |  |  | } | 
					
						
							|  |  |  | module.exports = ContextDependencyTemplateAsRequireCall; |