1 function get_query_params(url) {
2 var search = (new URL(url)).search;
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]);
15 function get_request_init(params) {
17 if (params['method']) {
18 init['method'] = params['method'];
21 init['mode'] = params['mode'];
23 if (params['credentials']) {
24 init['credentials'] = params['credentials'];
29 self.addEventListener('fetch', function(event) {
30 var params = get_query_params(event.request.url);
31 var init = get_request_init(params);
32 var url = params['url'];
33 if (params['ignore']) {
36 if (params['reject']) {
37 event.respondWith(new Promise(function(resolve, reject) {
42 if (params['resolve-null']) {
43 event.respondWith(new Promise(function(resolve) {
48 event.respondWith(new Promise(function(resolve, reject) {
49 var request = event.request;
51 request = new Request(url, init);
53 fetch(request).then(resolve, reject);