esm: ensure cwd-relative imports for module --eval
PR-URL: https://github.com/nodejs/node/pull/28389 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
parent
a173173398
commit
4565292a77
@ -9,7 +9,10 @@ const {
|
|||||||
ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK,
|
ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK,
|
||||||
ERR_UNKNOWN_MODULE_FORMAT
|
ERR_UNKNOWN_MODULE_FORMAT
|
||||||
} = require('internal/errors').codes;
|
} = require('internal/errors').codes;
|
||||||
const { URL } = require('url');
|
const {
|
||||||
|
URL,
|
||||||
|
pathToFileURL
|
||||||
|
} = require('url');
|
||||||
const { validateString } = require('internal/validators');
|
const { validateString } = require('internal/validators');
|
||||||
const ModuleMap = require('internal/modules/esm/module_map');
|
const ModuleMap = require('internal/modules/esm/module_map');
|
||||||
const ModuleJob = require('internal/modules/esm/module_job');
|
const ModuleJob = require('internal/modules/esm/module_job');
|
||||||
@ -107,7 +110,10 @@ class Loader {
|
|||||||
return { url, format };
|
return { url, format };
|
||||||
}
|
}
|
||||||
|
|
||||||
async eval(source, url = `eval:${++this.evalIndex}`) {
|
async eval(
|
||||||
|
source,
|
||||||
|
url = pathToFileURL(`${process.cwd()}/[eval${++this.evalIndex}]`).href
|
||||||
|
) {
|
||||||
const evalInstance = async (url) => {
|
const evalInstance = async (url) => {
|
||||||
return {
|
return {
|
||||||
module: new ModuleWrap(source, url),
|
module: new ModuleWrap(source, url),
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Error: test
|
Error: test
|
||||||
at one (eval:1:2:9)
|
at one (file:*/[eval1]:2:9)
|
||||||
at two (eval:1:15:9)
|
at two (file:*/[eval1]:15:9)
|
||||||
at processTicksAndRejections (internal/process/task_queues.js:*:*)
|
at processTicksAndRejections (internal/process/task_queues.js:*:*)
|
||||||
at async three (eval:1:18:3)
|
at async three (file:*/[eval1]:18:3)
|
||||||
at async four (eval:1:22:3)
|
at async four (file:*/[eval1]:22:3)
|
||||||
at async main (eval:1:28:5)
|
at async main (file:*/[eval1]:28:5)
|
||||||
|
@ -274,3 +274,12 @@ child.exec(
|
|||||||
assert.ifError(err);
|
assert.ifError(err);
|
||||||
assert.strictEqual(stdout, 'object\n');
|
assert.strictEqual(stdout, 'object\n');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// Assert that packages can be imported cwd-relative with --eval
|
||||||
|
child.exec(
|
||||||
|
`${nodejs} ${execOptions} ` +
|
||||||
|
'--eval "import \'./test/fixtures/es-modules/mjs-file.mjs\'"',
|
||||||
|
common.mustCall((err, stdout) => {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.strictEqual(stdout, '.mjs file\n');
|
||||||
|
}));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user