Skip to content

💥 Create errors with dynamic parameters and i18n in mind.

License

Notifications You must be signed in to change notification settings

Bloggify/error-creator

Repository files navigation

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

About

💥 Create errors with dynamic parameters and i18n in mind.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •