aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node_modules/undici/types/retry-handler.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/undici/types/retry-handler.d.ts')
-rw-r--r--node_modules/undici/types/retry-handler.d.ts116
1 files changed, 116 insertions, 0 deletions
diff --git a/node_modules/undici/types/retry-handler.d.ts b/node_modules/undici/types/retry-handler.d.ts
new file mode 100644
index 0000000..0528eb4
--- /dev/null
+++ b/node_modules/undici/types/retry-handler.d.ts
@@ -0,0 +1,116 @@
+import Dispatcher from "./dispatcher";
+
+export default RetryHandler;
+
+declare class RetryHandler implements Dispatcher.DispatchHandlers {
+ constructor(
+ options: Dispatcher.DispatchOptions & {
+ retryOptions?: RetryHandler.RetryOptions;
+ },
+ retryHandlers: RetryHandler.RetryHandlers
+ );
+}
+
+declare namespace RetryHandler {
+ export type RetryState = { counter: number; currentTimeout: number };
+
+ export type RetryContext = {
+ state: RetryState;
+ opts: Dispatcher.DispatchOptions & {
+ retryOptions?: RetryHandler.RetryOptions;
+ };
+ }
+
+ export type OnRetryCallback = (result?: Error | null) => void;
+
+ export type RetryCallback = (
+ err: Error,
+ context: {
+ state: RetryState;
+ opts: Dispatcher.DispatchOptions & {
+ retryOptions?: RetryHandler.RetryOptions;
+ };
+ },
+ callback: OnRetryCallback
+ ) => number | null;
+
+ export interface RetryOptions {
+ /**
+ * Callback to be invoked on every retry iteration.
+ * It receives the error, current state of the retry object and the options object
+ * passed when instantiating the retry handler.
+ *
+ * @type {RetryCallback}
+ * @memberof RetryOptions
+ */
+ retry?: RetryCallback;
+ /**
+ * Maximum number of retries to allow.
+ *
+ * @type {number}
+ * @memberof RetryOptions
+ * @default 5
+ */
+ maxRetries?: number;
+ /**
+ * Max number of milliseconds allow between retries
+ *
+ * @type {number}
+ * @memberof RetryOptions
+ * @default 30000
+ */
+ maxTimeout?: number;
+ /**
+ * Initial number of milliseconds to wait before retrying for the first time.
+ *
+ * @type {number}
+ * @memberof RetryOptions
+ * @default 500
+ */
+ minTimeout?: number;
+ /**
+ * Factior to multiply the timeout factor between retries.
+ *
+ * @type {number}
+ * @memberof RetryOptions
+ * @default 2
+ */
+ timeoutFactor?: number;
+ /**
+ * It enables to automatically infer timeout between retries based on the `Retry-After` header.
+ *
+ * @type {boolean}
+ * @memberof RetryOptions
+ * @default true
+ */
+ retryAfter?: boolean;
+ /**
+ * HTTP methods to retry.
+ *
+ * @type {Dispatcher.HttpMethod[]}
+ * @memberof RetryOptions
+ * @default ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],
+ */
+ methods?: Dispatcher.HttpMethod[];
+ /**
+ * Error codes to be retried. e.g. `ECONNRESET`, `ENOTFOUND`, `ETIMEDOUT`, `ECONNREFUSED`, etc.
+ *
+ * @type {string[]}
+ * @default ['ECONNRESET','ECONNREFUSED','ENOTFOUND','ENETDOWN','ENETUNREACH','EHOSTDOWN','EHOSTUNREACH','EPIPE']
+ */
+ errorCodes?: string[];
+ /**
+ * HTTP status codes to be retried.
+ *
+ * @type {number[]}
+ * @memberof RetryOptions
+ * @default [500, 502, 503, 504, 429],
+ */
+ statusCodes?: number[];
+ }
+
+ export interface RetryHandlers {
+ dispatch: Dispatcher["dispatch"];
+ handler: Dispatcher.DispatchHandlers;
+ }
+}