UNPKG

promising-utils

Version:

A utility library for promises, support both esm and commonjs

56 lines (48 loc) 2.12 kB
declare type FunctionReturnsPromise = (input?: any) => Promise<any>; interface TimeoutOptions { duration?: number; timeoutMsg?: string; } declare const timeout: (fn: FunctionReturnsPromise, { duration, timeoutMsg }: TimeoutOptions) => Promise<unknown>; /** * @param duration milliseconds */ declare const wait: (duration: number) => Promise<void>; interface RetryOptions { retries?: number; timeout?: number; retryIf?: (err: any, count: number) => boolean; retryUntil?: (err: any, count: number) => boolean; delay?: number | ((count: number) => number); } declare const retry: (fn: FunctionReturnsPromise, { retries, retryIf, retryUntil, delay, timeout }?: RetryOptions) => Promise<unknown>; interface ParallelLimitOptions { concurrency?: number; timeout?: number; retries?: number; stopOnReject?: boolean; } declare const parallel: (arr: FunctionReturnsPromise[], { concurrency, timeout, stopOnReject, retries, }?: ParallelLimitOptions) => Promise<PromiseSettledResult<unknown>[]>; interface BatchOptions { size?: number; delay?: number | ((count: number) => number); onBatchStart?: (index: number) => void; onBatchEnd?: (index: number) => void; stopOnReject?: boolean; waterFall?: boolean; waterFallInitialValue?: any; } declare const batch: (fns: FunctionReturnsPromise[], { size, delay, onBatchStart, onBatchEnd, stopOnReject, waterFall, waterFallInitialValue, }?: BatchOptions) => Promise<PromiseSettledResult<unknown>[]>; interface SeriesOptions { delay?: number | ((count: number) => number); onEachStart?: (index: number) => void; onEachEnd?: (index: number) => void; stopOnReject?: boolean; waterFall?: boolean; waterFallInitialValue?: any; } /** * Series is basically batch with size 1 */ declare const series: (fns: FunctionReturnsPromise[], { delay, stopOnReject, waterFall, onEachStart, onEachEnd, waterFallInitialValue, }?: SeriesOptions) => Promise<PromiseSettledResult<unknown>[]>; export { ParallelLimitOptions, RetryOptions, TimeoutOptions, batch, parallel, retry, series, timeout, wait };