# error-creator

> Create errors with dynamic parameters and i18n in mind.

Latest version **1.1.0** (published 2023-02-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install error-creator
pnpm add error-creator
yarn add error-creator
bun add error-creator
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2023-02-12 |
| First published | 2017-08-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 10.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Bloggify |
| Maintainers | ionicabizau |
| Keywords | cute, error, create, errors, with, in, mind |

## Links

- npm: https://www.npmjs.com/package/error-creator
- Repository: https://github.com/Bloggify/error-creator
- Homepage: https://github.com/Bloggify/error-creator#readme
- Issues: https://github.com/Bloggify/error-creator/issues
- npm.io page: https://npm.io/package/error-creator

## Dependencies (1)

- [iterate-object](https://npm.io/package/iterate-object.md) ^1.3.4

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@inrupt/eslint-config-base](https://npm.io/package/@inrupt/eslint-config-base.md) — 4.5K weekly downloads

## Recent versions

- 1.1.0 (latest) — 2023-02-12
- 1.0.2 — 2020-08-09
- 1.0.1 — 2019-05-01
- 1.0.0 — 2017-08-20

## README

<!-- Please do not edit this file. Edit the `blah` field in the `package.json` instead. If in doubt, open an issue. -->


















# error-creator

 [![Version](https://img.shields.io/npm/v/error-creator.svg)](https://www.npmjs.com/package/error-creator) [![Downloads](https://img.shields.io/npm/dt/error-creator.svg)](https://www.npmjs.com/package/error-creator)







> Create errors with dynamic parameters and i18n in mind.

















## :cloud: Installation

```sh
# Using npm
npm install --save error-creator

# Using yarn
yarn add error-creator
```













## :clipboard: Example



```js
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 ...
```











## :question: Get Help

There are few ways to get help:



 1. Please [post questions on Stack Overflow](https://stackoverflow.com/questions/ask). 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. :bug:





## :memo: 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:
   ```js
   {
      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.














## :yum: How to contribute
Have an idea? Found a bug? See [how to contribute][contributing].
















## :dizzy: Where is this library used?
If you are using this library in one of your projects, add it in this list. :sparkles:

 - `bloggify`
 - `bloggify-cli`











## :scroll: License

[MIT][license] © [Bloggify][website]






[license]: /LICENSE
[website]: https://bloggify.org
[contributing]: /CONTRIBUTING.md
[docs]: /DOCUMENTATION.md

---
_Source: https://npm.io/package/error-creator · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
