import { RetryUtilsOptions } from "../options.ts";import { retry, retryAsync } from "../../retry.ts";
const until = <RETURN_TYPE>(lastResult: RETURN_TYPE): boolean => (lastResult as any) == true;
export function retryUntilTruthy< PARAMETERS_TYPE extends any[], RETURN_TYPE,>( fn: (...args: PARAMETERS_TYPE) => RETURN_TYPE, retryOptions?: RetryUtilsOptions,): Promise<RETURN_TYPE> { return retry(fn, { ...retryOptions, until });}
export function retryAsyncUntilTruthy< PARAMETERS_TYPE extends any[], RETURN_TYPE,>( fn: (...args: PARAMETERS_TYPE) => Promise<RETURN_TYPE>, retryOptions?: RetryUtilsOptions,): Promise<RETURN_TYPE> { return retryAsync(fn, { ...retryOptions, until });}