/* eslint-disable @typescript-eslint/no-unused-vars */ // نصب Service Worker self.addEventListener("install", (event) => { console.log("Service Worker installing..."); event.waitUntil( caches.open("pwa-cache-v1").then((cache) => { return cache.addAll([ "/", "/manifest.json", "/images/icons/256x256.png", "/images/icons/512x512.png" ]); }) ); }); // فعال‌سازی Service Worker self.addEventListener("activate", (event) => { console.log("Service Worker activated."); // پاک کردن cacheهای قدیمی event.waitUntil( caches.keys().then((keys) => Promise.all( keys .filter((key) => key !== "pwa-cache-v1") .map((key) => caches.delete(key)) ) ) ); }); // هندل درخواست‌ها self.addEventListener("fetch", (event) => { const url = new URL(event.request.url); // فقط برای فایل‌های استاتیک از cache استفاده کن if ( url.pathname.startsWith("/images/") || url.pathname.endsWith(".png") || url.pathname.endsWith(".jpg") || url.pathname.endsWith(".jpeg") || url.pathname.endsWith(".gif") || url.pathname.endsWith(".webp") || url.pathname.endsWith("manifest.json") ) { event.respondWith( caches.match(event.request).then((response) => { return ( response || fetch(event.request).then((res) => { // فایل جدید رو هم ذخیره کن return caches.open("pwa-cache-v1").then((cache) => { cache.put(event.request, res.clone()); return res; }); }) ); }) ); } });