Skip to content

Commit 00d7d5c

Browse files
fix: babel default interop issue. (#6)
1 parent bc6e571 commit 00d7d5c

3 files changed

Lines changed: 88 additions & 64 deletions

File tree

package-lock.json

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

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@knighted/module",
3-
"version": "1.0.0-alpha.5",
3+
"version": "1.0.0-alpha.6",
44
"description": "Converts module differences in source files between ES and CommonJS.",
55
"type": "module",
66
"main": "dist/module.js",
@@ -75,8 +75,9 @@
7575
"dependencies": {
7676
"@babel/parser": "^7.27.0",
7777
"@babel/traverse": "^7.27.0",
78-
"@knighted/specifier": "^2.0.0-rc.4",
79-
"magic-string": "^0.30.10"
78+
"@knighted/specifier": "^2.0.1",
79+
"magic-string": "^0.30.10",
80+
"node-module-type": "^1.0.2"
8081
},
8182
"prettier": {
8283
"arrowParens": "avoid",

src/format.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import MagicString from 'magic-string'
22
import _traverse from '@babel/traverse'
3+
import { moduleType } from 'node-module-type'
34

45
import type { ParseResult } from '@babel/parser'
56
import type { File } from '@babel/types'
@@ -9,7 +10,15 @@ import { identifier } from './formatters/identifier.js'
910
import { metaProperty } from './formatters/metaProperty.js'
1011
import { memberExpression } from './formatters/memberExpression.js'
1112

12-
const traverse = _traverse.default
13+
/**
14+
* Runtime hack to prevent issues with babel's default interop while dual building with tsc.
15+
* @see https://github.com/babel/babel/discussions/13093#discussioncomment-12705927
16+
* Temporary fix until I switch to oxc-parser.
17+
*/
18+
const type = moduleType()
19+
const traverse = (
20+
typeof _traverse === 'function' || type === 'commonjs' ? _traverse : _traverse.default
21+
) as typeof _traverse.default
1322

1423
/**
1524
* Note, there is no specific conversion for `import.meta.main` as it does not exist.

0 commit comments

Comments
 (0)