|
|
|
const staticCacheName = 'site-static-v4'; |
|
const dynamicCacheName = 'site-dynamic-v4'; |
|
const assets = [ |
|
'./index.html', |
|
'./style.css', |
|
'./assets/fonts/IndianSignLangage.ttf', |
|
'./assets/fonts/Aclonica-Regular.ttf', |
|
'./assets/fonts/Poppins-Regular.ttf', |
|
'./assets/images/contact-us-option-btn-img.png', |
|
'./assets/images/contribute-option-btn-img.png', |
|
'./assets/images/learn-option-btn-img.png', |
|
'./assets/images/translate-option-btn-img.png', |
|
'./assets/images/sanket-logo.png', |
|
'./assets/images/demo-pfp.png', |
|
]; |
|
|
|
|
|
|
|
|
|
self.addEventListener('install', evt => { |
|
|
|
evt.waitUntil( |
|
caches.open(staticCacheName).then((cache) => { |
|
console.log('caching shell assets'); |
|
cache.addAll(assets); |
|
}) |
|
); |
|
}); |
|
|
|
|
|
self.addEventListener('activate', evt => { |
|
|
|
evt.waitUntil( |
|
caches.keys().then(keys => { |
|
|
|
return Promise.all(keys |
|
.filter(key => key !== staticCacheName && key !== dynamicCacheName) |
|
.map(key => caches.delete(key)) |
|
); |
|
}) |
|
); |
|
}); |
|
|
|
|
|
self.addEventListener('fetch', evt => { |
|
|
|
evt.respondWith( |
|
caches.match(evt.request).then(cacheRes => { |
|
return cacheRes || fetch(evt.request).then(fetchRes => { |
|
return caches.open(dynamicCacheName).then(cache => { |
|
cache.put(evt.request.url, fetchRes.clone()); |
|
|
|
|
|
return fetchRes; |
|
}) |
|
}); |
|
}).catch(() => { |
|
if (evt.request.url.indexOf('.html') > -1) { |
|
return caches.match('index.html'); |
|
} |
|
}) |
|
); |
|
}); |
|
|