Skip to content

Commit 22d5b0e

Browse files
committed
Do not remove extension js or jsx from the subModuleName if the subModule doesnt have js or jsx extension
1 parent 7be8595 commit 22d5b0e

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/compiler/moduleNameResolver.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,8 +1012,10 @@ namespace ts {
10121012
}
10131013
else {
10141014
const jsPath = tryReadPackageJsonFields(/*readTypes*/ false, packageJsonContent, nodeModuleDirectory, state);
1015-
if (typeof jsPath === "string") {
1016-
subModuleName = removeExtension(removeExtension(jsPath.substring(nodeModuleDirectory.length + 1), Extension.Js), Extension.Jsx) + Extension.Dts;
1015+
if (typeof jsPath === "string" && jsPath.length > nodeModuleDirectory.length) {
1016+
const potentialSubModule = jsPath.substring(nodeModuleDirectory.length + 1);
1017+
subModuleName = (forEach(supportedJavascriptExtensions, extension =>
1018+
tryRemoveExtension(potentialSubModule, extension)) || potentialSubModule) + Extension.Dts;
10171019
}
10181020
else {
10191021
subModuleName = "index.d.ts";

tests/baselines/reference/moduleResolution_packageJson_yesAtPackageRoot_mainFieldInSubDirectory.trace.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"'package.json' does not have a 'typings' field.",
66
"'package.json' does not have a 'types' field.",
77
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
8-
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/i.d.ts@1.2.3'.",
8+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/index.d.ts@1.2.3'.",
99
"File '/node_modules/foo.ts' does not exist.",
1010
"File '/node_modules/foo.tsx' does not exist.",
1111
"File '/node_modules/foo.d.ts' does not exist.",
@@ -19,7 +19,7 @@
1919
"'package.json' does not have a 'typings' field.",
2020
"'package.json' does not have a 'types' field.",
2121
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
22-
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/i.d.ts@1.2.3'.",
22+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/index.d.ts@1.2.3'.",
2323
"File '/node_modules/foo.js' does not exist.",
2424
"File '/node_modules/foo.jsx' does not exist.",
2525
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",

0 commit comments

Comments
 (0)