index.d.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. export declare class TimeoutError extends Error {
  2. previous: Error | undefined;
  3. constructor(message: string, previousError?: Error);
  4. }
  5. export type MatchOption = string | RegExp | Error | Function;
  6. export interface Options {
  7. max: number;
  8. timeout?: number | undefined;
  9. match?: MatchOption[] | MatchOption | undefined;
  10. backoffBase?: number | undefined;
  11. backoffExponent?: number | undefined;
  12. backoffJitter?: number | undefined;
  13. report?: ((message: string, obj: CoercedOptions, err?: any) => void) | undefined;
  14. name?: string | undefined;
  15. }
  16. type CoercedOptions = {
  17. $current: number;
  18. max: number;
  19. timeout?: number | undefined;
  20. match: MatchOption[];
  21. backoffBase: number;
  22. backoffExponent: number;
  23. backoffJitter?: number;
  24. report?: ((message: string, obj: CoercedOptions, err?: any) => void) | undefined;
  25. name?: string | undefined;
  26. };
  27. type MaybePromise<T> = PromiseLike<T> | T;
  28. type RetryCallback<T> = ({ current }: {
  29. current: CoercedOptions['$current'];
  30. }) => MaybePromise<T>;
  31. export declare function applyJitter(delayMs: number, maxJitterMs: number): number;
  32. export declare function retryAsPromised<T>(callback: RetryCallback<T>, optionsInput: Options | number | CoercedOptions): Promise<T>;
  33. export default retryAsPromised;