You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							1.2 KiB
						
					
					
				/* | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php | 
						|
	Author Tobias Koppers @sokra | 
						|
*/ | 
						|
"use strict"; | 
						|
 | 
						|
const LocalModule = require("./LocalModule"); | 
						|
const LocalModulesHelpers = exports; | 
						|
 | 
						|
const lookup = (parent, mod) => { | 
						|
	if (mod.charAt(0) !== ".") return mod; | 
						|
 | 
						|
	var path = parent.split("/"); | 
						|
	var segs = mod.split("/"); | 
						|
	path.pop(); | 
						|
 | 
						|
	for (let i = 0; i < segs.length; i++) { | 
						|
		const seg = segs[i]; | 
						|
		if (seg === "..") { | 
						|
			path.pop(); | 
						|
		} else if (seg !== ".") { | 
						|
			path.push(seg); | 
						|
		} | 
						|
	} | 
						|
 | 
						|
	return path.join("/"); | 
						|
}; | 
						|
 | 
						|
LocalModulesHelpers.addLocalModule = (state, name) => { | 
						|
	if (!state.localModules) { | 
						|
		state.localModules = []; | 
						|
	} | 
						|
	const m = new LocalModule(state.module, name, state.localModules.length); | 
						|
	state.localModules.push(m); | 
						|
	return m; | 
						|
}; | 
						|
 | 
						|
LocalModulesHelpers.getLocalModule = (state, name, namedModule) => { | 
						|
	if (!state.localModules) return null; | 
						|
	if (namedModule) { | 
						|
		// resolve dependency name relative to the defining named module | 
						|
		name = lookup(namedModule, name); | 
						|
	} | 
						|
	for (let i = 0; i < state.localModules.length; i++) { | 
						|
		if (state.localModules[i].name === name) { | 
						|
			return state.localModules[i]; | 
						|
		} | 
						|
	} | 
						|
	return null; | 
						|
}; | 
						|
 | 
						|
module.exports = LocalModulesHelpers;
 | 
						|
 |