service-worker.js 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. var CACHE_NAME = 'dependencies-cache';
  2. self.addEventListener('install', function (event) {
  3. console.log('[install] Kicking off service worker registration!');
  4. event.waitUntil(caches.open(CACHE_NAME).then(async function (cache) {
  5. const response = await fetch('files-to-cache.json');
  6. const files = await response.json();
  7. console.log('[install] Adding files from JSON file: ', files);
  8. return await cache.addAll(files);
  9. }).then(function () {
  10. console.log('[install] All required resources have been cached;', 'the Service Worker was successfully installed!'
  11. );
  12. return self.skipWaiting();
  13. })
  14. );
  15. });
  16. self.addEventListener('fetch', function (event) {
  17. event.respondWith(caches.match(event.request).then(function (response) {
  18. if (response) {
  19. console.log('[fetch] Returning from Service Worker cache: ', event.request.url
  20. );
  21. return response;
  22. }
  23. console.log('[fetch] Returning from server: ', event.request.url);
  24. return fetch(event.request);
  25. })
  26. );
  27. });
  28. self.addEventListener('activate', function (event) {
  29. console.log('[activate] Activating service worker!');
  30. console.log('[activate] Claiming this service worker!');
  31. event.waitUntil(self.clients.claim());
  32. });