Skip to content

qlaffont/unify-errors

Repository files navigation

Test Coverage Maintainability npm npm Snyk Vulnerabilities for npm package NPM

Unify errors

A simple library to normalize typescript standard errors. Feel free to create pull request to define new errors ! Old Owner: @flexper

Usage

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

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. Please check documentation to update this package.