summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Bedford <guybedford@gmail.com>2019-09-26 23:20:09 -0400
committerRich Trott <rtrott@gmail.com>2019-09-29 20:12:24 -0700
commitc42ab995c16a134350078d70e32bc278cd74bc1f (patch)
tree6672f3ca23f9fca60beebd1660b2935b1fe8f15c
parent1a3bf4f935f097cd2072fc383518fac873322a68 (diff)
downloadandroid-node-v8-c42ab995c16a134350078d70e32bc278cd74bc1f.tar.gz
android-node-v8-c42ab995c16a134350078d70e32bc278cd74bc1f.tar.bz2
android-node-v8-c42ab995c16a134350078d70e32bc278cd74bc1f.zip
module: pass full URL to loader for top-level load
PR-URL: https://github.com/nodejs/node/pull/29736 Reviewed-By: Bradley Farias <bradley.meck@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com>
-rw-r--r--lib/internal/modules/cjs/loader.js2
-rw-r--r--test/fixtures/es-module-loaders/example-loader.mjs4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
index 341163ef8c..7d9b4a9879 100644
--- a/lib/internal/modules/cjs/loader.js
+++ b/lib/internal/modules/cjs/loader.js
@@ -1002,7 +1002,7 @@ Module.runMain = function() {
// Load the main module--the command line argument.
if (experimentalModules) {
asyncESM.loaderPromise.then((loader) => {
- return loader.import(pathToFileURL(process.argv[1]).pathname);
+ return loader.import(pathToFileURL(process.argv[1]).href);
})
.catch((e) => {
internalBinding('errors').triggerUncaughtException(
diff --git a/test/fixtures/es-module-loaders/example-loader.mjs b/test/fixtures/es-module-loaders/example-loader.mjs
index d8e0ddcba3..ed5b0d9be5 100644
--- a/test/fixtures/es-module-loaders/example-loader.mjs
+++ b/test/fixtures/es-module-loaders/example-loader.mjs
@@ -15,11 +15,11 @@ export function resolve(specifier, parentModuleURL = baseURL /*, defaultResolve
format: 'builtin'
};
}
- if (/^\.{0,2}[/]/.test(specifier) !== true && !specifier.startsWith('file:')) {
+ if (/^\.{1,2}[/]/.test(specifier) !== true && !specifier.startsWith('file:')) {
// For node_modules support:
// return defaultResolve(specifier, parentModuleURL);
throw new Error(
- `imports must begin with '/', './', or '../'; '${specifier}' does not`);
+ `imports must be URLs or begin with './', or '../'; '${specifier}' does not`);
}
const resolved = new url.URL(specifier, parentModuleURL);
const ext = path.extname(resolved.pathname);