service-worker.sjs (923B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const body = ` 7 dump("Starting\\n"); 8 9 self.addEventListener("activate", event => { 10 dump("Activate\\n"); 11 event.waitUntil(self.clients.claim()); 12 }); 13 14 self.addEventListener("fetch", event => { 15 const url = event.request.url; 16 dump("Fetch: " + url + "\\n"); 17 if (url.includes("whatever")) { 18 const response = new Response("Service worker response STATUS", { statusText: "OK" }); 19 event.respondWith(response); 20 } 21 }); 22 23 self.addEventListener("install", event => { 24 dump("Install\\n"); 25 }); 26 `; 27 28 function handleRequest(request, response) { 29 response.setHeader("Content-Type", "text/javascript"); 30 31 const arr = /setStatus=(.*)/.exec(request.queryString); 32 if (arr) { 33 setState("status", arr[1]); 34 } 35 36 const status = getState("status"); 37 response.write(body.replace("STATUS", status)); 38 }