wretch
Version:
A tiny wrapper built around fetch with an intuitive syntax.
2 lines • 795 B
JavaScript
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.wretchDedupeMiddleware={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=(e,t)=>t.skipDedupe||t.method!==`GET`,n=(e,t)=>t.method+`@`+e,r=e=>e.clone();e.dedupe=({skip:e=t,key:i=n,resolver:a=r}={})=>{let o=new Map;return t=>(n,r)=>{if(e(n,r))return t(n,r);let s=i(n,r);if(!o.has(s))o.set(s,[]);else return new Promise((e,t)=>{o.get(s).push([e,t])});try{return t(n,r).then(e=>(o.get(s).forEach(([t])=>t(a(e))),o.delete(s),e)).catch(e=>{throw o.get(s).forEach(([,t])=>t(e)),o.delete(s),e})}catch(e){return o.delete(s),Promise.reject(e)}}}});
//# sourceMappingURL=dedupe.min.js.map