Skip to content

Commit 9d32707

Browse files
committed
feat: supress error 2961 when emitExtension is .ts
1 parent ebc6aa4 commit 9d32707

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/compiler/checker.ts

+14-7
Original file line numberDiff line numberDiff line change
@@ -3051,13 +3051,18 @@ namespace ts {
30513051
else {
30523052
const tsExtension = tryExtractTSExtension(moduleReference);
30533053
if (tsExtension) {
3054-
const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
3055-
let rightPath = removeExtension(moduleReference, tsExtension);
3056-
if (compilerOptions.emitExtension) {
3057-
// e.g.: Consider importing '{1}.mjs' instead.
3058-
rightPath += compilerOptions.emitExtension;
3054+
if (compilerOptions.emitExtension === tsExtension) {
3055+
error(errorNode, moduleNotFoundError, moduleReference);
3056+
}
3057+
else {
3058+
const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
3059+
let rightPath = removeExtension(moduleReference, tsExtension);
3060+
if (compilerOptions.emitExtension) {
3061+
// e.g.: Consider importing '{1}.mjs' instead.
3062+
rightPath += compilerOptions.emitExtension;
3063+
}
3064+
error(errorNode, diag, tsExtension, rightPath);
30593065
}
3060-
error(errorNode, diag, tsExtension, rightPath);
30613066
}
30623067
else if (!compilerOptions.resolveJsonModule &&
30633068
fileExtensionIs(moduleReference, Extension.Json) &&
@@ -33664,10 +33669,12 @@ namespace ts {
3366433669
return false;
3366533670
}
3366633671
}
33667-
else if (compilerOptions.noImplicitExtensionName) {
33672+
// Skip noImplicitExtensionName check for files in node_modules
33673+
else if (compilerOptions.noImplicitExtensionName && !getSourceFileOfNode(node).fileName.includes("node_modules")) {
3366833674
const extensionLess = removeFileExtension(moduleName.text, compilerOptions);
3366933675
if (extensionLess === moduleName.text) {
3367033676
error(node, Diagnostics.Import_with_an_implicit_extension_name_is_not_allowed_Try_to_import_from_0_1_instead, extensionLess, compilerOptions.emitExtension || ".js");
33677+
return false;
3367133678
}
3367233679
}
3367333680
}

0 commit comments

Comments
 (0)