handle-rejection
Version:
š Handle unhandled rejections
92 lines (75 loc) ⢠2.87 kB
Markdown
# handle-rejection [](https://www.npmjs.com/package/handle-rejection) [](https://github.com/omrilotan/mono/tree/master/packages/handle-rejection)
## š Handle unhandled rejections
### Built in single handlers
```js
require('handle-rejection').console(); // console.error(error)
```
| Name | Details
| - | -
| console | console.error
| exit | process.exit
| throw | throws error
| collect | Prints all errors before process exists
### Combine handlers
```js
require('handle-rejection')(
'console',
'collect'
);
```
> This one is a good combination for long test suits (see below) ā
### Custom handlers
```js
const errobj = require('errobj');
require('handle-rejection')(
error => fetch(
'/report-error',
{
method: 'POST',
body: JSON.stringify(errobj(error))
}
)
);
```
### Combined handlers: built in and custom
```js
require('handle-rejection')(
error => Raven.captureException(error) // custom
'exit', // built in
);
```
---
> ā Example for a combination of "console" and "collect" in a testing environment
```
> mocha
some function
ā Should be okay
TypeError: Cannot read property 'ok' of undefined
at ok (/workspace/package/spec.js:21:11)
at tryCatch (/workspace/package/node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (/workspace/package/node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.(anonymous function) [as next] (/workspace/package/node_modules/regenerator-runtime/runtime.js:97:21)
at asyncGeneratorStep (/workspace/package/spec.js:14:103)
at _next (/workspace/package/spec.js:16:194)
at process._tickCallback (internal/process/next_tick.js:68:7)
some other function
ā Should success
ā Should also success
ā Should really work
another bulk of tests
ā Should be fine
ā Should pass the test
6 passing (110ms)
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®
ā Unhandled Rejection Summary ā
ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ
āļø Rejection 1:
TypeError: Cannot read property 'ok' of undefined
at ok (/workspace/package/spec.js:21:11)
at tryCatch (/workspace/package/node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (/workspace/package/node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.(anonymous function) [as next] (/workspace/package/node_modules/regenerator-runtime/runtime.js:97:21)
at asyncGeneratorStep (/workspace/package/spec.js:14:103)
at _next (/workspace/package/spec.js:16:194)
at process._tickCallback (internal/process/next_tick.js:68:7)
```