retryer.d.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. import type { CancelOptions, NetworkMode } from './types';
  2. interface RetryerConfig<TData = unknown, TError = unknown> {
  3. fn: () => TData | Promise<TData>;
  4. abort?: () => void;
  5. onError?: (error: TError) => void;
  6. onSuccess?: (data: TData) => void;
  7. onFail?: (failureCount: number, error: TError) => void;
  8. onPause?: () => void;
  9. onContinue?: () => void;
  10. retry?: RetryValue<TError>;
  11. retryDelay?: RetryDelayValue<TError>;
  12. networkMode: NetworkMode | undefined;
  13. }
  14. export interface Retryer<TData = unknown> {
  15. promise: Promise<TData>;
  16. cancel: (cancelOptions?: CancelOptions) => void;
  17. continue: () => Promise<unknown>;
  18. cancelRetry: () => void;
  19. continueRetry: () => void;
  20. }
  21. export declare type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>;
  22. declare type ShouldRetryFunction<TError> = (failureCount: number, error: TError) => boolean;
  23. export declare type RetryDelayValue<TError> = number | RetryDelayFunction<TError>;
  24. declare type RetryDelayFunction<TError = unknown> = (failureCount: number, error: TError) => number;
  25. export declare function canFetch(networkMode: NetworkMode | undefined): boolean;
  26. export declare class CancelledError {
  27. revert?: boolean;
  28. silent?: boolean;
  29. constructor(options?: CancelOptions);
  30. }
  31. export declare function isCancelledError(value: any): value is CancelledError;
  32. export declare function createRetryer<TData = unknown, TError = unknown>(config: RetryerConfig<TData, TError>): Retryer<TData>;
  33. export {};
  34. //# sourceMappingURL=retryer.d.ts.map