diff --git a/types/requestretry/index.d.ts b/types/requestretry/index.d.ts index 0c9b68fe8d..150564e60e 100644 --- a/types/requestretry/index.d.ts +++ b/types/requestretry/index.d.ts @@ -3,6 +3,7 @@ // Definitions by: Eric Byers // Andrew Throener // Aniket Patel +// Aram Elchyan // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -13,6 +14,7 @@ import http = require('http'); declare namespace requestretry { type RetryStrategy = (err: Error, response: http.IncomingMessage, body: any) => boolean; + type DelayStrategy = (err: Error, response: http.IncomingMessage, body: any) => number; interface RequestPromise extends request.Request { then: Promise["then"]; catch: Promise["catch"]; @@ -31,6 +33,7 @@ declare namespace requestretry { promiseFactory?(resolver: any): any; retryDelay?: number; retryStrategy?: RetryStrategy; + delayStrategy?: DelayStrategy; fullResponse?: boolean; } } diff --git a/types/requestretry/requestretry-tests.ts b/types/requestretry/requestretry-tests.ts index 4859ca9854..081ffe0d9a 100644 --- a/types/requestretry/requestretry-tests.ts +++ b/types/requestretry/requestretry-tests.ts @@ -81,6 +81,23 @@ request({ // Body. }); +const CustomDelayStrategy = (err: Error, response: http.IncomingMessage, body: any): number => { + // Return a number + return 100; +}; + +request({ + url: 'https://api.example.com/v1/a/b', + json: true, + // The below parameters are specific to request-retry + // (default) try 5 times + maxAttempts: 5, + // (default) wait for 5s before trying again + delayStrategy: CustomDelayStrategy, +}, (err, response, body) => { + // Body. +}); + // No options required request({ url: 'https://api.example.com/v1/a/b',