Skip to content

Commit 44ed37f

Browse files
committedSep 12, 2024
fix(cjs): resolve ts extensions from js when namespaced
1 parent ac77527 commit 44ed37f

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed
 

‎src/cjs/api/module-resolve-filename/index.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,13 @@ export const createResolveFilename = (
7878

7979
nextResolveSimple = createTsExtensionResolver(
8080
nextResolveSimple,
81-
Boolean(parent?.filename && tsExtensionsPattern.test(parent.filename)),
81+
Boolean(
82+
// If register.namespace is used (e.g. tsx.require())
83+
namespace
84+
85+
// If parent is a TS file
86+
|| (parent?.filename && tsExtensionsPattern.test(parent.filename)),
87+
),
8288
);
8389

8490
nextResolveSimple = createImplicitResolver(nextResolveSimple);

‎tests/specs/api.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import path from 'node:path';
22
import { execaNode } from 'execa';
33
import { testSuite, expect } from 'manten';
44
import { createFixture } from 'fs-fixture';
5+
import { outdent } from 'outdent';
56
import {
67
tsxCjsPath,
78
tsxCjsApiPath,
@@ -11,7 +12,6 @@ import {
1112
type NodeApis,
1213
} from '../utils/tsx.js';
1314
import { createPackageJson, createTsconfig, expectErrors } from '../fixtures.js';
14-
import { outdent } from 'outdent';
1515

1616
const tsFiles = {
1717
'file.ts': outdent`
@@ -266,7 +266,8 @@ export default testSuite(({ describe }, node: NodeApis) => {
266266
...tsFiles,
267267
});
268268

269-
const { stdout } = await execaNode(fixture.getPath('require.cjs'), [], {
269+
const { stdout } = await execaNode('./require.cjs', [], {
270+
cwd: fixture.path,
270271
nodePath: node.path,
271272
nodeOptions: [],
272273
});

0 commit comments

Comments
 (0)
Please sign in to comment.