Skip to content

Commit b363f4f

Browse files
author
Andy
authored
Log packageId in --traceResolution (#21233)
1 parent c549bb5 commit b363f4f

8 files changed

+28
-14
lines changed

Diff for: src/compiler/diagnosticMessages.json

+4
Original file line numberDiff line numberDiff line change
@@ -3451,6 +3451,10 @@
34513451
"category": "Error",
34523452
"code": 6189
34533453
},
3454+
"Found 'package.json' at '{0}'. Package ID is '{1}'.": {
3455+
"category": "Message",
3456+
"code": 6190
3457+
},
34543458
"Variable '{0}' implicitly has an '{1}' type.": {
34553459
"category": "Error",
34563460
"code": 7005

Diff for: src/compiler/moduleNameResolver.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -960,13 +960,18 @@ namespace ts {
960960
const directoryExists = !onlyRecordFailures && directoryProbablyExists(nodeModuleDirectory, host);
961961
const packageJsonPath = pathToPackageJson(nodeModuleDirectory);
962962
if (directoryExists && host.fileExists(packageJsonPath)) {
963-
if (traceEnabled) {
964-
trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath);
965-
}
966963
const packageJsonContent = readJson(packageJsonPath, host);
967964
const packageId: PackageId = typeof packageJsonContent.name === "string" && typeof packageJsonContent.version === "string"
968965
? { name: packageJsonContent.name, subModuleName, version: packageJsonContent.version }
969966
: undefined;
967+
if (traceEnabled) {
968+
if (packageId) {
969+
trace(host, Diagnostics.Found_package_json_at_0_Package_ID_is_1, packageJsonPath, packageIdToString(packageId));
970+
}
971+
else {
972+
trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath);
973+
}
974+
}
970975
return { found: true, packageJsonContent, packageId };
971976
}
972977
else {

Diff for: src/compiler/program.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1817,7 +1817,7 @@ namespace ts {
18171817
}, shouldCreateNewSourceFile);
18181818

