From f31078867f3183bd9af3e21d27a2cb98e6c0dce9 Mon Sep 17 00:00:00 2001 From: magnus Date: Sun, 18 May 2025 19:56:15 +0200 Subject: [PATCH 1/3] fix in node converter to remove leading forward slashes --- packages/open-next/src/overrides/converters/node.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/open-next/src/overrides/converters/node.ts b/packages/open-next/src/overrides/converters/node.ts index 3eed47f2..2a0fe16d 100644 --- a/packages/open-next/src/overrides/converters/node.ts +++ b/packages/open-next/src/overrides/converters/node.ts @@ -25,7 +25,10 @@ const converter: Converter = { ]) .filter(([key]) => key), ); - const url = new URL(req.url!, `http://${extractHostFromHeaders(headers)}`); + const url = new URL( + req.url!.replace(/^\/\/+/, "/"), + `http://${extractHostFromHeaders(headers)}`, + ); const query = getQueryFromSearchParams(url.searchParams); return { type: "core", From 4aa5f7e377ecc1f1aaa3f9f15dcf2efdb3a94c41 Mon Sep 17 00:00:00 2001 From: magnus Date: Sun, 18 May 2025 20:14:09 +0200 Subject: [PATCH 2/3] changeset --- .changeset/stale-rivers-invite.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/stale-rivers-invite.md diff --git a/.changeset/stale-rivers-invite.md b/.changeset/stale-rivers-invite.md new file mode 100644 index 00000000..ebba1d96 --- /dev/null +++ b/.changeset/stale-rivers-invite.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/aws": patch +--- + +fix: remove leading forward slashes from url in node converter From 6daabe5f9b63df9cd1fe3e859f55c03557dcf6fe Mon Sep 17 00:00:00 2001 From: magnus Date: Sun, 18 May 2025 22:42:29 +0200 Subject: [PATCH 3/3] refactor --- packages/open-next/src/overrides/converters/node.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/open-next/src/overrides/converters/node.ts b/packages/open-next/src/overrides/converters/node.ts index 2a0fe16d..6271a5a9 100644 --- a/packages/open-next/src/overrides/converters/node.ts +++ b/packages/open-next/src/overrides/converters/node.ts @@ -6,7 +6,7 @@ import type { Converter } from "types/overrides"; import { extractHostFromHeaders, getQueryFromSearchParams } from "./utils.js"; const converter: Converter = { - convertFrom: async (req: IncomingMessage) => { + convertFrom: async (req: IncomingMessage & { protocol?: string }) => { const body = await new Promise((resolve) => { const chunks: Uint8Array[] = []; req.on("data", (chunk) => { @@ -25,9 +25,9 @@ const converter: Converter = { ]) .filter(([key]) => key), ); + // https://nodejs.org/api/http.html#messageurl const url = new URL( - req.url!.replace(/^\/\/+/, "/"), - `http://${extractHostFromHeaders(headers)}`, + `${req.protocol ? req.protocol : "http"}://${extractHostFromHeaders(headers)}${req.url}`, ); const query = getQueryFromSearchParams(url.searchParams); return {