UNPKG

854 BJavaScriptView Raw
1/* global self */
2
3var VERSION = String(Date.now())
4var FILES = process.env.FILE_LIST
5
6// Respond with cached resources
7self.addEventListener('fetch', function (e) {
8 var request = self.caches.match(e.request)
9 .then(function (req) {
10 return req || self.fetch(e.request)
11 })
12
13 e.respondWith(request)
14})
15
16// Register worker
17self.addEventListener('install', function (e) {
18 var cacheFiles = self.caches.open(VERSION)
19 .then(function (cache) {
20 return cache.addAll(FILES)
21 })
22
23 e.waitUntil(cacheFiles)
24})
25
26// Remove outdated resources
27self.addEventListener('activate', function (e) {
28 var removeKeys = self.caches.keys()
29 .then(function (keyList) {
30 return Promise.all(keyList.map(function (key, i) {
31 if (keyList[i] !== VERSION) return self.caches.delete(keyList[i])
32 }))
33 })
34
35 e.waitUntil(removeKeys)
36})