18191819
if (packageId) {
1820-
const packageIdKey = `${packageId.name}/${packageId.subModuleName}@${packageId.version}`;
1820+
const packageIdKey = packageIdToString(packageId);
18211821
const fileFromPackageId = packageIdToSourceFile.get(packageIdKey);
18221822
if (fileFromPackageId) {
18231823
// Some other SourceFile already exists with this package name and version.

Diff for: src/compiler/utilities.ts

+5
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,11 @@ namespace ts {
116116
return a === b || a && b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version;
117117
}
118118

119+
export function packageIdToString({ name, subModuleName, version }: PackageId): string {
120+
const fullName = subModuleName ? `${name}/${subModuleName}` : name;
121+
return `${fullName}@${version}`;
122+
}
123+
119124
export function typeDirectiveIsEqualTo(oldResolution: ResolvedTypeReferenceDirective, newResolution: ResolvedTypeReferenceDirective): boolean {
120125
return oldResolution.resolvedFileName === newResolution.resolvedFileName && oldResolution.primary === newResolution.primary;
121126
}

Diff for: tests/baselines/reference/duplicatePackage_relativeImportWithinPackage.trace.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"======== Resolving module 'foo/use' from '/index.ts'. ========",
33
"Module resolution kind is not specified, using 'NodeJs'.",
44
"Loading module 'foo/use' from 'node_modules' folder, target file type 'TypeScript'.",
5-
"Found 'package.json' at '/node_modules/foo/package.json'.",
5+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/[email protected]'.",
66
"File '/node_modules/foo/use.ts' does not exist.",
77
"File '/node_modules/foo/use.tsx' does not exist.",
88
"File '/node_modules/foo/use.d.ts' exist - use it as a name resolution result.",
@@ -26,12 +26,12 @@
2626
"File '/node_modules/foo/index.ts' does not exist.",
2727
"File '/node_modules/foo/index.tsx' does not exist.",
2828
"File '/node_modules/foo/index.d.ts' exist - use it as a name resolution result.",
29-
"Found 'package.json' at '/node_modules/foo/package.json'.",
29+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is '[email protected]'.",
3030
"======== Module name './index' was successfully resolved to '/node_modules/foo/index.d.ts'. ========",
3131
"======== Resolving module 'foo' from '/node_modules/a/index.d.ts'. ========",
3232
"Module resolution kind is not specified, using 'NodeJs'.",
3333
"Loading module 'foo' from 'node_modules' folder, target file type 'TypeScript'.",
34-
"Found 'package.json' at '/node_modules/a/node_modules/foo/package.json'.",
34+
"Found 'package.json' at '/node_modules/a/node_modules/foo/package.json'. Package ID is '[email protected]'.",
3535
"File '/node_modules/a/node_modules/foo.ts' does not exist.",
3636
"File '/node_modules/a/node_modules/foo.tsx' does not exist.",
3737
"File '/node_modules/a/node_modules/foo.d.ts' does not exist.",

Diff for: tests/baselines/reference/duplicatePackage_relativeImportWithinPackage_scoped.trace.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"======== Resolving module '@foo/bar/use' from '/index.ts'. ========",
33
"Module resolution kind is not specified, using 'NodeJs'.",
44
"Loading module '@foo/bar/use' from 'node_modules' folder, target file type 'TypeScript'.",
5-
"Found 'package.json' at '/node_modules/@foo/bar/package.json'.",
5+
"Found 'package.json' at '/node_modules/@foo/bar/package.json'. Package ID is '@foo/bar/[email protected]'.",
66
"File '/node_modules/@foo/bar/use.ts' does not exist.",
77
"File '/node_modules/@foo/bar/use.tsx' does not exist.",
88
"File '/node_modules/@foo/bar/use.d.ts' exist - use it as a name resolution result.",
@@ -26,12 +26,12 @@
2626
"File '/node_modules/@foo/bar/index.ts' does not exist.",
2727
"File '/node_modules/@foo/bar/index.tsx' does not exist.",
2828
"File '/node_modules/@foo/bar/index.d.ts' exist - use it as a name resolution result.",
29-
"Found 'package.json' at '/node_modules/@foo/bar/package.json'.",
29+
"Found 'package.json' at '/node_modules/@foo/bar/package.json'. Package ID is '@foo/[email protected]'.",
3030
"======== Module name './index' was successfully resolved to '/node_modules/@foo/bar/index.d.ts'. ========",
3131
"======== Resolving module '@foo/bar' from '/node_modules/a/index.d.ts'. ========",
3232
"Module resolution kind is not specified, using 'NodeJs'.",
3333
"Loading module '@foo/bar' from 'node_modules' folder, target file type 'TypeScript'.",
34-
"Found 'package.json' at '/node_modules/a/node_modules/@foo/bar/package.json'.",
34+
"Found 'package.json' at '/node_modules/a/node_modules/@foo/bar/package.json'. Package ID is '@foo/[email protected]'.",
3535
"File '/node_modules/a/node_modules/@foo/bar.ts' does not exist.",
3636
"File '/node_modules/a/node_modules/@foo/bar.tsx' does not exist.",
3737
"File '/node_modules/a/node_modules/@foo/bar.d.ts' does not exist.",

Diff for: tests/baselines/reference/moduleResolution_packageJson_yesAtPackageRoot.trace.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"Module resolution kind is not specified, using 'NodeJs'.",
44
"Loading module 'foo/bar' from 'node_modules' folder, target file type 'TypeScript'.",
55
"File '/node_modules/foo/bar/package.json' does not exist.",
6-
"Found 'package.json' at '/node_modules/foo/package.json'.",
6+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/[email protected]'.",
77
"File '/node_modules/foo/bar.ts' does not exist.",
88
"File '/node_modules/foo/bar.tsx' does not exist.",
99
"File '/node_modules/foo/bar.d.ts' does not exist.",
@@ -13,7 +13,7 @@
1313
"Directory '/node_modules/@types' does not exist, skipping all lookups in it.",
1414
"Loading module 'foo/bar' from 'node_modules' folder, target file type 'JavaScript'.",
1515
"File '/node_modules/foo/bar/package.json' does not exist.",
16-
"Found 'package.json' at '/node_modules/foo/package.json'.",
16+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/[email protected]'.",
1717
"File '/node_modules/foo/bar.js' does not exist.",
1818
"File '/node_modules/foo/bar.jsx' does not exist.",
1919
"File '/node_modules/foo/bar/index.js' exist - use it as a name resolution result.",

Diff for: tests/baselines/reference/moduleResolution_packageJson_yesAtPackageRoot_fakeScopedPackage.trace.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"Module resolution kind is not specified, using 'NodeJs'.",
44
"Loading module 'foo/@bar' from 'node_modules' folder, target file type 'TypeScript'.",
55
"File '/node_modules/foo/@bar/package.json' does not exist.",
6-
"Found 'package.json' at '/node_modules/foo/package.json'.",
6+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/@[email protected]'.",
77
"File '/node_modules/foo/@bar.ts' does not exist.",
88
"File '/node_modules/foo/@bar.tsx' does not exist.",
99
"File '/node_modules/foo/@bar.d.ts' does not exist.",
@@ -13,7 +13,7 @@
1313
"Directory '/node_modules/@types' does not exist, skipping all lookups in it.",
1414
"Loading module 'foo/@bar' from 'node_modules' folder, target file type 'JavaScript'.",
1515
"File '/node_modules/foo/@bar/package.json' does not exist.",
16-
"Found 'package.json' at '/node_modules/foo/package.json'.",
16+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/@[email protected]'.",
1717
"File '/node_modules/foo/@bar.js' does not exist.",
1818
"File '/node_modules/foo/@bar.jsx' does not exist.",
1919
"File '/node_modules/foo/@bar/index.js' exist - use it as a name resolution result.",

0 commit comments

Comments
 (0)