1
0
mirror of https://github.com/XFox111/easylogon-web.git synced 2026-07-02 19:52:45 +03:00
Files
easylogon-web/public/sw.js
T
2025-03-26 16:42:06 +00:00

56 lines
1.2 KiB
JavaScript

console.log("[sw.js]: Running service worker");
/** @type {string} */
let cacheName = "easylogon-pwa";
/** @type {string[]} */
let filesToCache = [
"/",
"/success",
"/error",
"/privacy",
"/assets/index.js",
"/assets/PrivacyPage.js",
"/assets/index.css",
"/favicon.svg"
];
self.addEventListener("install", /** @param {InstallEvent} event */ event =>
event.waitUntil((async () =>
{
/** @type {Cache} */
let cache = await caches.open(cacheName);
await cache.addAll(filesToCache);
})())
);
self.addEventListener("fetch", /** @param {FetchEvent} event */ event =>
event.respondWith(
(async () =>
{
// Don't cache anything but GET requests
if (event.request.method !== "GET")
return await fetch(event.request);
// Try cache first
let response = await caches.match(new URL(event.request.url));
if (response)
return response;
response = await fetch(event.request);
// If fetch succeeds, cache the response
if (response.ok)
{
console.log("[sw.js]: Caching file", event.request.url);
const cache = await caches.open(cacheName);
await cache.put(event.request, response.clone());
}
return response;
})()
)
);