Socket
Socket
Sign inDemoInstall

retry-axios

Package Overview
Dependencies
9
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.2.1 to 2.3.0

2

dist/index.js

@@ -1,2 +0,2 @@

var e,t=(e=require("axios"))&&"object"==typeof e&&"default"in e?e.default:e;function r(e){return e}function n(e){var t=[];if(e)return Array.isArray(e)?e:("object"==typeof e&&Object.keys(e).forEach(function(r){"number"==typeof r&&(t[r]=e[r])}),t)}function o(e){if(t.isCancel(e))return Promise.reject(e);var r=s(e)||{};if(r.currentRetryAttempt=r.currentRetryAttempt||0,r.retry=null==r.retry?3:r.retry,r.retryDelay=r.retryDelay||100,r.instance=r.instance||t,r.backoffType=r.backoffType||"exponential",r.httpMethodsToRetry=n(r.httpMethodsToRetry)||["GET","HEAD","PUT","OPTIONS","DELETE"],r.noResponseRetries=null==r.noResponseRetries?2:r.noResponseRetries,r.statusCodesToRetry=n(r.statusCodesToRetry)||[[100,199],[429,429],[500,599]],e.config=e.config||{},e.config.raxConfig=Object.assign({},r),!(r.shouldRetry||function(e){var t=e.config.raxConfig;if(!t||0===t.retry)return!1;if(!e.response&&(t.currentRetryAttempt||0)>=t.noResponseRetries)return!1;if(!e.config.method||t.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){for(var r=!1,n=0,o=t.statusCodesToRetry;n<o.length;n+=1){var s=o[n],i=e.response.status;if(i>=s[0]&&i<=s[1]){r=!0;break}}if(!r)return!1}return t.currentRetryAttempt=t.currentRetryAttempt||0,!(t.currentRetryAttempt>=t.retry)})(e))return Promise.reject(e);var o=new Promise(function(t){var n;n="linear"===r.backoffType?1e3*r.currentRetryAttempt:"static"===r.backoffType?r.retryDelay:(Math.pow(2,r.currentRetryAttempt)-1)/2*1e3,e.config.raxConfig.currentRetryAttempt+=1,setTimeout(t,n)}),i=r.onRetryAttempt?Promise.resolve(r.onRetryAttempt(e)):Promise.resolve();return Promise.resolve().then(function(){return o}).then(function(){return i}).then(function(){return r.instance.request(e.config)})}function s(e){if(e&&e.config)return e.config.raxConfig}exports.attach=function(e){return(e=e||t).interceptors.response.use(r,o)},exports.detach=function(e,r){(r=r||t).interceptors.response.eject(e)},exports.getConfig=s;
var e,t=(e=require("axios"))&&"object"==typeof e&&"default"in e?e.default:e;function r(e){return e}function n(e){var t=[];if(e)return Array.isArray(e)?e:("object"==typeof e&&Object.keys(e).forEach(function(r){"number"==typeof r&&(t[r]=e[r])}),t)}function o(e){if(t.isCancel(e))return Promise.reject(e);var r=i(e)||{};if(r.currentRetryAttempt=r.currentRetryAttempt||0,r.retry=null==r.retry?3:r.retry,r.retryDelay=r.retryDelay||100,r.instance=r.instance||t,r.backoffType=r.backoffType||"exponential",r.httpMethodsToRetry=n(r.httpMethodsToRetry)||["GET","HEAD","PUT","OPTIONS","DELETE"],r.noResponseRetries=null==r.noResponseRetries?2:r.noResponseRetries,r.statusCodesToRetry=n(r.statusCodesToRetry)||[[100,199],[429,429],[500,599]],e.config=e.config||{},e.config.raxConfig=Object.assign({},r),!(r.shouldRetry||s)(e))return Promise.reject(e);var o=new Promise(function(t){var n;n="linear"===r.backoffType?1e3*r.currentRetryAttempt:"static"===r.backoffType?r.retryDelay:(Math.pow(2,r.currentRetryAttempt)-1)/2*1e3,e.config.raxConfig.currentRetryAttempt+=1,setTimeout(t,n)}),f=r.onRetryAttempt?Promise.resolve(r.onRetryAttempt(e)):Promise.resolve();return Promise.resolve().then(function(){return o}).then(function(){return f}).then(function(){return r.instance.request(e.config)})}function s(e){var t=e.config.raxConfig;if(!t||0===t.retry)return!1;if(!e.response&&(t.currentRetryAttempt||0)>=t.noResponseRetries)return!1;if(!e.config.method||t.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){for(var r=!1,n=0,o=t.statusCodesToRetry;n<o.length;n+=1){var s=o[n],i=e.response.status;if(i>=s[0]&&i<=s[1]){r=!0;break}}if(!r)return!1}return t.currentRetryAttempt=t.currentRetryAttempt||0,!(t.currentRetryAttempt>=t.retry)}function i(e){if(e&&e.config)return e.config.raxConfig}exports.attach=function(e){return(e=e||t).interceptors.response.use(r,o)},exports.detach=function(e,r){(r=r||t).interceptors.response.eject(e)},exports.shouldRetryRequest=s,exports.getConfig=i;
//# sourceMappingURL=index.js.map

