@nhz.io/capture
Capture errors from various sources and forward to reporter
Available auto-wrappers
- Functions
- Callbacks
- Promises
- Event Emitters
Install
npm i -S @nhz.io/capture
Usage
Init all captures
const $capture = require('@nhz.io/capture')(err => {
console.log('Reporting error', err)
})
Init captures selectively
const {prepare, init} = require('@nhz.io/capture')
const $ = prepare(err => console.log('Reporting error', err))
/** `nothing` is advised to have first (fast fail) */
const $capture = init($.nothing, $.error, $.func)
Capture and report an error explicitly
$capture(new Error('Raw Error'))
try..catch
and expect a callback
Wrap function with const func = $capture((...args) => {
console.log('Called with args:', ...args)
throw new Error('Thrown from function')
})
func()
func(new Error('Error for callback'))
.catch
with reporter)
Wrap promise ($capture(
Promise.reject(new Error('Rejected from promise'))
).catch(err => console.log('Caught outside of promise:', err))
error
listener)
Wrap EventEmitter instance (reporter as const ee = $capture(new EventEmitter())
ee.emit('error', new Error('Emitted error'))