1const CACHE_NAME = "festivals-bretagne-v6"; 2const APP_SHELL = ["/", "/manifest.webmanifest", "/icon-192.png", "/icon-512.png"]; 3 4self.addEventListener("install", (event) => { 5 event.waitUntil( 6 caches.open(CACHE_NAME).then((cache) => cache.addAll(APP_SHELL)), 7 ); 8 self.skipWaiting(); 9}); 10 11self.addEventListener("activate", (event) => { 12 event.waitUntil( 13 caches 14 .keys() 15 .then((keys) => 16 Promise.all( 17 keys 18 .filter((key) => key !== CACHE_NAME) 19 .map((key) => caches.delete(key)), 20 ), 21 ), 22 ); 23 self.clients.claim(); 24}); 25 26self.addEventListener("fetch", (event) => { 27 if (event.request.method !== "GET") return; 28 29 if (event.request.mode === "navigate") { 30 event.respondWith( 31 fetch(event.request) 32 .then((response) => { 33 const copy = response.clone(); 34 caches.open(CACHE_NAME).then((cache) => cache.put("/", copy)); 35 return response; 36 }) 37 .catch(() => caches.match("/")), 38 ); 39 } 40});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.