better-custom-error
Helper for creating Error subclass with bonus features.
It fully works as expected with code transpiled to ES5 from ES6 code.
It allows to pass custom data to errors and it contains features useful for logging/debugging.
Reasons to use
Usage
Full documentation available here: documentation.
yarn add better-custom-error
or npm i better-custom-error --save
import { createError } from "better-custom-error";
const MyError = createError("MyError");
const AnotherError = createError("AnotherError", MyError);
const YetAnotherError = createError("YetAnotherError", Error, options);
For options
see: Options Usage.
Imporant: creating two errors with the same name will create two different errors references anyway! Export them and
import where needed or make your errors global.
Note on TypeScript
This library is basically all about creating new types on runtime.
TypeScript is static typechecker, therefore it doesn't play perfect with this, because every error has basically the
same type, optionally differentiating on details
object shape.
See documentation for more info.
TODO
- Further memory optimization:
- create and extend one Custom Error instance
- use getters to delay some calculations from error creation to actual read place
- Ability to override Error prototype so some
better-custom-error
features will be available on native errors too extend
method for easier extending
License
MIT