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', '/') + } +}