@nhz.io/capture

1.0.4 • Public • Published

@nhz.io/capture

NPM Version Travis Build Coveralls Bithound Status License

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'))

Wrap function with try..catch and expect a callback

const func = $capture((...args) => {
    console.log('Called with args:', ...args)

    throw new Error('Thrown from function')
})

func() 
func(new Error('Error for callback'))

Wrap promise (.catch with reporter)

$capture(
    Promise.reject(new Error('Rejected from promise'))
).catch(err => console.log('Caught outside of promise:', err))

Wrap EventEmitter instance (reporter as error listener)

const ee = $capture(new EventEmitter())
ee.emit('error', new Error('Emitted error'))

License MIT

Version 1.0.4

Package Sidebar

Install

npm i @nhz.io/capture

Weekly Downloads

4

Version

1.0.4

License

MIT

Last publish

Collaborators

  • ishi.ruy