diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e25185a..aa00242 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -128,7 +128,7 @@ jobs: target: s390x-unknown-linux-gnu build: | sudo apt-get update - sudo apt-get install -y gcc-s390x-linux-gnu + sudo apt-get install -y gcc-11-s390x-linux-gnu pnpm --filter=@oxc-node/core build --target s390x-unknown-linux-gnu - host: ubuntu-latest target: wasm32-wasip1-threads diff --git a/packages/integrate-module-bundler/src/enforce-mts/index.mts b/packages/integrate-module-bundler/src/enforce-mts/index.mts new file mode 100644 index 0000000..08f88a1 --- /dev/null +++ b/packages/integrate-module-bundler/src/enforce-mts/index.mts @@ -0,0 +1 @@ +export const exportFromMts = 'exportFromMts' diff --git a/packages/integrate-module-bundler/src/enforce-mts/package.json b/packages/integrate-module-bundler/src/enforce-mts/package.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/packages/integrate-module-bundler/src/enforce-mts/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/packages/integrate-module-bundler/src/index.ts b/packages/integrate-module-bundler/src/index.ts index 289c8a8..2e38c1d 100644 --- a/packages/integrate-module-bundler/src/index.ts +++ b/packages/integrate-module-bundler/src/index.ts @@ -15,7 +15,7 @@ import { baz } from './subdirectory/index' import { Component } from './component' import './js-module' import babelGeneratedDoubleDefault from './babel-generated-double-default' - +import { exportFromMts } from './enforce-mts/index.mjs' const { foo: fooWithQuery } = await import(`./foo.js?q=${Date.now()}`) await test('file-type should work', () => { @@ -66,3 +66,7 @@ await test('import default from babel-generated cjs file', () => { await test('resolve cjs in type module package', () => { assert.equal(common, 'common') }) + +await test('resolve mts in type commonjs package', () => { + assert.equal(exportFromMts, 'exportFromMts') +}) diff --git a/src/lib.rs b/src/lib.rs index 6960f6c..a46cac3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -420,22 +420,20 @@ pub fn create_resolve<'env>( let ext = p.extension().and_then(|ext| ext.to_str()); let format = ext - .and_then(|ext| { - if ext == "cjs" || ext == "cts" || ext == "node" { - None - } else { - resolution - .package_json() - .and_then(|p| p.r#type.as_ref()) - .and_then(|t| t.as_str()) - .and_then(|format| { - if format == "module" { - Some("module".to_owned()) - } else { - None - } - }) - } + .and_then(|ext| match ext { + "cjs" | "cts" | "node" => None, + "mts" | "mjs" => Some("module".to_owned()), + _ => resolution + .package_json() + .and_then(|p| p.r#type.as_ref()) + .and_then(|t| t.as_str()) + .and_then(|format| { + if format == "module" { + Some("module".to_owned()) + } else { + None + } + }), }) .unwrap_or_else(|| "commonjs".to_owned()); tracing::debug!(path = ?p, format = ?format);