Skip to main content

AsyncRetryerOptions

Defined in: async-retryer.ts:59

Type Parameters

TFn

TFn extends AnyAsyncFunction

Properties

backoff?

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

Defined in: async-retryer.ts:67

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

'exponential'

baseWait?

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

Defined in: async-retryer.ts:72

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

Default

1000

enabled?

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

Defined in: async-retryer.ts:77

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

Default

true

initialState?

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

Defined in: async-retryer.ts:81

Initial state to merge with the default state


jitter?

optional jitter?: number;

Defined in: async-retryer.ts:86

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

Default

0

key?

optional key?: string;

Defined in: async-retryer.ts:94

Optional key to identify this async retryer instance. Note: async retryers are not currently surfaced in the devtools, so this key is only a plain identifier. Retryer instances are often created per-execution (including internally by the other async utilities), so they intentionally do not register with the devtools event bus.


maxAttempts?

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

Defined in: async-retryer.ts:99

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

Default

3

maxExecutionTime?

optional maxExecutionTime?: number;

Defined in: async-retryer.ts:104

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

Default

Infinity

maxTotalExecutionTime?

optional maxTotalExecutionTime?: number;

Defined in: async-retryer.ts:109

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

Default

Infinity

maxWait?

optional maxWait?: number | ((retryer) => number);

Defined in: async-retryer.ts:114

Maximum wait time in milliseconds to cap retry delays, or a function that returns the max wait time

Default

Infinity

onAbort?

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

Defined in: async-retryer.ts:118

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?

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

Defined in: async-retryer.ts:125

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

Parameters

error

Error

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onExecutionTimeout?

optional onExecutionTimeout?: (retryer) => void;

Defined in: async-retryer.ts:133

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

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


onLastError?

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

Defined in: async-retryer.ts:137

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

Parameters

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onRetry?

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

Defined in: async-retryer.ts:141

Callback invoked before each retry attempt

Parameters

attempt

number

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onSettled?

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

Defined in: async-retryer.ts:145

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

Parameters

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onSuccess?

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

Defined in: async-retryer.ts:149

Callback invoked when execution succeeds

Parameters

result

Awaited<ReturnType<TFn>>

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onTotalExecutionTimeout?

optional onTotalExecutionTimeout?: (retryer) => void;

Defined in: async-retryer.ts:157

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

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


throwOnError?

optional throwOnError?: boolean | "last";

Defined in: async-retryer.ts:165

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

'last'