let bearerToken = null self.addEventListener('message', (e) => { if (e.data?.type === 'SET_TOKEN') { bearerToken = e.data.token } }) self.addEventListener('fetch', (e) => { const url = new URL(e.request.url) // Only intercept /api/ requests to the same origin if (url.origin !== self.location.origin || !url.pathname.startsWith('/api/')) return if (!bearerToken) return const authedRequest = new Request(e.request, { headers: new Headers(e.request.headers), }) authedRequest.headers.set('Authorization', `Bearer ${bearerToken}`) e.respondWith(fetch(authedRequest)) }) self.addEventListener('install', () => self.skipWaiting()) self.addEventListener('activate', (e) => e.waitUntil(self.clients.claim()))