1 |
|
2 |
|
3 | var VERSION = String(Date.now())
|
4 | var FILES = process.env.FILE_LIST
|
5 |
|
6 |
|
7 | self.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 |
|
17 | self.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 |
|
27 | self.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 | })
|