Nocturnal Prancing Mosquito

    error-utils

    2.0.0 • Public • Published

    Js Error Utils

    Features

    • make error class
    • chain errors
    • convert error to object
    • convert object to error

    Installation

    In your bash

    npm i -S error-utils

    In your code

    const utils = require('error-utils')

    API

    makeError

    func(name) => Error

    func(BaseError, name) => Error

    func(Error) => Error

    Examples:

    // MyError is subclass of Error
    const MyError = makeError('MyError')
     
    // MyError is subclass of TypeError
    const MyError = makeError('MyError', TypeError)
     
    // MyError is subclass of SyntaxError with customized constructor
    const MyError = makeError(class MyError extends SyntaxError {
      constructor (message, code) {
        super(message)
        this.code = code
      }
    })

    causedBy

    func(error, cause) => error

    Examples:

    const innerError1 = new InnerError('inner error 1')
    const innerError2 = new InnerError('inner error 2')
    const outerError = new OuterError('outer error')
     
    causedBy(innerError2, innerError1)
    causedBy(outterError, innerError2)
     
    // outerError.cause === innerError2
    // outerError.rootCause === innerError1
    // outerError.ownStack is the original stack of outerError
    // outerError.stack is with stacks of innerError2 and innerError1 appended

    errorToObject

    func(error) => object

    const error = new MyError('my error')
    const object = errorToObject(error)
     
    // object has name, message, stack, ownStack fields from error
    // object has all other direct fields of error
    // object.cause and object.rootError are parsed from error.cause and error.rootError by errorToObject

    objectToError

    func(object, [ErrorClass]) => error

    const error = new MyError('my error')
    const object = errorToObject(error)
    const newError = objectToError(object, MyError)
     
    // newError is instance of MyError
    // newError has name, message, stack, ownStack fields from object
    // newError has all other direct fields of object
    // newError.cause and newError.rootError are parsed from object.cause and object.rootError by objectToError
    // NOTE: newError is no longer instance of MyError

    License

    MIT

    Keywords

    none

    Install

    npm i error-utils

    DownloadsWeekly Downloads

    1

    Version

    2.0.0

    License

    MIT

    Last publish

    Collaborators

    • zhaoyao91