Skip to content

Commit 8c52014

Browse files
mohd-akramtimfish
andauthored
fix: importing JSON files (#182)
Co-authored-by: Tim Fish <[email protected]>
1 parent b58092e commit 8c52014

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

lib/get-exports.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ async function getCjsExports (url, context, parentLoad, source) {
4949
// Resolve the re-exported module relative to the current module.
5050
const newUrl = pathToFileURL(require.resolve(re, { paths: [dirname(fileURLToPath(url))] })).href
5151

52-
if (newUrl.endsWith('.node')) {
52+
if (newUrl.endsWith('.node') || newUrl.endsWith('.json')) {
5353
return
5454
}
5555

test/fixtures/re-export-cjs-json.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('./something.json')

test/hook/re-export-cjs.mjs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import Hook from '../../index.js'
22
import foo from '../fixtures/re-export-cjs-built-in.js'
33
import foo2 from '../fixtures/re-export-cjs.js'
4-
import { strictEqual } from 'assert'
4+
import foo3 from '../fixtures/re-export-cjs-json.js'
5+
import { deepStrictEqual, strictEqual } from 'assert'
56

67
Hook((exports, name) => {
78
if (name.endsWith('fixtures/re-export-cjs-built-in.js')) {
@@ -13,7 +14,13 @@ Hook((exports, name) => {
1314
strictEqual(exports.default, 'bar')
1415
exports.default = '2'
1516
}
17+
18+
if (name.endsWith('fixtures/re-export-cjs-json.js')) {
19+
deepStrictEqual(exports.default, { data: 'dog' })
20+
exports.default = '3'
21+
}
1622
})
1723

1824
strictEqual(foo, '1')
1925
strictEqual(foo2, '2')
26+
strictEqual(foo3, '3')

0 commit comments

Comments
 (0)