Skip to content

Commit

Permalink
Calculate isExternalLibraryImport at the end
Browse files Browse the repository at this point in the history
  • Loading branch information
Andy Hanson committed Oct 19, 2018
1 parent 555463f commit 6d74dbf
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 20 deletions.
19 changes: 7 additions & 12 deletions src/compiler/moduleNameResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -298,34 +298,32 @@ namespace ts {

let resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined;
if (resolved) {
const { resolvedFile: { fileName, packageId }, isExternalLibraryImport } = resolved;
const { fileName, packageId } = resolved;
const resolvedFileName = options.preserveSymlinks ? fileName : realPath(fileName, host, traceEnabled);
if (traceEnabled) {
trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, resolvedFileName, primary);
}
resolvedTypeReferenceDirective = { primary, resolvedFileName, packageId, isExternalLibraryImport };
resolvedTypeReferenceDirective = { primary, resolvedFileName, packageId, isExternalLibraryImport: pathContainsNodeModules(resolvedFileName) };
}

return { resolvedTypeReferenceDirective, failedLookupLocations };

interface ResolvedAndIsExternal { resolvedFile: PathAndPackageId; isExternalLibraryImport: boolean; }
function primaryLookup(): ResolvedAndIsExternal | undefined {
function primaryLookup(): PathAndPackageId | undefined {
// Check primary library paths
if (typeRoots && typeRoots.length) {
if (traceEnabled) {
trace(host, Diagnostics.Resolving_with_primary_search_path_0, typeRoots.join(", "));
}
return firstDefined(typeRoots, (typeRoot): ResolvedAndIsExternal | undefined => {
return firstDefined(typeRoots, typeRoot => {
const candidate = combinePaths(typeRoot, typeReferenceDirectiveName);
const candidateDirectory = getDirectoryPath(candidate);
const directoryExists = directoryProbablyExists(candidateDirectory, host);
if (!directoryExists && traceEnabled) {
trace(host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, candidateDirectory);
}
const resolvedFile = resolvedTypeScriptOnly(
return resolvedTypeScriptOnly(
loadNodeModuleFromDirectory(Extensions.DtsOnly, candidate,
!directoryExists, moduleResolutionState));
return resolvedFile && { resolvedFile, isExternalLibraryImport: pathContainsNodeModules(typeRoot) };
});
}
else {
Expand All @@ -335,7 +333,7 @@ namespace ts {
}
}

function secondaryLookup(): ResolvedAndIsExternal | undefined {
function secondaryLookup(): PathAndPackageId | undefined {
const initialLocationForSecondaryLookup = containingFile && getDirectoryPath(containingFile);

if (initialLocationForSecondaryLookup !== undefined) {
Expand All @@ -344,22 +342,19 @@ namespace ts {
trace(host, Diagnostics.Looking_up_in_node_modules_folder_initial_location_0, initialLocationForSecondaryLookup);
}
let result: Resolved | undefined;
let isExternalLibraryImport: boolean;
if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) {
const searchResult = loadModuleFromNearestNodeModulesDirectory(Extensions.DtsOnly, typeReferenceDirectiveName, initialLocationForSecondaryLookup, moduleResolutionState, /*cache*/ undefined, /*redirectedReference*/ undefined);
result = searchResult && searchResult.value;
isExternalLibraryImport = true;
}
else {
const { path: candidate } = normalizePathAndParts(combinePaths(initialLocationForSecondaryLookup, typeReferenceDirectiveName));
result = nodeLoadModuleByRelativeName(Extensions.DtsOnly, candidate, /*onlyRecordFailures*/ false, moduleResolutionState, /*considerPackageJson*/ true);
isExternalLibraryImport = !!result && pathContainsNodeModules(result.path);
}
const resolvedFile = resolvedTypeScriptOnly(result);
if (!resolvedFile && traceEnabled) {
trace(host, Diagnostics.Type_reference_directive_0_was_not_resolved, typeReferenceDirectiveName);
}
return resolvedFile && { resolvedFile, isExternalLibraryImport };
return resolvedFile;
}
else {
if (traceEnabled) {
Expand Down
8 changes: 0 additions & 8 deletions tests/baselines/reference/typingsLookup4.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,6 @@ import { m } from "mquery";
j + k + l + m;


//// [lquery.js]
"use strict";
exports.__esModule = true;
exports.l = 2;
//// [index.js]
"use strict";
exports.__esModule = true;
exports.m = 3;
//// [a.js]
"use strict";
exports.__esModule = true;
Expand Down

0 comments on commit 6d74dbf

Please sign in to comment.