UNPKG

return-fetch

Version:

A very light and simple library to extend fetch by implementing request, response interceptors.

3 lines (2 loc) 1.29 kB
function e(){return e=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},e.apply(this,arguments)}const r=r=>async(...t)=>{var n,a;const l=(([r,t],n)=>{const a=new Headers(null==n?void 0:n.headers);new Headers(null==t?void 0:t.headers).forEach((e,r)=>{a.set(r,e)});let l=r;return null!=n&&n.baseUrl&&(l=new URL(r,n.baseUrl)),[l,e({},t,{headers:a})]})(await(async(...e)=>{let r,t;return e[0]instanceof Request?(r=e[0].url,t=await(async(e,r)=>{const t=new Request(e,r),n=await t.arrayBuffer();return{method:t.method,headers:t.headers,body:n.byteLength?n:void 0,referrer:t.referrer,referrerPolicy:t.referrerPolicy,mode:t.mode,cache:t.cache,redirect:t.redirect,credentials:t.credentials,integrity:t.integrity,keepalive:t.keepalive,signal:t.signal,window:null==r?void 0:r.window}})(e[0],e[1])):(r=e[0],t=e[1]),[r,t]})(...t),r),s=(null==r?void 0:r.fetch)||fetch;let i;var o;i=null!=r&&null!=(n=r.interceptors)&&n.request?await(null==r||null==(o=r.interceptors)||null==o.request?void 0:o.request(l,s)):l;const c=await s(...i);return(null==r||null==(a=r.interceptors)||null==a.response?void 0:a.response(c,i,s))||c};export{r as default}; //# sourceMappingURL=index.js.map