From 8e56d5bd6dfcff958c8e05aefa62c3b12a18d62d Mon Sep 17 00:00:00 2001 From: Julien Oculi Date: Tue, 9 Jul 2024 11:15:48 +0200 Subject: [PATCH] refactor(backend): :recycle: extract sw middleware to redure main middleware complexity --- routes/_middleware.ts | 7 ++----- src/serviceworker/middleware.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 src/serviceworker/middleware.ts diff --git a/routes/_middleware.ts b/routes/_middleware.ts index f3af97e..2f117af 100644 --- a/routes/_middleware.ts +++ b/routes/_middleware.ts @@ -1,6 +1,7 @@ import { FreshContext } from '$fresh/server.ts' import { useCsp } from ':src/csp/middleware.ts' import { useSecurityHeaders } from ':src/security_headers/middleware.ts' +import { useServiceworker } from ':src/serviceworker/middleware.ts' import { useSession } from ':src/session/middleware.ts' import { SessionStore } from ':src/session/mod.ts' @@ -15,11 +16,7 @@ export async function handler(request: Request, ctx: FreshContext) { useSecurityHeaders(request, response, ctx) await useCsp(request, response, ctx) useSession(request, response, ctx) - - // Allow service worker to serve root scope - if (ctx.url.pathname.endsWith('island-startserviceworker.js')) { - response.headers.set('Service-Worker-Allowed', '/') - } + useServiceworker(request, response, ctx) return response } diff --git a/src/serviceworker/middleware.ts b/src/serviceworker/middleware.ts new file mode 100644 index 0000000..1a62130 --- /dev/null +++ b/src/serviceworker/middleware.ts @@ -0,0 +1,12 @@ +import { FreshContext } from '$fresh/server.ts' + +export function useServiceworker( + _request: Request, + response: Response, + ctx: FreshContext, +) { + // Allow service worker to serve root scope + if (ctx.url.pathname.endsWith('island-startserviceworker.js')) { + response.headers.set('Service-Worker-Allowed', '/') + } +}