@@ -1,2 +0,2 @@

import e from"axios";function t(t){return(t=t||e).interceptors.response.use(n,s)}function r(t,r){(r=r||e).interceptors.response.eject(t)}function n(e){return e}function o(e){var t=[];if(e)return Array.isArray(e)?e:("object"==typeof e&&Object.keys(e).forEach(function(r){"number"==typeof r&&(t[r]=e[r])}),t)}function s(t){if(e.isCancel(t))return Promise.reject(t);var r=i(t)||{};if(r.currentRetryAttempt=r.currentRetryAttempt||0,r.retry=null==r.retry?3:r.retry,r.retryDelay=r.retryDelay||100,r.instance=r.instance||e,r.backoffType=r.backoffType||"exponential",r.httpMethodsToRetry=o(r.httpMethodsToRetry)||["GET","HEAD","PUT","OPTIONS","DELETE"],r.noResponseRetries=null==r.noResponseRetries?2:r.noResponseRetries,r.statusCodesToRetry=o(r.statusCodesToRetry)||[[100,199],[429,429],[500,599]],t.config=t.config||{},t.config.raxConfig=Object.assign({},r),!(r.shouldRetry||function(e){var t=e.config.raxConfig;if(!t||0===t.retry)return!1;if(!e.response&&(t.currentRetryAttempt||0)>=t.noResponseRetries)return!1;if(!e.config.method||t.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){for(var r=!1,n=0,o=t.statusCodesToRetry;n<o.length;n+=1){var s=o[n],i=e.response.status;if(i>=s[0]&&i<=s[1]){r=!0;break}}if(!r)return!1}return t.currentRetryAttempt=t.currentRetryAttempt||0,!(t.currentRetryAttempt>=t.retry)})(t))return Promise.reject(t);var n=new Promise(function(e){var n;n="linear"===r.backoffType?1e3*r.currentRetryAttempt:"static"===r.backoffType?r.retryDelay:(Math.pow(2,r.currentRetryAttempt)-1)/2*1e3,t.config.raxConfig.currentRetryAttempt+=1,setTimeout(e,n)}),s=r.onRetryAttempt?Promise.resolve(r.onRetryAttempt(t)):Promise.resolve();return Promise.resolve().then(function(){return n}).then(function(){return s}).then(function(){return r.instance.request(t.config)})}function i(e){if(e&&e.config)return e.config.raxConfig}export{t as attach,r as detach,i as getConfig};
import e from"axios";function t(t){return(t=t||e).interceptors.response.use(n,s)}function r(t,r){(r=r||e).interceptors.response.eject(t)}function n(e){return e}function o(e){var t=[];if(e)return Array.isArray(e)?e:("object"==typeof e&&Object.keys(e).forEach(function(r){"number"==typeof r&&(t[r]=e[r])}),t)}function s(t){if(e.isCancel(t))return Promise.reject(t);var r=f(t)||{};if(r.currentRetryAttempt=r.currentRetryAttempt||0,r.retry=null==r.retry?3:r.retry,r.retryDelay=r.retryDelay||100,r.instance=r.instance||e,r.backoffType=r.backoffType||"exponential",r.httpMethodsToRetry=o(r.httpMethodsToRetry)||["GET","HEAD","PUT","OPTIONS","DELETE"],r.noResponseRetries=null==r.noResponseRetries?2:r.noResponseRetries,r.statusCodesToRetry=o(r.statusCodesToRetry)||[[100,199],[429,429],[500,599]],t.config=t.config||{},t.config.raxConfig=Object.assign({},r),!(r.shouldRetry||i)(t))return Promise.reject(t);var n=new Promise(function(e){var n;n="linear"===r.backoffType?1e3*r.currentRetryAttempt:"static"===r.backoffType?r.retryDelay:(Math.pow(2,r.currentRetryAttempt)-1)/2*1e3,t.config.raxConfig.currentRetryAttempt+=1,setTimeout(e,n)}),s=r.onRetryAttempt?Promise.resolve(r.onRetryAttempt(t)):Promise.resolve();return Promise.resolve().then(function(){return n}).then(function(){return s}).then(function(){return r.instance.request(t.config)})}function i(e){var t=e.config.raxConfig;if(!t||0===t.retry)return!1;if(!e.response&&(t.currentRetryAttempt||0)>=t.noResponseRetries)return!1;if(!e.config.method||t.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){for(var r=!1,n=0,o=t.statusCodesToRetry;n<o.length;n+=1){var s=o[n],i=e.response.status;if(i>=s[0]&&i<=s[1]){r=!0;break}}if(!r)return!1}return t.currentRetryAttempt=t.currentRetryAttempt||0,!(t.currentRetryAttempt>=t.retry)}function f(e){if(e&&e.config)return e.config.raxConfig}export{t as attach,r as detach,i as shouldRetryRequest,f as getConfig};
//# sourceMappingURL=index.module.js.map

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],t):t(e.retryAxios={},e.axios)}(this,function(e,t){function r(e){return e}function n(e){var t=[];if(e)return Array.isArray(e)?e:("object"==typeof e&&Object.keys(e).forEach(function(r){"number"==typeof r&&(t[r]=e[r])}),t)}function o(e){if(t.isCancel(e))return Promise.reject(e);var r=s(e)||{};if(r.currentRetryAttempt=r.currentRetryAttempt||0,r.retry=null==r.retry?3:r.retry,r.retryDelay=r.retryDelay||100,r.instance=r.instance||t,r.backoffType=r.backoffType||"exponential",r.httpMethodsToRetry=n(r.httpMethodsToRetry)||["GET","HEAD","PUT","OPTIONS","DELETE"],r.noResponseRetries=null==r.noResponseRetries?2:r.noResponseRetries,r.statusCodesToRetry=n(r.statusCodesToRetry)||[[100,199],[429,429],[500,599]],e.config=e.config||{},e.config.raxConfig=Object.assign({},r),!(r.shouldRetry||function(e){var t=e.config.raxConfig;if(!t||0===t.retry)return!1;if(!e.response&&(t.currentRetryAttempt||0)>=t.noResponseRetries)return!1;if(!e.config.method||t.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){for(var r=!1,n=0,o=t.statusCodesToRetry;n<o.length;n+=1){var s=o[n],i=e.response.status;if(i>=s[0]&&i<=s[1]){r=!0;break}}if(!r)return!1}return t.currentRetryAttempt=t.currentRetryAttempt||0,!(t.currentRetryAttempt>=t.retry)})(e))return Promise.reject(e);var o=new Promise(function(t){var n;n="linear"===r.backoffType?1e3*r.currentRetryAttempt:"static"===r.backoffType?r.retryDelay:(Math.pow(2,r.currentRetryAttempt)-1)/2*1e3,e.config.raxConfig.currentRetryAttempt+=1,setTimeout(t,n)}),i=r.onRetryAttempt?Promise.resolve(r.onRetryAttempt(e)):Promise.resolve();return Promise.resolve().then(function(){return o}).then(function(){return i}).then(function(){return r.instance.request(e.config)})}function s(e){if(e&&e.config)return e.config.raxConfig}t=t&&t.hasOwnProperty("default")?t.default:t,e.attach=function(e){return(e=e||t).interceptors.response.use(r,o)},e.detach=function(e,r){(r=r||t).interceptors.response.eject(e)},e.getConfig=s});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],t):t(e.retryAxios={},e.axios)}(this,function(e,t){function r(e){return e}function n(e){var t=[];if(e)return Array.isArray(e)?e:("object"==typeof e&&Object.keys(e).forEach(function(r){"number"==typeof r&&(t[r]=e[r])}),t)}function o(e){if(t.isCancel(e))return Promise.reject(e);var r=i(e)||{};if(r.currentRetryAttempt=r.currentRetryAttempt||0,r.retry=null==r.retry?3:r.retry,r.retryDelay=r.retryDelay||100,r.instance=r.instance||t,r.backoffType=r.backoffType||"exponential",r.httpMethodsToRetry=n(r.httpMethodsToRetry)||["GET","HEAD","PUT","OPTIONS","DELETE"],r.noResponseRetries=null==r.noResponseRetries?2:r.noResponseRetries,r.statusCodesToRetry=n(r.statusCodesToRetry)||[[100,199],[429,429],[500,599]],e.config=e.config||{},e.config.raxConfig=Object.assign({},r),!(r.shouldRetry||s)(e))return Promise.reject(e);var o=new Promise(function(t){var n;n="linear"===r.backoffType?1e3*r.currentRetryAttempt:"static"===r.backoffType?r.retryDelay:(Math.pow(2,r.currentRetryAttempt)-1)/2*1e3,e.config.raxConfig.currentRetryAttempt+=1,setTimeout(t,n)}),f=r.onRetryAttempt?Promise.resolve(r.onRetryAttempt(e)):Promise.resolve();return Promise.resolve().then(function(){return o}).then(function(){return f}).then(function(){return r.instance.request(e.config)})}function s(e){var t=e.config.raxConfig;if(!t||0===t.retry)return!1;if(!e.response&&(t.currentRetryAttempt||0)>=t.noResponseRetries)return!1;if(!e.config.method||t.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){for(var r=!1,n=0,o=t.statusCodesToRetry;n<o.length;n+=1){var s=o[n],i=e.response.status;if(i>=s[0]&&i<=s[1]){r=!0;break}}if(!r)return!1}return t.currentRetryAttempt=t.currentRetryAttempt||0,!(t.currentRetryAttempt>=t.retry)}function i(e){if(e&&e.config)return e.config.raxConfig}t=t&&t.hasOwnProperty("default")?t.default:t,e.attach=function(e){return(e=e||t).interceptors.response.use(r,o)},e.detach=function(e,r){(r=r||t).interceptors.response.eject(e)},e.shouldRetryRequest=s,e.getConfig=i});
//# sourceMappingURL=index.umd.js.map

