View file sw.js

File size: 1Kb
const CACHE_NAME = 'goload-cache';

self.addEventListener('activate', (event) => {
	const cacheWhitelist = [CACHE_NAME];
	event.waitUntil(
		caches.keys()
		.then(keyList =>
			Promise.all(keyList.map(key => {
				if (!cacheWhitelist.includes(key)) {
					return caches.delete(key)
				}
			}))
		)
	)
});

self.addEventListener('install', (event) => {
	event.waitUntil(
		caches.open(CACHE_NAME)
		.then(cache => {
			fetch('/manifest.json')
			.then(response => response.json())
			.then(assets => {
				const resources = [
					'/offline',
					'/favicon.ico',
					'/modules/assets/img/icon_256.png',
					'/modules/assets/css/style.css',
					'/modules/pwa/assets/js/app.js',
					'/modules/pwa/assets/js/jquery-3.4.1.min.js'
				]
				cache.addAll(resources)
			})
		})
	)
});

self.addEventListener('fetch', (event) => {
	if (event.request.method == 'GET') {
		event.respondWith(
			caches.match(event.request)
			.then(response => response || fetch(event.request))
			.catch(error => caches.match('/offline'))
		)
	}
});