https://github.com/qlaffont/unify-errors
Errors Standardization in Typescript
https://github.com/qlaffont/unify-errors
error standardization tsdx typescript
Last synced: about 1 year ago
JSON representation
Errors Standardization in Typescript
- Host: GitHub
- URL: https://github.com/qlaffont/unify-errors
- Owner: qlaffont
- License: mit
- Created: 2022-02-10T13:58:42.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-13T17:40:51.000Z (over 1 year ago)
- Last Synced: 2024-11-13T18:35:00.958Z (over 1 year ago)
- Topics: error, standardization, tsdx, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/unify-errors
- Size: 1.34 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://codeclimate.com/github/qlaffont/unify-errors/test_coverage) [](https://codeclimate.com/github/qlaffont/unify-errors/maintainability)    
# Unify errors
A simple library to normalize typescript standard errors. Feel free to create pull request to define new errors ! Old Owner: [@flexper](https://github.com/flexper)
## Usage
```typescript
import { BadRequest } from 'unify-errors';
function errorExample() {
throw new BadRequest({
context: "Example context"
});
}
```
## API
### BadRequest(context?)
Return: CustomError with Bad Request message.
### Unauthorized(context?)
Return: CustomError with Unauthorized message.
### Forbidden(context?)
Return: CustomError with Forbidden message.
### NotFound(context?)
Return: CustomError with Not Found message.
### RequestTimeOut(context?)
Return: CustomError with Request TimeOut message.
### InternalServerError(context?)
Return: CustomError with Internal Server Error message.
### NotImplemented(context?)
Return: CustomError with Not Implemented message.
### TooManyRequests(context?)
Return: CustomError with Too Many Requests message.
### CustomError(message, context?)
The CustomError class extends the basic typescript Error class. It is used to create all custom errors.
***Params***
| Field Name | Type | Default | Description |
| ---------- | ------------------ | --------- | -------------------------------- |
| message | string | mandatory | Mandatory error message property |
| context | CustomErrorContext | {} | Optional record of string |
***How to use***
To create a new error type, create a new class extending **CustomError** inside the _errors_ folder.
`Don't forget to export it from index.ts too`
````typescript
import { CustomErrorContext } from '../types/CustomErrorContext';
import { CustomError } from './CustomError';
export class InternalServerError extends CustomError {
constructor(public context?: CustomErrorContext) {
super('Internal Server error', context);
// Set the prototype explicitly.
Object.setPrototypeOf(this, InternalServerError.prototype);
}
}
````
## Tests
To execute jest tests (all errors, type integrity test)
```
pnpm test
```
## Maintain
This package use [TSdx](https://github.com/jaredpalmer/tsdx). Please check documentation to update this package.