Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/muffoi/error-editor

Catches errors, allows edits of them and throws errors again.
https://github.com/muffoi/error-editor

edit error-handling try-catch

Last synced: 3 days ago
JSON representation

Catches errors, allows edits of them and throws errors again.

Awesome Lists containing this project

README

        

# error-editor ![NPM Package Version](https://img.shields.io/npm/v/error-editor?style=flat-square&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Ferror-editor)
Error-Editor is a zero-dependency module that catches errors from functions and promises, allows edits of errors, and throws caught errors again.
![License](https://img.shields.io/github/license/muffoi/error-editor)

Installation

Through NPM:
```bash
npm install error-editor
```

Usage

Require with CommonJS:
```javascript
const errorEditor = require("error-editor");
```
Or with ES6 `import`:
```javascript
import * as errorEditor from "error-editor";
```

Documentation

- [`errorEditor.catchError()`](#ee-ce)
- [`errorEditor.catchErrorSync()`](#ee-ces)
- [class `errorEditor.CaughtError`](#ce)
- [`CaughtError` constructor](#ce-const)
- [`CaughtError.message`](#ce-msg)
- [`CaughtError.constr`](#ce-constr)
- [`CaughtError.throw()`](#ce-throw)
- [`errorEditor.version`](#ee-ver)


errorEditor.catchError(value, ...params) from v1.0.0

**Parameters:**
- `value: Function|Promise|PromiseLike` - A *function* or a *promise* to catch error from.
- `params: any[]` - Parameters to pass into `value` when called (if `value` is a *function*). *Optional.*

Catches an error from `value` parameter and returns a *promise* that resolves to it's [`CaughtError`](#ce) form, if no error occurs, *promise* resolves to `value`'s return/resolve value.
If the `value` argument is not a function or a thenable, a `TypeError` will be thrown.

***Note:** `throw` statements that are not called with, and `Promise` rejects with something else than an `Error` or its child are considered as `Error` object with `message` set to that value.*

**Usage:**
```javascript
let foo = async (x = "world") => `Hello, ${x}!`;

let value = await errorEditor.catchError(foo);
value; // "Hello, world!"

let bar = (x = "world") => `Hello, ${x}!`;

let value2 = await errorEditor.catchError(foo, "user");
value2; // "Hello, user!"

let baz = Promise.reject("Error appeared!");

let err = await errorEditor.catchError(baz);
err; // CaughtError {constr: Error, message: "Error appeared!"}
```


errorEditor.catchErrorSync(value, ...params) from v1.0.0

**Parameters:**
- `value: Function` - A *function* to catch error from. **Warning: Async functions not supported.**
- `params: any[]` - Parameters to pass into `value` when called. *Optional.*

Catches an error from `value` parameter and returns it's [`CaughtError`](#ce) form, if no error occurs, returns `value`'s return value. *[`errorEditor.catchError()`](#ee-ce)'s sync version.*
If the `value` argument is not a function, a `TypeError` will be thrown.
**Usage:**
```javascript
let foo = (x = "world") => `Hello, ${x}!`;

let value = errorEditor.catchErrorSync(foo);
value; // "Hello, world!"

let bar = (x = "world") => `Hello, ${x}!`;

let value2 = errorEditor.catchErrorSync(foo, "user");
value2; // "Hello, user!"

let baz = () => {
throw new Error("Error appeared!");
};

let err = errorEditor.catchErrorSync(baz);
err; // CaughtError {constr: Error, message: "Error appeared!"}
```

class errorEditor.CaughtError from v1.0.0


class constructor

**Parameters:**
- `message: string|void` - Error's `message` property. *Defaults to `""` (empty string).*
- `constr: NewableFunction|void` - Error's constructor. *Defaults to `Error`.*

If constructing new `constr` throws an error, the `Error` constructor will be saved to object.


CaughtError.message from v1.0.0

Error message used to construct the error. *Editable.*


CaughtError.constr from v1.0.0

Error constructor used to construct the error. *Editable.*


CaughtError.throw() from v1.0.0

Throws an error based on instance's properties. The `message` property will be stringified.
If constructing new `constr` throws an error, the `Error` constructor will be used.


errorEditor.version from v1.0.0

Contains `error-editor` package version info. *Read-only.*