mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
esm: throw ERR_REQUIRE_ESM
instead of ERR_INTERNAL_ASSERTION
PR-URL: https://github.com/nodejs/node/pull/54868 Fixes: https://github.com/nodejs/node/issues/54773 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
cc780ddf1e
commit
53cdffea20
@ -326,8 +326,6 @@ class ModuleLoader {
|
||||
* @returns {ModuleJobBase}
|
||||
*/
|
||||
getModuleJobForRequire(specifier, parentURL, importAttributes) {
|
||||
assert(getOptionValue('--experimental-require-module'));
|
||||
|
||||
const parsed = URLParse(specifier);
|
||||
if (parsed != null) {
|
||||
const protocol = parsed.protocol;
|
||||
@ -346,6 +344,9 @@ class ModuleLoader {
|
||||
}
|
||||
|
||||
const { url, format } = resolveResult;
|
||||
if (!getOptionValue('--experimental-require-module')) {
|
||||
throw new ERR_REQUIRE_ESM(url, true);
|
||||
}
|
||||
const resolvedImportAttributes = resolveResult.importAttributes ?? importAttributes;
|
||||
let job = this.loadCache.get(url, resolvedImportAttributes.type);
|
||||
if (job !== undefined) {
|
||||
|
@ -28,6 +28,18 @@ test('execute a TypeScript file with imports', async () => {
|
||||
strictEqual(result.code, 0);
|
||||
});
|
||||
|
||||
test('execute a TypeScript file with imports', async () => {
|
||||
const result = await spawnPromisified(process.execPath, [
|
||||
'--no-warnings',
|
||||
'--eval',
|
||||
`assert.throws(() => require(${JSON.stringify(fixtures.path('typescript/ts/test-import-fs.ts'))}), {code: 'ERR_REQUIRE_ESM'})`,
|
||||
]);
|
||||
|
||||
strictEqual(result.stderr, '');
|
||||
strictEqual(result.stdout, '');
|
||||
strictEqual(result.code, 0);
|
||||
});
|
||||
|
||||
test('execute a TypeScript file with imports with default-type module', async () => {
|
||||
const result = await spawnPromisified(process.execPath, [
|
||||
'--experimental-strip-types',
|
||||
|
Loading…
Reference in New Issue
Block a user