From 595b9518d519ba92268c168ce07f8db4b88e83f5 Mon Sep 17 00:00:00 2001 From: Julien Oculi Date: Wed, 14 May 2025 09:30:00 +0200 Subject: [PATCH] fix(routes/api): handle non websocket connection --- routes/api/serviceworker/is-online.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/routes/api/serviceworker/is-online.tsx b/routes/api/serviceworker/is-online.tsx index 54c21cf..d426e06 100644 --- a/routes/api/serviceworker/is-online.tsx +++ b/routes/api/serviceworker/is-online.tsx @@ -2,6 +2,15 @@ import { define } from '../../../utils.ts' export const handler = define.handlers({ GET(ctx) { + if ( + ctx.req.headers.get('connection') !== 'Upgrade' && + ctx.req.headers.get('upgrade') !== 'websocket' + ) { + return new Response('Request is not a websocket upgrade.', { + status: 400, + }) + } + const { response } = Deno.upgradeWebSocket(ctx.req) ctx.state.skipMiddlewares = true return response