@viveknayyar/re-promise
Version:
Retry failed api calls with a backoff time
3 lines (2 loc) • 555 B
JavaScript
exports.retryPromise=({fn:e,retries:r=3,retryDelay:t=0,retryOn:i,backOffFactor:n=1,debug:o=!1})=>new Promise((s,y)=>{const a=({remainingRetries:e,retryDelay:t,e:i})=>(o&&(console.group("Retry Attempt: "+(r-e+1)),console.dir({remainingRetries:e-1,retryDelay:t,error:i}),console.groupEnd()),new Promise(r=>{setTimeout(()=>r(l(e-1,t*n)),t)})),l=(r,t)=>{e().then(s).catch(e=>{if(!(r>0))return y(e);if(i){if(!i(e))return y(e);a({remainingRetries:r,retryDelay:t,e:e})}else a({remainingRetries:r,retryDelay:t,e:e})})};l(r,t)});
//# sourceMappingURL=index.js.map