Now Playing Mario

    @andrewscwei/super-error
    TypeScript icon, indicating that this package has built-in type declarations

    2.3.0 • Public • Published

    node-super-error npm CI CD

    A serializable and extendable Node.js Error with optional code, info and cause properties.

    import SuperError from '@andrewscwei/super-error'
    
    const cause = new Error('I am the cause')
    const error = new SuperError('I am the error', 'error-code', { some: 'info' }, cause)
    
    console.log(error.name) // 'SuperError'
    console.log(error.code) // 'error-code'
    console.log(error.info) // { some: 'info' }
    console.log(error.cause) // cause
    
    const serialized = SuperError.serialize(error) // { 'name': 'SuperError', 'code': 'error-code', 'info': { 'some': 'info' }, 'cause': { 'name': 'Error', 'message': 'I am the cause' }, 'stack': <error_stack> }
    const deserialized = SuperError.deserialize(serialized) // A `SuperError` instance equivalent to the initially created `error`.

    API

    Class: SuperError

    A serializable and extendable Error with optional code, info and cause properties.

    Property: {unknown} cause

    An arbitrary cause of this error.

    Property: {string} code

    An arbitrary error code.

    Property: {object} info

    A plain object containing arbitrary info.

    Method: SuperError.serialize(error)

    Serializes any error into a plain object representing a SuperError.

    • @param value: unknown — Any error.
    • @returns SuperErrorObject — A plain object representing a SuperError.

    Method: SuperError.deserialize(value)

    Deserializes any value to a SuperError instance. SuperErrors are passed through, and Errors are converted to SuperErrors. Plain objects are deserialized to match their keys to respective SuperError properties. Strings are wrapped as the message of a SuperError and numbers are wrapped as the code of a SuperError. Everything else are wrapped as the cause of a SuperError.

    • @param value: unknown — Any value.
    • @returns SuperError — The deserialized SuperError.

    Method: SuperError.from(value)

    This method is an alias of SuperError.deserialize(value).

    Usage

    # Install dependencies
    $ npm install
    
    # Build module
    $ npm run build
    
    # Run tests against src
    $ npm run test:ts
    
    # Run tests against src for specific file patterns (relative to /src)
    $ npm run test:ts --files="foo.ts"
    
    # Run tests again built files
    $ npm test
    
    # Run tests again built files for specific file patterns (relative to /build)
    $ npm test --files="foo.js"

    Install

    npm i @andrewscwei/super-error

    DownloadsWeekly Downloads

    206

    Version

    2.3.0

    License

    MIT

    Unpacked Size

    36.8 kB

    Total Files

    6

    Last publish

    Collaborators

    • andrewscwei