Framework
Version
Debouncer API Reference
Throttler API Reference
Rate Limiter API Reference
Queue API Reference
Batcher API Reference

AsyncRetryerOptions

Interface: AsyncRetryerOptions<TFn>

Defined in: async-retryer.ts:60

Type Parameters

TFn extends AnyAsyncFunction

Properties

backoff?

ts
optional backoff: "linear" | "exponential" | "fixed";
optional backoff: "linear" | "exponential" | "fixed";

Defined in: async-retryer.ts:68

The backoff strategy for retry delays:

  • 'exponential': Wait time doubles with each attempt (1s, 2s, 4s, ...)
  • 'linear': Wait time increases linearly (1s, 2s, 3s, ...)
  • 'fixed': Same wait time for all attempts

Default

ts
'exponential'
'exponential'

baseWait?

ts
optional baseWait: number | (retryer) => number;
optional baseWait: number | (retryer) => number;

Defined in: async-retryer.ts:73

Base wait time in milliseconds between retries, or a function that returns the wait time

Default

ts
1000
1000

enabled?

ts
optional enabled: boolean | (retryer) => boolean;
optional enabled: boolean | (retryer) => boolean;

Defined in: async-retryer.ts:78

Whether the retryer is enabled, or a function that determines if it's enabled

Default

ts
true
true

initialState?

ts
optional initialState: Partial<AsyncRetryerState<TFn>>;
optional initialState: Partial<AsyncRetryerState<TFn>>;

Defined in: async-retryer.ts:82

Initial state to merge with the default state


jitter?

ts
optional jitter: number;
optional jitter: number;

Defined in: async-retryer.ts:87

Jitter percentage to add to retry delays (0-1). Adds randomness to prevent thundering herd.

Default

ts
0
0

key?

ts
optional key: string;
optional key: string;

Defined in: async-retryer.ts:92

Optional key to identify this async retryer instance. If provided, the async retryer will be identified by this key in the devtools and PacerProvider if applicable.


maxAttempts?

ts
optional maxAttempts: number | (retryer) => number;
optional maxAttempts: number | (retryer) => number;

Defined in: async-retryer.ts:97

Maximum number of retry attempts, or a function that returns the max attempts

Default

ts
3
3

maxExecutionTime?

ts
optional maxExecutionTime: number;
optional maxExecutionTime: number;

Defined in: async-retryer.ts:102

Maximum execution time in milliseconds for a single function call before aborting

Default

ts
Infinity
Infinity

maxTotalExecutionTime?

ts
optional maxTotalExecutionTime: number;
optional maxTotalExecutionTime: number;

Defined in: async-retryer.ts:107

Maximum total execution time in milliseconds for the entire retry operation before aborting

Default

ts
Infinity
Infinity

onAbort()?

ts
optional onAbort: (reason, retryer) => void;
optional onAbort: (reason, retryer) => void;

Defined in: async-retryer.ts:111

Callback invoked when the execution is aborted (manually or due to timeouts)

Parameters

reason

"manual" | "execution-timeout" | "total-timeout" | "new-execution"

retryer

AsyncRetryer<TFn>

Returns

void


onError()?

ts
optional onError: (error, args, retryer) => void;
optional onError: (error, args, retryer) => void;

Defined in: async-retryer.ts:118

Callback invoked when any error occurs during execution (including retries)

Parameters

error

Error

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onExecutionTimeout()?

ts
optional onExecutionTimeout: (retryer) => void;
optional onExecutionTimeout: (retryer) => void;

Defined in: async-retryer.ts:146

Callback invoked when a single execution attempt times out (maxExecutionTime exceeded)

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


onLastError()?

ts
optional onLastError: (error, retryer) => void;
optional onLastError: (error, retryer) => void;

Defined in: async-retryer.ts:126

Callback invoked when the final error occurs after all retries are exhausted

Parameters

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onRetry()?

ts
optional onRetry: (attempt, error, retryer) => void;
optional onRetry: (attempt, error, retryer) => void;

Defined in: async-retryer.ts:130

Callback invoked before each retry attempt

Parameters

attempt

number

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onSettled()?

ts
optional onSettled: (args, retryer) => void;
optional onSettled: (args, retryer) => void;

Defined in: async-retryer.ts:134

Callback invoked after execution completes (success or failure) of each attempt

Parameters

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onSuccess()?

ts
optional onSuccess: (result, args, retryer) => void;
optional onSuccess: (result, args, retryer) => void;

Defined in: async-retryer.ts:138

Callback invoked when execution succeeds

Parameters

result

Awaited<ReturnType<TFn>>

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onTotalExecutionTimeout()?

ts
optional onTotalExecutionTimeout: (retryer) => void;
optional onTotalExecutionTimeout: (retryer) => void;

Defined in: async-retryer.ts:150

Callback invoked when the total execution time times out (maxTotalExecutionTime exceeded)

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


throwOnError?

ts
optional throwOnError: boolean | "last";
optional throwOnError: boolean | "last";

Defined in: async-retryer.ts:158

Controls when errors are thrown:

  • 'last': Only throw the final error after all retries are exhausted
  • true: Throw every error immediately (disables retrying)
  • false: Never throw errors, return undefined instead

Default

ts
'last'
'last'