OLD | NEW |
(Empty) | |
| 1 function get_query_params(url) { |
| 2 var search = (new URL(url)).search; |
| 3 if (!search) { |
| 4 return {}; |
| 5 } |
| 6 var ret = {}; |
| 7 var params = search.substring(1).split('&'); |
| 8 params.forEach(function(param) { |
| 9 var element = param.split('='); |
| 10 ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]); |
| 11 }); |
| 12 return ret; |
| 13 } |
| 14 |
| 15 function get_request_init(params) { |
| 16 var init = {}; |
| 17 if (params['mode']) { |
| 18 init['mode'] = params['mode']; |
| 19 } |
| 20 return init; |
| 21 } |
| 22 |
| 23 self.addEventListener('fetch', function(event) { |
| 24 var params = get_query_params(event.request.url); |
| 25 var init = get_request_init(params); |
| 26 var url = params['url']; |
| 27 event.respondWith(new Promise(function(resolve, reject) { |
| 28 var request = event.request; |
| 29 if (url) { |
| 30 request = new Request(url, init); |
| 31 } |
| 32 fetch(request).then(resolve, reject); |
| 33 })); |
| 34 }); |
OLD | NEW |