promising-utils
Version:
A utility library for promises, support both esm and commonjs
56 lines (48 loc) • 2.12 kB
TypeScript
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 };