(extensions, state, cache, redirectedReference, moduleName, lookupTable, scope, isImports)
| 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 | */ |
no test coverage detected
searching dependent graphs…