export const forceRetry = async ( task: () => Promise, count: number = 3, predicate?: (error: unknown) => boolean, ): Promise => { let error: unknown = undefined; for (let i: number = 0; i < count; ++i) try { return await task(); } catch (e) { if (predicate?.(e) === false) throw e; error = e; } throw error; };