From 2f4a026d1aff5f21ab76a81c065bf919826f50da Mon Sep 17 00:00:00 2001 From: Bradley Farias Date: Thu, 24 Feb 2022 12:23:02 -0600 Subject: [PATCH 1/2] esm: fix relative imports for https --- lib/internal/modules/esm/resolve.js | 2 +- test/es-module/test-http-imports.mjs | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js index cc05536af930a4..25ec44215d5689 100644 --- a/lib/internal/modules/esm/resolve.js +++ b/lib/internal/modules/esm/resolve.js @@ -1125,7 +1125,7 @@ async function defaultResolve(specifier, context = {}, defaultResolveUnused) { ) ) ) { - return { url: specifier }; + return { url: parsed.href }; } } catch { // Ignore exception diff --git a/test/es-module/test-http-imports.mjs b/test/es-module/test-http-imports.mjs index c09ee4c54bc2d3..13271a7d69b9db 100644 --- a/test/es-module/test-http-imports.mjs +++ b/test/es-module/test-http-imports.mjs @@ -61,6 +61,10 @@ for (const { protocol, createServer } of [ const host = new URL(base); host.protocol = protocol; host.hostname = hostname; + // /not-found is a 404 + // ?redirect causes a redirect, no body. JSON.parse({status:number,location:string}) + // ?mime sets the content-type, string + // ?body sets the body, string const server = createServer(function(_req, res) { const url = new URL(_req.url, host); const redirect = url.searchParams.get('redirect'); @@ -133,6 +137,15 @@ for (const { protocol, createServer } of [ assert.strict.equal(depsNS.data, 1); assert.strict.equal(depsNS.http, ns); + const relativeDeps = new URL(url.href); + relativeDeps.searchParams.set('body', ` + import * as http from "./"; + export {http}; + `); + const relativeDepsNS = await import(relativeDeps.href); + assert.strict.deepStrictEqual(Object.keys(relativeDepsNS), ['http']); + assert.strict.equal(relativeDepsNS.http, ns); + const fileDep = new URL(url.href); const { href } = pathToFileURL(path('/es-modules/message.mjs')); fileDep.searchParams.set('body', ` From 24b9ae815e5b230427381644180eea8800c64e09 Mon Sep 17 00:00:00 2001 From: Bradley Farias Date: Thu, 24 Feb 2022 13:22:02 -0600 Subject: [PATCH 2/2] Update test/es-module/test-http-imports.mjs Co-authored-by: Mohammed Keyvanzadeh --- test/es-module/test-http-imports.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/test/es-module/test-http-imports.mjs b/test/es-module/test-http-imports.mjs index 13271a7d69b9db..766645f9125384 100644 --- a/test/es-module/test-http-imports.mjs +++ b/test/es-module/test-http-imports.mjs @@ -145,7 +145,6 @@ for (const { protocol, createServer } of [ const relativeDepsNS = await import(relativeDeps.href); assert.strict.deepStrictEqual(Object.keys(relativeDepsNS), ['http']); assert.strict.equal(relativeDepsNS.http, ns); - const fileDep = new URL(url.href); const { href } = pathToFileURL(path('/es-modules/message.mjs')); fileDep.searchParams.set('body', `