https://github.com/h2non/is-fail
node.js/io.js package implementing multiple strategies to check if an HTTP request was failed
https://github.com/h2non/is-fail
Last synced: 5 months ago
JSON representation
node.js/io.js package implementing multiple strategies to check if an HTTP request was failed
- Host: GitHub
- URL: https://github.com/h2non/is-fail
- Owner: h2non
- Created: 2015-07-19T19:21:56.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-09-04T20:05:43.000Z (almost 10 years ago)
- Last Synced: 2024-10-18T11:25:14.789Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 156 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# is-fail [](https://travis-ci.org/h2non/is-fail) [](https://www.npmjs.org/package/is-fail)
Tiny [node.js](http://nodejs.org)/[io.js](http://iojs.org) package implementing multiple strategies to verify if an HTTP request was failed, checking both error and HTTP response code.
Useful to combine as part of a retry/backoff logic. It also support to plug in additional strategies.
## Installation
```
npm install is-fail --save
```## Usage
Simple usage as part of a retry mechanism
```js
const http = require('http')
const isFail = require('is-fail')()function doRequest() {
http.request('http://inconsistent-server', function (res) {
if (isFail(null, res)) {
return doRequest() // retry!
}
console.error('Response received')
})
.on('error', function (err) {
if (isFail(err)) {
return doRequest() // retry!
}
console.error('The request failed')
})
}doRequest()
```Plug in additional strategies
```js
const http = require('http')
const isFail = require('is-fail')function notFoundStrategy(err, res) {
return res.statusCode === 404
}const checkFail = isFail([ notFoundStrategy ])
http.request('http://inconsistent-server', function (res) {
if (checkFail(null, res)) {
console.log('Failed request!')
}
})
```## API
#### isFail([ strategies ]) `=>` Function(err, res) `=>` Boolean
#### isFail.strategies `=` Array[ Strategy ]
#### isFail.check(strategies, err, res) `=>` Boolean
#### isFail.errors `=` Array[ ErrorStrategy ]
#### isFail.status `=` Array[ StatusStrategy ]
## License
MIT - Tomas Aparicio