@@ -29,6 +29,7 @@ namespace $ {
29
29
self . addEventListener ( 'fetch' , ( event : any ) => {
30
30
31
31
const request = event . request as Request
32
+ // console.log( 'FETCH', request.mode, request.cache, request.url )
32
33
33
34
if ( blacklist . has ( request . url . replace ( / ^ h t t p s ? : / , '' ) ) ) {
34
35
return event . respondWith (
@@ -47,20 +48,9 @@ namespace $ {
47
48
if ( / \? / . test ( request . url ) ) return
48
49
if ( request . cache === 'no-store' ) return
49
50
50
- const fetch_data = ( ) => fetch ( request ) . then ( response => {
51
+ const fetch_data = ( ) => fetch ( new Request ( request , { credentials : 'omit' } ) ) . then ( response => {
51
52
if ( response . status !== 200 ) return response
52
53
53
- const headers = new Headers ( response . headers )
54
- headers . set ( "Cross-Origin-Embedder-Policy" , "require-corp" )
55
- headers . set ( "Cross-Origin-Opener-Policy" , "same-origin" )
56
- headers . set ( "$mol_offline" , "" )
57
-
58
- response = new Response ( response . body , {
59
- status : response . status ,
60
- statusText : response . statusText ,
61
- headers,
62
- } ) ;
63
-
64
54
event . waitUntil (
65
55
caches . open ( '$mol_offline' ) . then (
66
56
cache => cache . put ( request , response )
@@ -70,9 +60,28 @@ namespace $ {
70
60
return response . clone ( )
71
61
} )
72
62
63
+ const enrich = ( response : Response ) => {
64
+
65
+ // console.log( 'ENRICH', response.status, response.url )
66
+ if ( ! response . status ) return response
67
+
68
+ const headers = new Headers ( response . headers )
69
+ headers . set ( "$mol_offline" , "" )
70
+ headers . set ( "Cross-Origin-Embedder-Policy" , "credentialless" )
71
+ headers . set ( "Cross-Origin-Resource-Policy" , "cross-origin" )
72
+ headers . set ( "Cross-Origin-Opener-Policy" , "same-origin" )
73
+
74
+ return new Response ( response . body , {
75
+ status : response . status ,
76
+ statusText : response . statusText ,
77
+ headers,
78
+ } ) ;
79
+
80
+ }
81
+
73
82
const fresh = request . cache === 'force-cache' ? null : fetch_data ( )
74
83
75
- if ( fresh ) event . waitUntil ( fresh )
84
+ if ( fresh ) event . waitUntil ( fresh . then ( enrich ) )
76
85
77
86
event . respondWith (
78
87
caches . match ( request ) . then (
@@ -92,10 +101,10 @@ namespace $ {
92
101
cloned . headers . set ( '$mol_offline_remote_status' , message )
93
102
return cloned
94
103
} )
95
- : fresh
104
+ : fresh !
96
105
)
97
106
: ( cached || fresh || fetch_data ( ) )
98
- )
107
+ ) . then ( enrich )
99
108
)
100
109
101
110
} )
0 commit comments