Skip to content
This repository was archived by the owner on Oct 18, 2023. It is now read-only.

Commit c2d2997

Browse files
committed
try to load typescript fallback for specifier with extensions.
1 parent d50ddac commit c2d2997

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/loaders.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,26 @@ type resolve = (
3737

3838
const extensions = ['.js', '.json', '.ts', '.tsx', '.jsx'] as const;
3939

40+
const mappedExtensions = {
41+
'.js': ['.ts'],
42+
'.cjs': ['.cts'],
43+
'.mjs': ['.mts'],
44+
} as const;
45+
4046
async function tryExtensions(
4147
specifier: string,
4248
context: Context,
4349
defaultResolve: resolve,
4450
) {
4551
let error;
46-
for (const extension of extensions) {
52+
const extension = path.extname(specifier);
53+
let extensionsToTry = mappedExtensions[extension];
54+
if (extensionsToTry) {
55+
specifier = specifier.slice(0, -extension.length);
56+
} else {
57+
extensionsToTry = extensions;
58+
}
59+
for (const extension of extensionsToTry) {
4760
try {
4861
return await resolve(
4962
specifier + extension,

0 commit comments

Comments
 (0)