@@ -8,7 +8,9 @@ const initialCache = [
8
8
. concat ( self . __precacheManifest . map ( item => item . url ) )
9
9
. map ( url => new Request ( url , { redirect : 'follow' } ) ) ;
10
10
11
- const isFileResource = / ( \. [ a - z ] * $ ) / ;
11
+ const isAsset = url => url . match ( / ( \/ a s s e t s \/ .* $ | f o n t s \. ( g o o g l e a p i s | g s t a t i c ) ) | \. c s s $ | \. j s $ / ) ;
12
+ const isGoogleResource = url => url . match ( / f o n t s | g o o g l e / ) ;
13
+ const isTemplate = url => ! isAsset ( url ) && ! isGoogleResource ( url ) && ! url . endsWith ( '/' ) ;
12
14
13
15
function onInstall ( event ) {
14
16
console . log ( 'Service Worker registered' ) ;
@@ -24,12 +26,10 @@ self.addEventListener('install', onInstall);
24
26
function onFetch ( event ) {
25
27
event . respondWith (
26
28
caches . open ( CACHE_VERSION ) . then ( cache => {
27
- if ( ! event . request . url . endsWith ( 'bundle.js' ) ) {
28
- if ( event . request . url . match ( isFileResource ) || event . request . url . includes ( 'fonts' ) ) {
29
+ if ( isAsset ( event . request . url ) ) {
29
30
return retrieveFromCache ( { event, cache } )
30
31
. catch ( fetchAndCache )
31
32
}
32
- }
33
33
return fetchAndCache ( { event, cache } )
34
34
. catch ( ( ( ) => retrieveFromCache ( { event, cache } ) ) ) ;
35
35
} )
@@ -39,7 +39,7 @@ function onFetch(event) {
39
39
function fetchAndCache ( { event, cache } ) {
40
40
console . log ( `Adding resource ${ event . request . url } to the cache.` ) ;
41
41
let url = event . request . url ;
42
- if ( ! url . match ( isFileResource ) && ! url . endsWith ( '/' ) && ! url . includes ( 'google' ) && ! event . request . url . includes ( 'fonts' ) ) {
42
+ if ( isTemplate ( url ) ) {
43
43
url = url . concat ( '/' ) ;
44
44
}
45
45
const request = new Request (
0 commit comments