包详细信息

combine-errors

Combine errors into one

combine, errors, compose, error

自述文件

combine-errors

Simple, dependency-free way to combine multiple errors into one.

This is useful for handling multiple asynchronous errors, where you want to catch all the errors and combine them to return just a single error.

Features

  • error instanceof Error === true
  • composable: error([error([err1, err2]), err3])
  • stack and message are combined in a nice way
  • array-like object, so you can access the original errors by looping over the error
  • If you just have one error, it looks exactly like raw error meaning, error(err).message === err.message && error(err).stack === err.stack
  • zero dependencies
  • should work in the browser, though I haven't tested it yet

Installation

npm install combine-errors

Usage

var error = require('combine-errors')
var err = error([
  new Error('boom'),
  new Error('kablam')
])
throw err
/*
=>
Error: boom
    at repl:2:1
    at REPLServer.defaultEval (repl.js:262:27)
    at bound (domain.js:287:14)
    at REPLServer.runBound [as eval] (domain.js:300:12)
    at REPLServer.<anonymous> (repl.js:431:12)
    at emitOne (events.js:95:20)
    at REPLServer.emit (events.js:182:7)
    at REPLServer.Interface._onLine (readline.js:211:10)
    at REPLServer.Interface._line (readline.js:550:8)
    at REPLServer.Interface._ttyWrite (readline.js:827:14)

Error: kablam
    at repl:3:1
    at REPLServer.defaultEval (repl.js:262:27)
    at bound (domain.js:287:14)
    at REPLServer.runBound [as eval] (domain.js:300:12)
    at REPLServer.<anonymous> (repl.js:431:12)
    at emitOne (events.js:95:20)
    at REPLServer.emit (events.js:182:7)
    at REPLServer.Interface._onLine (readline.js:211:10)
    at REPLServer.Interface._line (readline.js:550:8)
    at REPLServer.Interface._ttyWrite (readline.js:827:14)
*/

License

MIT

更新日志

3.0.3 / 2016-06-28

  • use ES5 syntax for browser support

3.0.2 / 2016-06-07

  • fix combining repeated errors and handle the stack better

3.0.1 / 2016-04-24

  • use custom-error-instance

3.0.0 / 2016-03-25

  • extend with a custom error

2.0.0 / 2016-03-23

  • use a semicolon to separate errors :-X

1.0.1 / 2016-03-11

  • quick tests and fix error.message

0.0.1 / 2010-01-03

  • Initial release