Skip to content
This repository was archived by the owner on Oct 18, 2023. It is now read-only.

Commit cb995c1

Browse files
fix: handle missing export map entry in ts resolution (#34)
1 parent 5b374fb commit cb995c1

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

src/loaders.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,11 @@ export const resolve: resolve = async function (
138138
try {
139139
return await resolve(tsPath, context, defaultResolve, true);
140140
} catch (error) {
141-
if ((error as any).code !== 'ERR_MODULE_NOT_FOUND') {
141+
const { code } = error as any;
142+
if (
143+
code !== 'ERR_MODULE_NOT_FOUND'
144+
&& code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED'
145+
) {
142146
throw error;
143147
}
144148
}
@@ -150,7 +154,7 @@ export const resolve: resolve = async function (
150154
resolved = await defaultResolve(specifier, context, defaultResolve);
151155
} catch (error) {
152156
if (
153-
(error instanceof Error)
157+
error instanceof Error
154158
&& !recursiveCall
155159
) {
156160
if ((error as any).code === 'ERR_UNSUPPORTED_DIR_IMPORT') {

tests/fixtures/package-module/node_modules/package-exports/index.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/node_modules/package-exports/package.json

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/specs/typescript/dependencies.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,16 @@ export default testSuite(async ({ describe }, node: NodeApis) => {
2121
expect(nodeProcess.stdout).toBe(output);
2222
});
2323
});
24+
25+
describe('Export map', ({ test }) => {
26+
const output = '{"default":"default export","namedExport":"named export"}';
27+
28+
test('Import', async () => {
29+
const nodeProcess = await node.import('package-exports/index.js', {
30+
typescript: true,
31+
});
32+
expect(nodeProcess.stdout).toBe(output);
33+
});
34+
});
2435
});
2536
});

0 commit comments

Comments
 (0)