sw.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const CACHE_NAME = "workout-cool-v1";
  2. const urlsToCache = [
  3. "/",
  4. "/manifest.json",
  5. "/images/favicon-32x32.png",
  6. "/images/favicon-16x16.png",
  7. "/apple-touch-icon.png",
  8. "/android-chrome-192x192.png",
  9. "/android-chrome-512x512.png",
  10. ];
  11. // Install event - cache resources
  12. self.addEventListener("install", (event) => {
  13. event.waitUntil(
  14. caches.open(CACHE_NAME).then((cache) => {
  15. return cache.addAll(urlsToCache);
  16. }),
  17. );
  18. });
  19. // Fetch event - serve from cache when offline
  20. self.addEventListener("fetch", (event) => {
  21. event.respondWith(
  22. caches.match(event.request).then((response) => {
  23. return response || fetch(event.request);
  24. }),
  25. );
  26. });
  27. // Activate event - clean up old caches
  28. self.addEventListener("activate", (event) => {
  29. event.waitUntil(
  30. caches.keys().then((cacheNames) => {
  31. return Promise.all(
  32. cacheNames.map((cacheName) => {
  33. if (cacheName !== CACHE_NAME) {
  34. return caches.delete(cacheName);
  35. }
  36. }),
  37. );
  38. }),
  39. );
  40. });