errorist run-tests.yml
A JavaScript library that provides traceable errors ✨🕵️
One who encourages and propagates error.
The package for errorist is available on the public npm registry.
- With
yarn:
yarn add errorist.js
- With
npm:
npm install --save errorist.js
The library is designed to enforce a better context to an error by:
- Keeping track of an error root causes and detect them at ease;
- Forcing the usage of error codes;
- Encouraging succint, precise error messages;
- Patching errors with related data.
class SomeError extends Errorist { constructor(message) { super(message || "some human readable message"); this.code = "some-error-code"; this.name = "SomeError"; } } // Alternatively: const SomeError = Errorist.extend({ message: "some human readable message", code: "some-error-code", name: "SomeError" })
try { // ... } catch(e) { throw SomeCustomError.create({ causes: e, data: { foo: "some data", bar: "some other data" } }) }
const doSomething = () => { throw SomeError.create({ causes: [new CauseOneError(), new CauseTwoError()] }); }; try { doSomething(); } catch (e) { const err = Errorist.wrap(e); err.is(SomeError) // => SomeError [Errorist] err.isCausedBy(SomeError) // => null err.isCausedBy(CauseOneError) // => CauseOneError [Errorist] err.is(CauseOneError) // => CauseOneError [Errorist] }
const [err, thing] = await errorist.try(createThing); if (err?.is(ThingAlreadyCreatedError)) { // ... }
- Antonio Schönmann (@schonmann)