@@ -66,2 +66,7 @@ import { AxiosError, AxiosInstance, AxiosRequestConfig } from 'axios';

/**
* Determine based on config if we should retry the request.
* @param err The AxiosError passed to the interceptor.
*/
export declare function shouldRetryRequest(err: AxiosError): boolean;
/**
* Acquire the raxConfig object from an AxiosError if available.

@@ -68,0 +73,0 @@ * @param err The Axios error with a config object.

{
"name": "retry-axios",
"version": "2.2.1",
"version": "2.3.0",
"description": "Retry HTTP requests with Axios.",

@@ -43,15 +43,15 @@ "source": "src/index.ts",

"@babel/preset-env": "^7.4.5",
"@types/mocha": "^7.0.0",
"@types/mocha": "^8.0.0",
"@types/nock": "^10.0.3",
"@types/node": "^12.0.4",
"axios": "^0.19.0",
"axios": "^0.21.0",
"babel-plugin-transform-es2015-modules-umd": "^6.24.1",
"c8": "^7.0.0",
"gts": "^2.0.0",
"gts": "^3.0.0",
"js-green-licenses": "^2.0.0",
"microbundle": "^0.11.0",
"mocha": "^8.0.0",
"nock": "^12.0.0",
"nock": "^13.0.0",
"semantic-release": "^17.0.4",
"typescript": "~3.9.0"
"typescript": "~4.0.0"
},

@@ -58,0 +58,0 @@ "files": [

@@ -66,3 +66,3 @@ # retry-axios

// Milliseconds to delay at first. Defaults to 100.
// Milliseconds to delay at first. Defaults to 100. Only considered when backoffType is 'static'
retryDelay: 100,

@@ -135,2 +135,22 @@

If you want to add custom retry logic without duplicating too much of the built-in logic, `rax.shouldRetryRequest` will tell you if a request would normally be retried:
```js
const res = await axios({
url: 'https://test.local',
raxConfig: {
// Override the decision making process on if you should retry
shouldRetry: err => {
const cfg = rax.getConfig(err);
if (cfg.currentRetryAttempt >= cfg.retry) return false // ensure max retries is always respected
// Always retry this status text, regardless of code or request type
if (err.response.statusText.includes('Try again')) return true
// Handle the request based on your other config options, e.g. `statusCodesToRetry`
return rax.shouldRetryRequest(err)
}
}
});
```
## How it works

@@ -137,0 +157,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc