4.0.2 • Published 2 years ago

@asemin/nestjs-utils v4.0.2

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
2 years ago

Description

Nestjs Exception handling implementation. Includes: Handler's chain mechanism Custom exception to inherit from * Implemented Nest JS Validation Exception handler

Exception structure:

    {
        code: "ERROR:<ENTITY>-<CODE_MESSAGE>"
        status: 500,
        title: "Error!",
        message: 'This was screwed',
        body: { any info you like }
    }

Nest framework TypeScript starter repository.

Use

installation

$ npm install @asemin/nestjs-utils

Handler creation example

Class must extend ExceptionHandler and implement handle method. Method must return HandlerExceptionDto filled.

export class MongoExceptionHandler extends ExceptionHandler{
    handle(exception: any): HandledExceptionDto {
        if ( !(exception instanceof MongoError) )
            return this.next?.handle(exception);

        switch (exception.code) {
            case 11000:
                return new HandledExceptionDto(getException(CODES.DATABASE.DUPLICATE));
        }

        return null;
    }
}

handlers chain creation

Each member must extend ExceptionHandler

export const handlersChain = [
    new MongoExceptionHandler(),
    new ValidationExceptionHandler(),
    new CustomExceptionHandler(),
    new HttpExceptionHandler()
];

Nestjs exception filter configuration. main.ts:

    const exceptionFilter = new ExceptionFilter(
        <ExceptionHandler>createExceptionHandlersChain(handlersChain)
    );

    app.useGlobalFilters(exceptionFilter);

Custom exception use

throwException

Use one of the codes. Fill free to put any information to body (second param) If there are no code suitable - throw any exception type manually.

throwException(CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})

getException info

const {code, status, message} = getException(CODES.COMMON.UNKNOWN);
3.0.24

2 years ago

3.0.25

2 years ago

3.0.26

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.2

2 years ago

3.0.23

3 years ago

3.0.21

3 years ago

3.0.20

3 years ago

3.0.19

3 years ago

3.0.18

3 years ago

3.0.17

3 years ago

3.0.16

3 years ago

3.0.15

3 years ago

3.0.14

3 years ago

3.0.13

3 years ago

3.0.12

3 years ago

3.0.11

3 years ago

3.0.10

3 years ago

3.0.9

3 years ago

3.0.8

3 years ago

3.0.7

3 years ago

3.0.6

3 years ago

3.0.5

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago