From 2fa4f62632ea9c9df653acdc0ba0aa08b95683f7 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 18 Feb 2026 12:54:37 +0000 Subject: [PATCH] feat: include query params in server-to-app request mapping --- src/server.js | 2 ++ test/server.test.js | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server.js b/src/server.js index 9c597b8..0af901a 100644 --- a/src/server.js +++ b/src/server.js @@ -30,9 +30,11 @@ function normalizeHeaders(rawHeaders) { function mapToAppRequest({ req, rawBody }) { const url = new URL(req.url, "http://localhost"); + const query = Object.fromEntries(url.searchParams.entries()); return { method: req.method || "GET", path: url.pathname, + query, headers: normalizeHeaders(req.headers), rawBody, }; diff --git a/test/server.test.js b/test/server.test.js index 89ebff2..1d616cf 100644 --- a/test/server.test.js +++ b/test/server.test.js @@ -18,7 +18,7 @@ test("mapToAppRequest extracts method/path/headers/body correctly", () => { const request = mapToAppRequest({ req: { method: "POST", - url: "/api/webhooks/x?debug=1", + url: "/api/webhooks/x?debug=1&returnTo=%2Faudio%2F1", headers: { "X-Signature": "sha256=abc" }, }, rawBody: "{\"ok\":true}", @@ -26,6 +26,8 @@ test("mapToAppRequest extracts method/path/headers/body correctly", () => { assert.equal(request.method, "POST"); assert.equal(request.path, "/api/webhooks/x"); + assert.equal(request.query.debug, "1"); + assert.equal(request.query.returnTo, "/audio/1"); assert.equal(request.headers["x-signature"], "sha256=abc"); assert.equal(request.rawBody, "{\"ok\":true}"); });