axios-retry
Axios plugin that intercepts failed requests and retries them whenever possible.
Installation
npm install axios-retry
Usage
// CommonJS// const axiosRetry = require('axios-retry'); // ES6; ; axios // The first request fails and the second returns 'ok' ; // Exponential back-off retry delay between requests; // Custom retry delay; // Works with custom axios instancesconst client = axios;; client // The first request fails and the second returns 'ok' ; // Allows request-specific configurationclient ;
Note: the plugin interprets the request timeout as a global value, so it is not used for each retry but for the whole request lifecycle.
Options
Name | Type | Default | Description |
---|---|---|---|
retries | Number |
3 | The number of times to retry before failing |
retryCondition | Function |
isNetworkOrIdempotentRequestError |
A callback to further control if a request should be retried. By default, it retries if it is a network error or a 5xx error on an idempotent request (GET, HEAD, OPTIONS, PUT or DELETE). |
retryDelay | Function |
0 |
A callback to further control the delay between retried requests. By default there is no delay between retries. Another option is exponentialDelay (Exponential Backoff). The function is passed retryCount and error . |
Testing
Clone the repository and execute:
npm test
Contribute
- Fork it:
git clone https://github.com/softonic/axios-retry.git
- Create your feature branch:
git checkout -b feature/my-new-feature
- Commit your changes:
git commit -am 'Added some feature'
- Check the build:
npm run build
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D