@azure/core-rest-pipeline
Version:
Isomorphic client library for making HTTP requests in node.js and browser.
79 lines • 2.35 kB
TypeScript
import type { PipelinePolicy } from "../pipeline.js";
import { type AzureLogger } from "@azure/logger";
import type { PipelineResponse } from "../interfaces.js";
import type { RestError } from "../restError.js";
/**
* Information provided to the retry strategy about the current progress of the retry policy.
*/
export interface RetryInformation {
/**
* A {@link PipelineResponse}, if the last retry attempt succeeded.
*/
response?: PipelineResponse;
/**
* A {@link RestError}, if the last retry attempt failed.
*/
responseError?: RestError;
/**
* Total number of retries so far.
*/
retryCount: number;
}
/**
* Properties that can modify the behavior of the retry policy.
*/
export interface RetryModifiers {
/**
* If true, allows skipping the current strategy from running on the retry policy.
*/
skipStrategy?: boolean;
/**
* Indicates to retry against this URL.
*/
redirectTo?: string;
/**
* Controls whether to retry in a given number of milliseconds.
* If provided, a new retry will be attempted.
*/
retryAfterInMs?: number;
/**
* Indicates to throw this error instead of retrying.
*/
errorToThrow?: RestError;
}
/**
* A retry strategy is intended to define whether to retry or not, and how to retry.
*/
export interface RetryStrategy {
/**
* Name of the retry strategy. Used for logging.
*/
name: string;
/**
* Logger. If it's not provided, a default logger for all retry strategies is used.
*/
logger?: AzureLogger;
/**
* Function that determines how to proceed with the subsequent requests.
* @param state - Retry state
*/
retry(state: RetryInformation): RetryModifiers;
}
/**
* Options to the {@link retryPolicy}
*/
export interface RetryPolicyOptions {
/**
* Maximum number of retries. If not specified, it will limit to 3 retries.
*/
maxRetries?: number;
/**
* Logger. If it's not provided, a default logger is used.
*/
logger?: AzureLogger;
}
/**
* retryPolicy is a generic policy to enable retrying requests when certain conditions are met
*/
export declare function retryPolicy(strategies: RetryStrategy[], options?: RetryPolicyOptions): PipelinePolicy;
//# sourceMappingURL=retryPolicy.d.ts.map