Skip to main content
Module

x/retry/retry/utils/untilDefined/retry.ts

Re-execute a function until it does not throw an error or execute a function with a timeout.
Very Popular
Latest
File
// Copyright since 2020, FranckLdx. All rights reserved. MIT license.import { RetryUtilsOptions } from "../options.ts";import { retry, retryAsync } from "../../retry.ts";
const until = <RETURN_TYPE>( lastResult: RETURN_TYPE | undefined | null,): boolean => lastResult !== undefined && lastResult !== null;
export async function retryUntilDefined<RETURN_TYPE>( fn: () => RETURN_TYPE | undefined | null, retryOptions?: RetryUtilsOptions,): Promise<RETURN_TYPE> { const result = await retry(fn, { ...retryOptions, until }); return result!;}
export async function retryAsyncUntilDefined<RETURN_TYPE>( fn: () => Promise<RETURN_TYPE | undefined | null>, options?: RetryUtilsOptions,): Promise<RETURN_TYPE> { const result = await retryAsync(fn, { ...options, until }); return result!;}