Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/muffoi/error-editor
- Owner: muffoi
- License: bsd-3-clause
- Created: 2023-08-01T07:22:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-11T21:37:16.000Z (over 1 year ago)
- Last Synced: 2023-08-12T04:33:45.817Z (over 1 year ago)
- Topics: edit, error-handling, try-catch
- Language: JavaScript
- Homepage: https://npmjs.com/package/error-editor
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)
fromv1.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)
fromv1.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
fromv1.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
fromv1.0.0
Error message used to construct the error. *Editable.*
CaughtError.constr
fromv1.0.0
Error constructor used to construct the error. *Editable.*
CaughtError.throw()
fromv1.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
fromv1.0.0
Contains `error-editor` package version info. *Read-only.*