Skip to content

Latest commit

 

History

History
68 lines (55 loc) · 2.19 KB

README.md

File metadata and controls

68 lines (55 loc) · 2.19 KB

axios-retry-tiny

CircleCI npm-veriosn npm-dt

A tiny interceptor for axios to retry request

Install

npm i axios-retry-tiny --save
# or use yarn
yarn add axios-retry-tiny

Use

const axios = require('axios');
const artiny = require('axios-retry-tiny');
artiny(axios);

(async () => {
  try {
    await axios({
      url: 'https://google.com',
      method: 'get',
      retry: 5,
      retryDelay: 100,
      retryCode: ['ECONNABORTED', 'ETIMEDOUT', 500],
      retryBeforeFn: (e) => {
        console.log(`retry #${e.config.__retryCount}: ${e.config.url} : errCode: ${e.code || (e.response && e.response.status)}`);
      }
    });
  } catch (error) {
    console.log(error);
  }
})();

Option

option type default desc
retry number 3 times to retry
retryDelay number 50 ms time to delay retry
retryCode [number, string] all error code the match axios error code to retry
retryBeforeFn function(config) the function before retry, can get axios config

retryCode list

code type desc
'ECONNABORTED' string timeout
'ETIMEDOUT' string timeout
'ENOTFOUND' string server not found
'ENETUNREACH' string not reach
4** number client error
5** number server error

Thinks

Happy to thinks

License

Apache-2.0