Spaces:
Running
Running
File size: 1,494 Bytes
ea32c8b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | const CACHE_NAME = "annotator-yolo-v5";
const PRECACHE = [
"./",
"./index.html",
"./manifest.json",
"./sw.js",
"./icon.svg",
"./icon-192.png",
"./icon-512.png",
"./README.md"
];
self.addEventListener("install", (event) => {
self.skipWaiting();
event.waitUntil(caches.open(CACHE_NAME).then((cache) => cache.addAll(PRECACHE)));
});
self.addEventListener("activate", (event) => {
event.waitUntil((async () => {
const keys = await caches.keys();
await Promise.all(keys.filter((key) => key !== CACHE_NAME).map((key) => caches.delete(key)));
await self.clients.claim();
})());
});
self.addEventListener("fetch", (event) => {
const request = event.request;
if (request.method !== "GET") return;
const url = new URL(request.url);
if (request.mode === "navigate") {
event.respondWith((async () => {
try {
const fresh = await fetch(request);
const cache = await caches.open(CACHE_NAME);
cache.put("./index.html", fresh.clone());
return fresh;
} catch {
return (await caches.match(request)) || (await caches.match("./index.html"));
}
})());
return;
}
if (url.origin === location.origin) {
event.respondWith((async () => {
const cached = await caches.match(request);
if (cached) return cached;
const fresh = await fetch(request);
const cache = await caches.open(CACHE_NAME);
cache.put(request, fresh.clone());
return fresh;
})());
}
});
|