Files
Productier/apps/frontend/public/sw.js
T
Tomas Dvorak 3cb40adb23 first commit
2026-04-10 12:04:09 +02:00

38 lines
930 B
JavaScript

const CACHE_NAME = "productier-v1";
const PRECACHE = ["/", "/manifest.json", "/favicon.ico"];
self.addEventListener("install", event => {
event.waitUntil(caches.open(CACHE_NAME).then(cache => cache.addAll(PRECACHE)));
});
self.addEventListener("activate", event => {
event.waitUntil(
caches.keys().then(keys =>
Promise.all(keys.filter(key => key !== CACHE_NAME).map(key => caches.delete(key))),
),
);
});
self.addEventListener("fetch", event => {
if (event.request.method !== "GET") {
return;
}
event.respondWith(
caches.match(event.request).then(cached => {
if (cached) {
return cached;
}
return fetch(event.request)
.then(response => {
const copy = response.clone();
caches.open(CACHE_NAME).then(cache => cache.put(event.request, copy));
return response;
})
.catch(() => caches.match("/"));
}),
);
});