Skip to content

magic/error

Repository files navigation

@magic/error

throw errors with custom code/name.

html-docs

NPM version Linux Build Status Windows Build Status Coverage Status Known Vulnerabilities

installation:

npm install @magic/error

usage:

import error from '@magic/error'

err = error('message', 'name')
// Error { message: 'message', name: 'name', code: 'E_NAME', type: 'E', msg: 'message' }

err = error('message')
// Error { message: 'message', name: 'Unknown', code: 'E_UNKNOWN', type: 'E', msg: 'message' }

err = error(new Error('message'))
// Error { message: 'message', name: 'Error', code: 'E_UNKNOWN', type: 'E', msg: 'message' }

err = error('message', 'name with spaces')
// Error {
//  message: 'message',
//  name: 'name with spaces',
//  code: 'E_NAME_WITH_SPACES',
//  type: 'E',
//  msg: 'message',
// }

err = error(['message', 'name', 'T'])
// Error { message: 'message', name: 'name', code: 'T_NAME', type: T, msg: 'message' }

err = error(['message'], 'name', 'T')
// Error { message: 'message', name: 'name', code: 'T_NAME', type: T, msg: 'message' }

err = error(['message', 'name1'], 'name2', 'T')
// Error { message: 'message', name: 'name1', code: 'T_NAME1', type: T, msg: 'message' }

error types

errors can have types

// E is the default type
err = error('message', 'name')
// Error { message: 'message', name: 'name', code: 'E_NAME', type: 'E', msg: 'message' }

// warnings:
err = error('message', 'name', 'W')
// Error { message: 'message', name: 'name', code: 'W_NAME', type: 'W', msg: 'message' }

// debug:
err = error('message', 'name', 'D')
// Error { message: 'message', name: 'name', code: 'D_NAME', type: 'D', msg: 'message' }
changelog
0.0.1

first commit

0.0.2

  • errors can be passed as first argument
  • error.name is unchanged, error.code gets transformed to start with E_ and be uppercased.
  • error.code for passed in errors is E_UNKNOWN.

0.0.3

  • error type (third fn argument) can now be set, default is E to keep output the same.
  • error name (second fn argument) can now be a string with spaces. e.code is e.type + e.name, but UPPER_SNAKE_CASED.
  • error stack cleanup improved.

0.0.4

  • err.msg is no === err.message
  • first argument can be an array of [message, name, type]

0.0.5

  • fix replacement of : in error name and error message to only replace the ones we want to replace

0.0.6

bump required node version to 14.2.0

0.0.7

update depdendencies

0.0.8

  • bump required node version to 14.15.4
  • update dependencies
0.0.9

update dependencies

0.0.10

update @magic/types to avoid circular dependency

0.0.11
  • use @magic/types internally
  • update dependencies
0.0.12

update dependencies

0.0.13

update dependencies

0.0.14

update dependencies

0.0.15

update dependencies

0.0.16

update dependencies

0.0.17

update dependencies

0.0.18 - unreleased

...

About

create errors with custom name and message

Resources

License

Stars

Watchers

Forks

Packages

No packages published