async function readStream(stream) { const reader = stream.getReader(); let result = ''; while (true) { const { done, value } = await reader.read(); if (done) { break; } result += new TextDecoder().decode(value); } return result; } self.addEventListener('fetch', async (event) => { const url = new URL(event.request.url); // Check if the request is for the specific path if (url.pathname.startsWith('/api/s1/sw/js/')) { console.log('event', event); console.log('url', url, event.request.method, 'mode', event.request.mode, event.request.destination); // const body = event.request.body; // const method = event.request.method; // const bodyText = await readStream(body); // console.log('body', bodyText); console.log('event.request', event.request.destination); event.respondWith( new Response('export const a = 1', { status: 200, headers: { 'Content-Type': 'application/javascript', }, }), ); return; } if (url.pathname.startsWith('/api/s1/sw/js/')) { event.respondWith( fetch(event.request).then((response) => { // Clone the response to modify headers const newHeaders = new Headers(response.headers); newHeaders.set('Content-Type', 'application/javascript'); // Return a new response with the modified headers return new Response(response.body, { status: response.status, statusText: response.statusText, headers: newHeaders, }); }), ); } });