OLD | NEW |
1 function get_query_params(url) { | 1 function get_query_params(url) { |
2 var search = (new URL(url)).search; | 2 var search = (new URL(url)).search; |
3 if (!search) { | 3 if (!search) { |
4 return {}; | 4 return {}; |
5 } | 5 } |
6 var ret = {}; | 6 var ret = {}; |
7 var params = search.substring(1).split('&'); | 7 var params = search.substring(1).split('&'); |
8 params.forEach(function(param) { | 8 params.forEach(function(param) { |
9 var element = param.split('='); | 9 var element = param.split('='); |
10 ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]); | 10 ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]); |
(...skipping 15 matching lines...) Expand all Loading... |
26 return init; | 26 return init; |
27 } | 27 } |
28 | 28 |
29 self.addEventListener('fetch', function(event) { | 29 self.addEventListener('fetch', function(event) { |
30 var params = get_query_params(event.request.url); | 30 var params = get_query_params(event.request.url); |
31 var init = get_request_init(params); | 31 var init = get_request_init(params); |
32 var url = params['url']; | 32 var url = params['url']; |
33 if (params['ignore']) { | 33 if (params['ignore']) { |
34 return; | 34 return; |
35 } | 35 } |
| 36 if (params['reject']) { |
| 37 event.respondWith(new Promise(function(resolve, reject) { |
| 38 reject(); |
| 39 })); |
| 40 return; |
| 41 } |
| 42 if (params['resolve-null']) { |
| 43 event.respondWith(new Promise(function(resolve) { |
| 44 resolve(null); |
| 45 })); |
| 46 return; |
| 47 } |
36 event.respondWith(new Promise(function(resolve, reject) { | 48 event.respondWith(new Promise(function(resolve, reject) { |
37 var request = event.request; | 49 var request = event.request; |
38 if (url) { | 50 if (url) { |
39 request = new Request(url, init); | 51 request = new Request(url, init); |
40 } | 52 } |
41 fetch(request).then(resolve, reject); | 53 fetch(request).then(resolve, reject); |
42 })); | 54 })); |
43 }); | 55 }); |
OLD | NEW |