mirror of
				https://github.com/KevinMidboe/zoff.git
				synced 2025-10-29 18:00:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| var version = 'v5.0';
 | |
| var CACHE_FILES = [
 | |
|     '/assets/html/offline.html',
 | |
|     '/assets/manifest.json',
 | |
|     '/assets/images/favicon.ico'
 | |
| ];
 | |
| 
 | |
| self.addEventListener("install", function(event) {
 | |
|     event.waitUntil(
 | |
|         caches
 | |
|         .open(version + '::zoff')
 | |
|         .then(function(cache) {
 | |
|             return cache.addAll(CACHE_FILES);
 | |
|         })
 | |
|         .then(function() {
 | |
|         })
 | |
|     );
 | |
| });
 | |
| 
 | |
| self.addEventListener("activate", function(event) {
 | |
| 
 | |
|     var cacheWhitelist = version;
 | |
| 
 | |
|     event.waitUntil(
 | |
|         caches.keys().then(function(keyList) {
 | |
|             return Promise.all(keyList.map(function(key) {
 | |
|                 if (!key.startsWith(cacheWhitelist)) {
 | |
|                     return caches.delete(key);
 | |
|                 }
 | |
|             }));
 | |
|         })
 | |
|     );
 | |
| });
 | |
| 
 | |
| self.addEventListener('fetch', event => {
 | |
|   if (event.request.mode === 'navigate' ||
 | |
|     (event.request.method === 'GET' &&
 | |
|         (event.request.headers.get('accept').includes('text/html') ||
 | |
|          event.request.headers.get('accept').includes('text/css') ||
 | |
|             (event.request.headers.get('accept').includes('*/*') &&
 | |
|                 (event.request.url.includes('localhost') || event.request.url.includes('zoff.me')))))) {
 | |
|     event.respondWith(
 | |
|       fetch(event.request).catch(error => {
 | |
|         if(event.request.url.includes('manifest.json')){
 | |
|           return caches.open(version + "::zoff").then(function(cache) {
 | |
|               return cache.match("/assets/manifest.json");
 | |
|           });
 | |
|         } else if (event.request.url.includes('favicon')) {
 | |
|           return caches.open(version + "::zoff").then(function(cache) {
 | |
|               return cache.match("/assets/images/favicon.ico");
 | |
|           });
 | |
|         } else if (event.request.url.includes('service-worker')) {
 | |
|           return caches.open(version + "::zoff").then(function(cache) {
 | |
|               return cache.match("/service-worker.js");
 | |
|           });
 | |
|         } else {
 | |
|           return caches.open(version + "::zoff").then(function(cache) {
 | |
|               return cache.match("/assets/html/offline.html");
 | |
|           });
 | |
|         }
 | |
|       })
 | |
|     );
 | |
|   }
 | |
| 
 | |
| });
 |