@yaupon/exception
v0.0.0-dev.0
Published
🤷♀️ Set of exception classes that can be used to handle errors in a more structured way.
Downloads
3
Readme
🤷♀️ Exception
This package provides a set of exception classes that can be used to handle errors in a more structured way.
- The Package follows RFC 7807 and is compatible with RFC 9457 specification, which is a standard way to describe errors in HTTP APIs.
- Package provides a set of exception classes and factory utilities to create them.
- The package is designed to be used with the
@yaupon/regerr
to build a structured error registry with complete type-safety and support for multiple languages (@yaupon/i18n
). - Future will show, however, we're in strong belief that error documentation could be generated from the registry and used in the API documentation.
Usage
import { ExceptionFactory, defineException, UnknownException } from '@yaupon/exception';
import { match } from '@yaupon/match';
import { inString } from '@yaupon/i18n';
let DatabaseException: UnknownException = defineException('DatabaseException', {
status: 500,
title: 'Database Error',
detail: 'An error occurred while processing the request',
});
// Or you can use the factory to create exceptions
DatabaseException: UnknownException = new ExceptionFactory()
.define()
.withStatus(500)
.withTitle('Database Error')
.withDetail('An error occurred while processing the request')
.as('DatabaseException')
.create();
// You can also create instances of the exception
let exception: DatabaseException = new DatabaseException('An error occurred while processing the request');