npm.io
0.2.7 β€’ Published 9 years ago

err1st

Licence
MIT
Version
0.2.7
Deps
0
Vulns
0
Weekly
0

Err1st

Custom Error object

NPM version Build Status

We hate errors, but we can not live without them.

Example

Use err1st as an standard error object

Err = require 'err1st'
err = new Err('SOMETHING_WRONG')
throw err

Customize the error message

Err.meta
  SOMETHING_WRONG:
    status: 400
    code: 100
    message: (name) -> "something wrong, #{name}"

err = new Err 'SOMETHING_WRONG', 'Alice'
throw err  ==>  Err1st: "something wrong, Alice" ....

# With i18n locales
Err.localeMeta 'emoji',
  SOMETHING_WRONG: (name) -> "πŸ™…, #{name}"
  ...

Err.localeMeta 'en',
  SOMETHING_WRONG: (name) -> "something wrong, #{name}"

err = new Err 'SOMETHING_WRONG', 'Bob'
console.log err.message  ==>  "πŸ™…, Bob"
console.log err.locale('en').message  ==>  "something wrong, #{name}"

Combine meta and locales together

Err.meta
  completed:
    status: 400
    code: 100
    locales:
      en: 'English'
      zh: 'δΈ­ζ–‡'
  flatten: [400100, {  # Treat keys of object as language, except 'code', 'status', 'locales'
    en: 'English',
    zh: 'δΈ­ζ–‡'
  }]
  useFunction: [400100, {
    en: -> 'English'
    zh: -> 'δΈ­ζ–‡'
  }]

ChangeLog

0.2.7

  • Support provide customized properties on meta #4

0.2.6

  • Support auto detect locale keys when use meta function

0.2.0

  • Remove handler, parse the messages by the Err object itself.

0.1.3

  • keep the status and code of original error object

0.1.2

  • use 'DNA' to identify the same error instance

0.1.1

  • err.code is equal to err.toCode() now
  • handler.validate now support directly set a i18n dict.

Licence

MIT