Skip to content

Commit b0eb980

Browse files
committed
rather than throw our own error, throw the error from node's ESM loader
1 parent 203325b commit b0eb980

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

src/esm.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,7 @@ export function createEsmHooks(tsNodeService: Service) {
181181
rememberResolvedViaCommonjsFallback.add(resolution);
182182
return { url: resolution, format: 'commonjs' };
183183
} catch (commonjsResolverError) {
184-
throw new Error(
185-
`Resolution via the ECMAScript loader failed.\n` +
186-
`ts-node guessed that this resolution was likely the entrypoint script, so attempted a fallback to the CommonJS resolver.\n` +
187-
`CommonJS resolver threw:\n` +
188-
`${
189-
(commonjsResolverError as Error)?.message ??
190-
commonjsResolverError
191-
}`
192-
);
184+
throw esmResolverError;
193185
}
194186
}
195187
}

src/test/esm-loader.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,13 @@ test.suite('esm', (test) => {
292292
expect(err).toBe(null);
293293
expect(stdout.trim()).toBe('Hello world!');
294294
});
295+
test('fails as expected when entrypoint does not exist at all', async (t) => {
296+
const { err, stderr } = await exec(
297+
`${CMD_ESM_LOADER_WITHOUT_PROJECT} ./esm-loader-entrypoint-cjs-fallback/does-not-exist`
298+
);
299+
expect(err).toBeDefined();
300+
expect(stderr).toContain(`Cannot find module `);
301+
});
295302
}
296303
);
297304
});

0 commit comments

Comments
 (0)