Skip to content

Commit 728eee6

Browse files
Merge pull request #239 from boxine/fix-ts
Fix require hooks not working anymore
2 parents 617ca7f + b019992 commit 728eee6

File tree

6 files changed

+134
-2
lines changed

6 files changed

+134
-2
lines changed

package-lock.json

Lines changed: 84 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
"prettier": "^2.0.5",
121121
"puppeteer": "^5.2.1",
122122
"rimraf": "^3.0.2",
123+
"ts-node": "^9.0.0",
123124
"typedoc": "^0.17.4",
124125
"typescript": "^3.8.3"
125126
},

src/loader.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ async function importFile(file) {
3232
canUseImport = await supportsImports();
3333
}
3434

35-
if (canUseImport) {
35+
// Only use import() for JavaScript files. Patching module
36+
// resolution of import() calls is still very experimental, so
37+
// tools like `ts-node´ need to keep using `require` calls.
38+
if (/\.[cm]?js$/.test(file) && canUseImport) {
3639
// Use dynamic import statement to be able to load both native esm
3740
// and commonjs modules.
3841

tests/selftest_ts_node.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const assert = require('assert').strict;
2+
const path = require('path');
3+
const child_process = require('child_process');
4+
5+
async function run() {
6+
const script = path.join(__dirname, '..', 'bin', 'cli.js');
7+
const {stderr} = await new Promise((resolve, reject) => {
8+
child_process.execFile(
9+
'node',
10+
['-r', 'ts-node/register', script, '--exit-zero', '--no-screenshots', '--tests-glob', 'tests/ts_node/*.ts'],
11+
(err, stdout, stderr) => {
12+
if (err) reject(err);
13+
else resolve({stdout, stderr});
14+
}
15+
);
16+
});
17+
18+
assert(/1 tests passed/.test(stderr), 'Did run any tests');
19+
}
20+
21+
module.exports = {
22+
description: 'Support node require hooks',
23+
run,
24+
};

tests/ts_node/run

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/usr/bin/env node
2+
3+
const pentf = require('../../src/index.js');
4+
5+
pentf.main({
6+
rootDir: __dirname,
7+
testsDir: __dirname,
8+
});

tests/ts_node/test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import {newPage, waitForText} from "../../src/browser_utils";
2+
3+
async function run(config) {
4+
const page = await newPage(config);
5+
await page.setContent('<h1>ts-node</h1>');
6+
7+
await waitForText(page, 'ts-node');
8+
}
9+
10+
module.exports = {
11+
description: 'Pass a simple TypeScript test',
12+
run,
13+
};

0 commit comments

Comments
 (0)