@xylabs/retry

Base functionality used throughout XY Labs TypeScript/JavaScript libraries
Install
Using npm:
npm install {{name}}
Using yarn:
yarn add {{name}}
Using pnpm:
pnpm add {{name}}
Using bun:
bun add {{name}}
License
See the LICENSE file for license rights and limitations (LGPL-3.0-only).
Reference
packages
retry
### .temp-typedoc
### functions
### <a id="retry"></a>retry
@xylabs/retry
function retry<T>(func, config?): Promise<T | undefined>;
Retries an async function with exponential backoff until it completes or retries are exhausted.
Type Parameters
T
T = unknown
Parameters
func
() => Promisable<T | undefined>
The function to retry.
config?
RetryConfigWithComplete<T>
Optional retry configuration including backoff, interval, retries, and completion check.
Returns
Promise<T | undefined>
The result of the function, or undefined if all retries were exhausted.
### interfaces
### <a id="RetryConfig"></a>RetryConfig
@xylabs/retry
Configuration for retry behavior.
Extended by
Properties
backoff?
optional backoff?: number;
Multiplier applied to the interval after each retry. Defaults to 2.
interval?
optional interval?: number;
Initial delay in milliseconds between retries. Defaults to 100.
retries?
optional retries?: number;
Maximum number of retry attempts. Defaults to 0 (no retries).
### <a id="RetryConfigWithComplete"></a>RetryConfigWithComplete
@xylabs/retry
Retry configuration extended with a custom completion check.
Extends
Type Parameters
T
T = unknown
Properties
backoff?
optional backoff?: number;
Multiplier applied to the interval after each retry. Defaults to 2.
Inherited from
RetryConfig.backoff
interval?
optional interval?: number;
Initial delay in milliseconds between retries. Defaults to 100.
Inherited from
RetryConfig.interval
retries?
optional retries?: number;
Maximum number of retry attempts. Defaults to 0 (no retries).
Inherited from
RetryConfig.retries
complete?
optional complete?: (result?) => boolean;
Determines whether the result is considered complete. Defaults to checking for a defined value.
Parameters
result?
T
Returns
boolean