# errorable

> errorable

Latest version **0.6.0** (published 2019-12-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install errorable
pnpm add errorable
yarn add errorable
bun add errorable
```

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.6.0 |
| Published | 2019-12-20 |
| First published | 2016-01-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=10.0.0 |
| Dependencies | 0 |
| Unpacked size | 19.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | calidion |
| Maintainers | calidion, yanceywang |
| Keywords | error, typescript |

## Links

- npm: https://www.npmjs.com/package/errorable
- npm.io page: https://npm.io/package/errorable

## Alternatives

- [@sentry/react-native](https://npm.io/package/@sentry/react-native.md) — 2.6M weekly downloads
- [@ardatan/aggregate-error](https://npm.io/package/@ardatan/aggregate-error.md) — 708.1K weekly downloads
- [custom-error-generator](https://npm.io/package/custom-error-generator.md) — 2.0K weekly downloads
- [@technik-sde/prosemirror-recreate-transform](https://npm.io/package/@technik-sde/prosemirror-recreate-transform.md) — 1.5K weekly downloads
- [@suchipi/error-utils](https://npm.io/package/@suchipi/error-utils.md) — 78 weekly downloads

## Recent versions

- 0.6.0 (latest) — 2019-12-20
- 0.5.1 — 2019-12-19
- 0.5.0 — 2019-12-19
- 0.4.0 — 2016-07-10
- 0.3.1 — 2016-04-15
- 0.3.0 — 2016-04-15
- 0.2.1 — 2016-03-08
- 0.2.0 — 2016-02-03
- 0.1.3 — 2016-01-25
- 0.1.2 — 2016-01-20
- 0.1.1 — 2016-01-20
- 0.1.0 — 2016-01-19

## README

# Errorable

[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage percentage][coveralls-image]][coveralls-url]

Create javascript errors in a smart & simple way.

# Usage

## Defines an IErrorOptions object

> JSON files are totally ok for ease of maintance.

```ts
import { IErrorOptions } from "errorable";

const json: IErrorOptions = {
  Hello: {
    code: 100,
    messages: {}
  },
  I: {
    Love: {
      You: {
        code: 1,
        messages: {
          "en-US": "I Love U!",
          "zh-CN": "我爱你！"
        }
      }
    }
  },
  Me: {
    alias: "I"
  }
};
```

## Generate errors

```ts
import { Generator } from "errorable";

const errors: any = Generator.generate(json);

// Got three errors:
// errors.ILoveYou
// errors.MeLoveYou
// errors.Hello
```

or

```ts
import { Generator } from "errorable";
const errors: any = Generator.generate(json, true);

// Got three errors:
// errors.I_LOVE_YOU
// errors.ME_LOVE_YOU
// errors.HELLO
```

## Create and throw localized errors

```ts
const { ILoveYou, Hello } = errors;
throw new ILoveYou("zh-CN");
throw new Hello("en-US");
```

## Load from or save to files

```ts
const jsonFilename = path.resolve(__dirname, "./tmp.json");

// Saving json to files
Generator.save(jsonFilename, json);

// Loading json from files
const newJson = Generator.load(jsonFilename);

// json equals newJson
expect(json).toEqual(newJson);
```

# License

MIT © [calidion](https://calidion.github.io)

[npm-image]: https://badge.fury.io/js/errorable.svg
[npm-url]: https://npmjs.org/package/errorable
[travis-image]: https://travis-ci.org/calidion/errorable.svg
[travis-url]: https://travis-ci.org/calidion/errorable
[daviddm-image]: https://david-dm.org/calidion/errorable.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/calidion/errorable
[coveralls-image]: https://coveralls.io/repos/calidion/errorable/badge.svg?branch=master&service=github
[coveralls-url]: https://coveralls.io/github/calidion/errorable?branch=master

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