wretch
Version:
A tiny wrapper built around fetch with an intuitive syntax.
2 lines • 853 B
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=(e,t)=>e*t,t=e=>e&&(e.ok||e.status>=400&&e.status<500),n=({delayTimer:n=500,delayRamp:r=e,maxAttempts:i=10,until:a=t,onRetry:o=null,retryOnNetworkError:s=!1,resolveWithLatestResponse:c=!1,skip:l}={})=>e=>(t,u)=>{let d=0;if(l&&l(t,u))return e(t,u);let f=(l,p)=>Promise.resolve(a(l,p)).then(a=>a?l&&c?l:p?Promise.reject(p):l:(d++,!i||d<=i?new Promise(i=>{let a=r(n,d);setTimeout(()=>{typeof o==`function`?Promise.resolve(o({response:l,error:p,url:t,attempt:d,options:u})).then((n={})=>{i(e((n&&n.url)??t,(n&&n.options)??u))}):i(e(t,u))},a)}).then(f).catch(e=>{if(!s)throw e;return f(null,e)}):l&&c?l:Promise.reject(p||Error(`Number of attempts exceeded.`))));return e(t,u).then(f).catch(e=>{if(!s)throw e;return f(null,e)})};exports.retry=n;
//# sourceMappingURL=retry.min.cjs.map