The ultra-lightweight Node.js HTTP client
npm install phin-retryThe ultra-lightweight Node.js HTTP client.
> This is a wrapper around Phin that adds support for retry & looks like request-promise.
``shell`
npm install phin-retry
`javascript
const request = require('phin-retry');
// should be used in async context
const response = await request.get('https://jsonplaceholder.typicode.com/posts/1');
await request.post({
url: 'http://localhost:9393/api/post',
body: { msg: 'input' },
retry: 3,
delay: 500
});
// custom retry, error & delay strategy
const response = await request.delete({
url: 'http://localhost:9393/api/delete',
auth: {
user: 'name',
pass: 'secret'
},
errorStrategy: ({response, error, options}) => {
if (error) return true;
if (response.statusCode >= 400) {
return false;
}
return true;
},
retryStrategy: ({response, error, options}) => {
if (error) return true;
if (options.method === 'POST') return false;
if (response.statusCode >=200 && response.StatusCode < 300) {
return false;
}
return true;
},
delayStrategy: ({response, error, options, delay}) => {
if (error) return 5000;
return 2000;
},
});
`
* It supports get, post, put, delete, patch HTTP methods.
* By default, this library will retry once on failure (StatusCode >= 500 & network errors) with a delay of 100 or 1000 milliseconds. Override this behavior with custom retry strategy function.
* Responses with status codes < 200 & >= 300 are thrown as errors. Override this behavior with custom error strategy function.
* All options from phin are supported. Refer Phin for more usage examples.
* Access underlying phin library through request.phin.
Access default options through request.defaults.
| Option | Type | Description |
| ---------------- | -------- | ---------------------------------- |
| retry | number | max no of times to retry (1) |delay
| | number | delay between retries (100ms) |networkErrorDelay
| | number | delay for network errors (1000ms) |retryStrategy
| | function | default retry strategy function |delayStrategy
| | function | default delay strategy function |errorStrategy
| | function | default error strategy function |
It supports all options from phin, refer Phin for more details.
| Method | Type | Description |
| ---------------- | -------- | ------------------------------- |
| url | string | request url |qs
| | object | query parameters |auth
| | object | authentication object |headers
| | object | headers object |retry
| | number | max no of times to retry |delay
| | number | delay between retries |body
| | any | equivalent to data in phin |fullResponse
| | boolean | returns full phin response |retryStrategy
| | function | custom retry strategy function |delayStrategy
| | function | custom delay strategy function |errorStrategy` | function | custom error strategy function |
|