Skip to content

Commit 560ee7a

Browse files
authored
fix(core): enfore to esm if file extensions match (#55)
1 parent 50897d3 commit 560ee7a

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const exportFromMts = 'exportFromMts'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "commonjs"
3+
}

packages/integrate-module-bundler/src/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { baz } from './subdirectory/index'
1515
import { Component } from './component'
1616
import './js-module'
1717
import babelGeneratedDoubleDefault from './babel-generated-double-default'
18-
18+
import { exportFromMts } from './enforce-mts/index.mjs'
1919
const { foo: fooWithQuery } = await import(`./foo.js?q=${Date.now()}`)
2020

2121
await test('file-type should work', () => {
@@ -66,3 +66,7 @@ await test('import default from babel-generated cjs file', () => {
6666
await test('resolve cjs in type module package', () => {
6767
assert.equal(common, 'common')
6868
})
69+
70+
await test('resolve mts in type commonjs package', () => {
71+
assert.equal(exportFromMts, 'exportFromMts')
72+
})

src/lib.rs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -420,22 +420,20 @@ pub fn create_resolve<'env>(
420420
let ext = p.extension().and_then(|ext| ext.to_str());
421421

422422
let format = ext
423-
.and_then(|ext| {
424-
if ext == "cjs" || ext == "cts" || ext == "node" {
425-
None
426-
} else {
427-
resolution
428-
.package_json()
429-
.and_then(|p| p.r#type.as_ref())
430-
.and_then(|t| t.as_str())
431-
.and_then(|format| {
432-
if format == "module" {
433-
Some("module".to_owned())
434-
} else {
435-
None
436-
}
437-
})
438-
}
423+
.and_then(|ext| match ext {
424+
"cjs" | "cts" | "node" => None,
425+
"mts" | "mjs" => Some("module".to_owned()),
426+
_ => resolution
427+
.package_json()
428+
.and_then(|p| p.r#type.as_ref())
429+
.and_then(|t| t.as_str())
430+
.and_then(|format| {
431+
if format == "module" {
432+
Some("module".to_owned())
433+
} else {
434+
None
435+
}
436+
}),
439437
})
440438
.unwrap_or_else(|| "commonjs".to_owned());
441439
tracing::debug!(path = ?p, format = ?format);

0 commit comments

Comments
 (0)