| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | /*	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;
 |