Skip to content

Commit 8db4e19

Browse files
committed
Allow cli to handle ES Modules
1 parent d63a2e5 commit 8db4e19

2 files changed

Lines changed: 3359 additions & 195 deletions

File tree

cli.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
const fs = require('fs')
55
const path = require('path')
6+
const { pathToFileURL } = require('url')
67
const cwd = process.cwd()
78
const exts = ['.js', '.mjs']
89
const args = process.argv.slice(2)
@@ -86,14 +87,25 @@ const main = async () => {
8687
if (seen[f]) return
8788
seen[f] = true
8889

89-
try {
90-
test.setup(Object.assign({}, setup, { fileName: path.basename(f) }))
91-
require(f)
92-
} catch (ex) {
90+
const logFailedImport = (ex) => {
9391
console.error(`Unable to require test file ${f}:`)
9492
console.error(ex)
9593
process.exit(1)
9694
}
95+
96+
try {
97+
test.setup(Object.assign({}, setup, { fileName: path.basename(f) }))
98+
99+
try {
100+
require(f)
101+
} catch (ex) {
102+
/* eslint-disable no-unused-expressions */
103+
import(pathToFileURL(f))
104+
/* eslint-enable no-unused-expressions */
105+
}
106+
} catch (ex) {
107+
logFailedImport(ex)
108+
}
97109
})
98110
}
99111

0 commit comments

Comments
 (0)