import retry from 'async-retry'; export function retryFetch( url: string, options: RequestInit, { retries = 0 }: { retries?: number } ): Promise { return retry( async (bail) => { const res = await fetch(url, options); if (!res.ok) { const error = await res.text(); if (500 <= res.status && res.status < 600) { throw new Error(error); } else { bail(new Error(error)); } } return res; }, { retries: retries, } ); }