UNPKG

retryable-fetch-ts

Version:

`retryable-fetch-ts` is a lightweight TypeScript package designed to simplify API fetching with built-in support for automatic retries and configurable timeouts.

2 lines (1 loc) 1.11 kB
"use strict";var m=Object.create;var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var d=(r,e)=>{for(var t in e)i(r,t,{get:e[t],enumerable:!0})},o=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of h(e))!y.call(r,a)&&a!==t&&i(r,a,{get:()=>e[a],enumerable:!(n=g(e,a))||n.enumerable});return r};var x=(r,e,t)=>(t=r!=null?m(p(r)):{},o(e||!r||!r.__esModule?i(t,"default",{value:r,enumerable:!0}):t,r)),I=r=>o(i({},"__esModule",{value:!0}),r);var j={};d(j,{retryFetch:()=>T});module.exports=I(j);var f=x(require("axios"));async function l(r,e,t="GET"){return await f.default.get(r,{withCredentials:!0}).catch(n=>n)}var u=(r,e,t,n)=>new Promise((a,w)=>{let s,c=!1;n&&setTimeout(()=>{c=!0},n);let b=setInterval(async()=>{if(s=await l(r,e),s?.status===200||n&&c===!0){clearInterval(b),s.status===200?a(s?.data):w(s);return}},t)});async function T(r,e,t=0,n=0){if(!t&&!n)return await l(r,e);if(t&&!n)return await u(r,e,t);if(t&&n)return await u(r,e,t,n)}0&&(module.exports={retryFetch});