npm.io
1.1.0 • Published 3 years ago

error-creator

Licence
MIT
Version
1.1.0
Deps
1
Size
10 kB
Vulns
0
Weekly
0

error-creator

Version Downloads

Create errors with dynamic parameters and i18n in mind.

Installation

# Using npm
npm install --save error-creator

# Using yarn
yarn add error-creator

Example

const ErrorCreator = require("error-creator")

const Errors = new ErrorCreator({
    NOT_AN_EVEN_NUMBER: {
        message: {
            en: "You did not enter an even number. You provided: {1}"
          , fr: "Vous n'avez pas saisi de numéro pair. Vous avez fourni: {1}"
        }

        // These static properties will be appended to the error object
        // (e.g. http status code etc)
      , status: 400
      , and: "any"
      , other: "fields"
      , you: "want"
      , to: "provide"
    }
})

const number = 41

if (number % 2 !== 0) {

    // If a language is not provided, it will automatically pick one
    console.log(Errors.NOT_AN_EVEN_NUMBER(number))
    // =>
    // { Error: You did not enter an even number. You provided: 41
    //     at ...
    //   status: 400,
    //   and: 'any',
    //   other: 'fields',
    //   you: 'want',
    //   to: 'provide' }

    // Set the language to French
    Errors.setLang("fr")

    console.log(Errors.NOT_AN_EVEN_NUMBER(number))
    // =>
    // { Error: Vous n'avez pas saisi de numéro pair. Vous avez fourni: 41
    //     at ...
    //   status: 400,
    //   and: 'any',
    //   other: 'fields',
    //   you: 'want',
    //   to: 'provide' }
}

// Add a new error
Errors.add({
    // Single language
    USER_PASS_NOT_MATCH: "Invalid credentials for username: {1}"
})

console.log(Errors.USER_PASS_NOT_MATCH("Alice"))
// Error: Invalid credentials for username: Alice
//     at ...

Get Help

There are few ways to get help:

  1. Please post questions on Stack Overflow. You can open issues with questions, as long you add a link to your Stack Overflow question.
  2. For bug reports and feature requests, open issues.

Documentation

ErrorCreator(errors)

Creates a new instance of ErrorCreator.

Params
  • Object errors: = {} An object containing the errors' information. This is passed to the add method.
setLang(lang)

Sets the preffered error language.

Params
  • String lang: A preffered language for erro messages.
Return
  • ErrorCreator The ErrorCreator instance.
add(name, err)

Adds one or more error objects.

Params
  • String|Object name: The error name. If an object, it should look like this:
    {
       USER_NOT_FOUND: {
          message: "The user was not found.",
          status: 404
       },
       ARTICLE_NOT_FOUND: {
          message: "The article was not found.",
          status: 404
       }
    }
  • Object err: The error message or object containing th message.
Return
  • ErrorCreator The ErrorCreator instance.

How to contribute

Have an idea? Found a bug? See how to contribute.

Where is this library used?

If you are using this library in one of your projects, add it in this list.

  • bloggify
  • bloggify-cli

License

MIT Bloggify

Keywords