Skip to content

jayamaljayamaha/ExceptionLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExceptionLibrary Documentation

NPM Library to handle different kind of api exceptions in a Express app

Installation


Install library using npm package manager

npm install exception-library

Usage


Add ExceptionHandler middleware to your express application

import express from "express";
import { ExceptionHandler } from "exception-library";

const app = express();

// After adding your route handlers

app.use(ExceptionHandler);

After this throw different types errors as your needs inside a route

Supported Exceptions


Bad Gateway Exception

router.get('/path', (req, res) => {
    ...

    throw new BadGatewayError("some reason")

    ...
})

Bad Request Exception

router.get('/path', (req, res) => {
    ...

    throw new BadRequestError("some reason")

    ...
})

Forbiddon Exception

router.get('/path', (req, res) => {
    ...

    throw new ForbiddenError("some reason")

    ...
})

Internal Server Exception

router.get('/path', (req, res) => {
    ...

    throw new InternalServerError("some reason")

    ...
})

Method not allowed Exception

router.get('/path', (req, res) => {
    ...

    throw new MethodNotAllowedError("some reason")

    ...
})

Not found Exception

router.get('/path', (req, res) => {
    ...

    throw new NotFoundError("some reason")

    ...
})

Not Implemented Exception

router.get('/path', (req, res) => {
    ...

    throw new NotImplementedError("some reason")

    ...
})

Request Time Out Exception

router.get('/path', (req, res) => {
    ...

    throw new RequestTimeOutError("some reason")

    ...
})

Unauthorized Exception

router.get('/path', (req, res) => {
    ...

    throw new UnorthorizedError("some reason")

    ...
})

Data Validation Exception with Joi

router.get('/path', (req, res) => {
    ...
    // Only support with Joi validation
    const errors = [{
        message: detail.message,
        field: detail.context.label,
        errorType: detail.type
    }]

    throw new DataValidationError(errors)

    ...
})

Data Types


Return Error Type

Exceptions returns from API like follwoing format

interface ReturnErrorType<Type> {
    statusCode: number
    errors: Type[]
    type: string
}

Validation Error Type

Data should be in this type to pass to the DataValidationError

interface ValidationErrorType {
  message: string;
  field: string | undefined;
  errorType: string;
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published