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

Commit 3696ed5

Browse files
fix: handle extension-less files (#12)
1 parent 59e63b1 commit 3696ed5

File tree

5 files changed

+21
-16
lines changed

5 files changed

+21
-16
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"test": "node --loader @esbuild-kit/esm-loader tests"
3232
},
3333
"dependencies": {
34-
"@esbuild-kit/core-utils": "^1.1.1",
34+
"@esbuild-kit/core-utils": "^1.1.2",
3535
"es-module-lexer": "^0.10.5",
3636
"get-tsconfig": "^3.0.1"
3737
},

pnpm-lock.yaml

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/loaders-deprecated.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const _getFormat: getFormat = async function (
3737
return { format: 'module' };
3838
}
3939

40-
if (tsExtensionsPattern.test(url)) {
40+
if (url.startsWith('file:')) {
4141
const format = getFormatFromExtension(url) ?? await getPackageType(url);
4242
return { format };
4343
}
@@ -89,7 +89,7 @@ const _transformSource: transformSource = async function (
8989
}
9090

9191
const result = await defaultTransformSource(source, context, defaultTransformSource);
92-
const dynamicImportTransformed = transformDynamicImport({ code: result.source });
92+
const dynamicImportTransformed = transformDynamicImport({ code: result.source.toString() });
9393
if (dynamicImportTransformed) {
9494
result.source = dynamicImportTransformed.code;
9595

src/loaders.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,20 @@ export const resolve: resolve = async function (
108108
};
109109
}
110110

111-
if (tsExtensionsPattern.test(resolved.url)) {
112-
const format = getFormatFromExtension(resolved.url) ?? await getPackageType(resolved.url);
113-
return {
114-
...resolved,
115-
format,
116-
};
111+
let { format } = resolved;
112+
113+
if (resolved.url.startsWith('file:')) {
114+
format = getFormatFromExtension(resolved.url) ?? format;
115+
116+
if (!format) {
117+
format = await getPackageType(resolved.url);
118+
}
117119
}
118120

119-
return resolved;
121+
return {
122+
...resolved,
123+
format,
124+
};
120125
};
121126

122127
type load = (

src/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ export const tsExtensionsPattern = /\.([cm]?ts|[tj]sx)$/;
66
export const getFormatFromExtension = (filePath: string): ModuleFormat | undefined => {
77
const extension = path.extname(filePath);
88

9-
if (extension === '.mts') {
9+
if (extension === '.mjs' || extension === '.mts') {
1010
return 'module';
1111
}
1212

13-
if (extension === '.cts') {
13+
if (extension === '.cjs' || extension === '.cts') {
1414
return 'commonjs';
1515
}
1616
};

0 commit comments

Comments
 (0)