Skip to content

Commit f748e19

Browse files
committedJun 29, 2024
fix(cjs): tsx.require to support core modules
1 parent c67e3ba commit f748e19

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed
 

‎src/cjs/api/register.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ const resolveContext = (
1515
throw new Error('The current file path (__filename or import.meta.url) must be provided in the second argument of tsx.require()');
1616
}
1717

18+
// If id is not a relative path, it doesn't need to be resolved
19+
if (!id.startsWith('.')) {
20+
return id;
21+
}
22+
1823
if (
1924
(typeof fromFile === 'string' && fromFile.startsWith('file://'))
2025
|| fromFile instanceof URL
@@ -86,7 +91,7 @@ export const register: Register = (
8691
const [request, query] = resolvedId.split('?');
8792

8893
const parameters = new URLSearchParams(query);
89-
if (options.namespace) {
94+
if (options.namespace && !request.startsWith('node:')) {
9095
parameters.set('namespace', options.namespace);
9196
}
9297

@@ -100,7 +105,7 @@ export const register: Register = (
100105
const [request, query] = resolvedId.split('?');
101106

102107
const parameters = new URLSearchParams(query);
103-
if (options.namespace) {
108+
if (options.namespace && !request.startsWith('node:')) {
104109
parameters.set('namespace', options.namespace);
105110
}
106111

‎tests/specs/api.ts

+4
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,10 @@ export default testSuite(({ describe }, node: NodeApis) => {
230230
const loaded = tsx.require('./file', __filename);
231231
console.log(loaded.message);
232232
233+
// Can require core modules
234+
tsx.require('node:path', __filename);
235+
tsx.require('fs', __filename);
236+
233237
// Remove from cache
234238
const loadedPath = tsx.require.resolve('./file', __filename);
235239
console.log(loadedPath.split(path.sep).pop());

0 commit comments

Comments
 (0)
Please sign in to comment.