MCPcopy Index your code
hub / github.com/nodejs/node / loadModuleFromImportsOrExports

Function loadModuleFromImportsOrExports

test/fixtures/snapshot/typescript.js:44034–44068  ·  view source on GitHub ↗
(extensions, state, cache, redirectedReference, moduleName, lookupTable, scope, isImports)

Source from the content-addressed store, hash-verified

44032 return 0;
44033 }
44034 function loadModuleFromImportsOrExports(extensions, state, cache, redirectedReference, moduleName, lookupTable, scope, isImports) {
44035 var loadModuleFromTargetImportOrExport = getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirectedReference, moduleName, scope, isImports);
44036 if (!ts.endsWith(moduleName, ts.directorySeparator) && moduleName.indexOf("*") === -1 && ts.hasProperty(lookupTable, moduleName)) {
44037 var target = lookupTable[moduleName];
44038 return loadModuleFromTargetImportOrExport(target, /*subpath*/ "", /*pattern*/ false);
44039 }
44040 var expandingKeys = ts.sort(ts.filter(ts.getOwnKeys(lookupTable), function (k) { return k.indexOf("*") !== -1 || ts.endsWith(k, "/"); }), comparePatternKeys);
44041 for (var _i = 0, expandingKeys_1 = expandingKeys; _i < expandingKeys_1.length; _i++) {
44042 var potentialTarget = expandingKeys_1[_i];
44043 if (state.features & NodeResolutionFeatures.ExportsPatternTrailers && matchesPatternWithTrailer(potentialTarget, moduleName)) {
44044 var target = lookupTable[potentialTarget];
44045 var starPos = potentialTarget.indexOf("*");
44046 var subpath = moduleName.substring(potentialTarget.substring(0, starPos).length, moduleName.length - (potentialTarget.length - 1 - starPos));
44047 return loadModuleFromTargetImportOrExport(target, subpath, /*pattern*/ true);
44048 }
44049 else if (ts.endsWith(potentialTarget, "*") && ts.startsWith(moduleName, potentialTarget.substring(0, potentialTarget.length - 1))) {
44050 var target = lookupTable[potentialTarget];
44051 var subpath = moduleName.substring(potentialTarget.length - 1);
44052 return loadModuleFromTargetImportOrExport(target, subpath, /*pattern*/ true);
44053 }
44054 else if (ts.startsWith(moduleName, potentialTarget)) {
44055 var target = lookupTable[potentialTarget];
44056 var subpath = moduleName.substring(potentialTarget.length);
44057 return loadModuleFromTargetImportOrExport(target, subpath, /*pattern*/ false);
44058 }
44059 }
44060 function matchesPatternWithTrailer(target, name) {
44061 if (ts.endsWith(target, "*"))
44062 return false; // handled by next case in loop
44063 var starPos = target.indexOf("*");
44064 if (starPos === -1)
44065 return false; // handled by last case in loop
44066 return ts.startsWith(name, target.substring(0, starPos)) && ts.endsWith(name, target.substring(starPos + 1));
44067 }
44068 }
44069 /**
44070 * Gets the self-recursive function specialized to retrieving the targeted import/export element for the given resolution configuration
44071 */

Callers 2

loadModuleFromExportsFunction · 0.85
loadModuleFromImportsFunction · 0.85

Calls 6

sortMethod · 0.80
filterMethod · 0.65
indexOfMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…