25 lines
933 B
TypeScript
25 lines
933 B
TypeScript
/** An abstraction that controls when the client attempts to reconnect and how many times it does so. */
|
|
export interface IRetryPolicy {
|
|
/** Called after the transport loses the connection.
|
|
*
|
|
* @param {RetryContext} retryContext Details related to the retry event to help determine how long to wait for the next retry.
|
|
*
|
|
* @returns {number | null} The amount of time in milliseconds to wait before the next retry. `null` tells the client to stop retrying.
|
|
*/
|
|
nextRetryDelayInMilliseconds(retryContext: RetryContext): number | null;
|
|
}
|
|
export interface RetryContext {
|
|
/**
|
|
* The number of consecutive failed tries so far.
|
|
*/
|
|
readonly previousRetryCount: number;
|
|
/**
|
|
* The amount of time in milliseconds spent retrying so far.
|
|
*/
|
|
readonly elapsedMilliseconds: number;
|
|
/**
|
|
* The error that forced the upcoming retry.
|
|
*/
|
|
readonly retryReason: Error;
|
|
}
|