phin-retry
The ultra-lightweight Node.js HTTP client.
This is a wrapper around Phin that adds support for retry & looks like request-promise.
Install
npm install phin-retry
Usage
const request = require('phin-retry');
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
});
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
.
API
Defaults
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 |
Options
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 |