anux-common
Version:
[](https://travis-ci.com/Anupheaus/anux-common) [](https://www.codacy.com/app/Anuphea
15 lines (14 loc) • 528 B
TypeScript
interface ICommonConfig<T> {
onFailure?(error: Error): T;
onSuccess?(result: T, attempts: number): T | void;
}
interface IConfigMaxAttempts {
maxAttempts: number;
onAttempt?(attempt: number, error: Error): boolean | void;
}
interface IConfigOnAttempt {
onAttempt(attempt: number, error: Error): boolean | void;
}
declare type IConfig<T> = ICommonConfig<T> & (IConfigMaxAttempts | IConfigOnAttempt);
export declare function repeatOnError<T>(delegate: () => T, config: IConfig<T>): T;
export {};