From df32b0de30e026dfb31f3141fc7f8cc86a0e29ff Mon Sep 17 00:00:00 2001 From: Davide <43080019+edivados@users.noreply.github.com> Date: Fri, 31 Jan 2025 15:40:21 +0100 Subject: [PATCH] fix: add await to middleware response handling (#1588) * fix middleware wrapper * revert wrapResponseMiddleware to use sendWebResponse * Create heavy-panthers-confess.md --------- Co-authored-by: Ryan Carniato Co-authored-by: Atila Fassina Co-authored-by: Katja Lutz --- .changeset/heavy-panthers-confess.md | 5 +++++ packages/start/src/middleware/index.tsx | 12 ++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 .changeset/heavy-panthers-confess.md diff --git a/.changeset/heavy-panthers-confess.md b/.changeset/heavy-panthers-confess.md new file mode 100644 index 000000000..6d739c3d0 --- /dev/null +++ b/.changeset/heavy-panthers-confess.md @@ -0,0 +1,5 @@ +--- +"@solidjs/start": patch +--- + +Await internal `sendWebResponse` calls for middlewares that return responses. diff --git a/packages/start/src/middleware/index.tsx b/packages/start/src/middleware/index.tsx index 6e8f83774..e03ac3aba 100644 --- a/packages/start/src/middleware/index.tsx +++ b/packages/start/src/middleware/index.tsx @@ -27,10 +27,8 @@ function wrapRequestMiddleware(onRequest: RequestMiddleware) { return async (h3Event: HTTPEvent) => { const fetchEvent = getFetchEvent(h3Event); const response = await onRequest(fetchEvent); - if (!response) { - return; - } else { - sendWebResponse(h3Event, response); + if (response) { + await sendWebResponse(h3Event, response); } }; } @@ -39,10 +37,8 @@ function wrapResponseMiddleware(onBeforeResponse: ResponseMiddleware) { return async (h3Event: HTTPEvent, response: ResponseMiddlewareResponseParam) => { const fetchEvent = getFetchEvent(h3Event); const mwResponse = await onBeforeResponse(fetchEvent, response); - if (!mwResponse) { - return; - } else { - sendWebResponse(h3Event, mwResponse); + if (mwResponse) { + await sendWebResponse(h3Event, mwResponse); } }; }