Skip to content

Commit 53d2b7e

Browse files
authored
Don’t assume importing some JSON means you want everything imported with .js extensions (#34961)
1 parent 4cbace7 commit 53d2b7e

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

src/compiler/moduleSpecifiers.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ namespace ts.moduleSpecifiers {
3030
function getPreferencesForUpdate(compilerOptions: CompilerOptions, oldImportSpecifier: string): Preferences {
3131
return {
3232
relativePreference: isExternalModuleNameRelative(oldImportSpecifier) ? RelativePreference.Relative : RelativePreference.NonRelative,
33-
ending: hasJSOrJsonFileExtension(oldImportSpecifier) ?
33+
ending: hasJSFileExtension(oldImportSpecifier) ?
3434
Ending.JsExtension :
3535
getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.NodeJs || endsWith(oldImportSpecifier, "index") ? Ending.Index : Ending.Minimal,
3636
};
@@ -163,7 +163,7 @@ namespace ts.moduleSpecifiers {
163163
}
164164

165165
function usesJsExtensionOnImports({ imports }: SourceFile): boolean {
166-
return firstDefined(imports, ({ text }) => pathIsRelative(text) ? hasJSOrJsonFileExtension(text) : undefined) || false;
166+
return firstDefined(imports, ({ text }) => pathIsRelative(text) ? hasJSFileExtension(text) : undefined) || false;
167167
}
168168

169169
function numberOfDirectorySeparators(str: string) {

src/compiler/utilities.ts

-4
Original file line numberDiff line numberDiff line change
@@ -8131,10 +8131,6 @@ namespace ts {
81318131
return some(supportedJSExtensions, extension => fileExtensionIs(fileName, extension));
81328132
}
81338133

8134-
export function hasJSOrJsonFileExtension(fileName: string): boolean {
8135-
return supportedJSAndJsonExtensions.some(ext => fileExtensionIs(fileName, ext));
8136-
}
8137-
81388134
export function hasTSFileExtension(fileName: string): boolean {
81398135
return some(supportedTSExtensions, extension => fileExtensionIs(fileName, extension));
81408136
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @Filename: /a.ts
4+
////export const a = 'a';
5+
6+
// @Filename: /b.ts
7+
////import "./anything.json";
8+
////
9+
////a/**/
10+
11+
goTo.file("/b.ts");
12+
verify.importFixAtPosition([`import "./anything.json";
13+
import { a } from "./a";
14+
15+
a`]);

0 commit comments

Comments
 (0)