X-Git-Url: http://jaekl.net/gitweb/?p=quanweb.git;a=blobdiff_plain;f=app%2Funfetch.js;fp=app%2Funfetch.js;h=728eb4b3f40f083a76e22b3410928a426e1aa970;hp=0000000000000000000000000000000000000000;hb=2d64e9e8132f2973fb5f5859beabb4435a234ac9;hpb=bc4fa838dd6cecef40a0bca16a036c3e9438ee86 diff --git a/app/unfetch.js b/app/unfetch.js new file mode 100644 index 0000000..728eb4b --- /dev/null +++ b/app/unfetch.js @@ -0,0 +1 @@ +self.fetch||(self.fetch=function(e,n){return n=n||{},new Promise(function(t,s){var r=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var c in r.open(n.method||"get",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t}),t(a())},r.onerror=s,r.withCredentials="include"==n.credentials,n.headers)r.setRequestHeader(c,n.headers[c]);r.send(n.body||null)})});