mirror of
https://github.com/XFox111/easylogon-web.git
synced 2026-07-02 19:52:45 +03:00
56 lines
1.2 KiB
JavaScript
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;
|
|
})()
|
|
)
|
|
);
|