1.0.40 • Published 3 years ago

@asemin/nestjs-exception-handling v1.0.40

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
3 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-exception-handling

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(API_ERROR_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(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})

getException info

const {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);
1.0.19

3 years ago

1.0.2

3 years ago

1.0.18

3 years ago

1.0.1

3 years ago

1.0.17

3 years ago

1.0.0

3 years ago

1.0.16

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.29

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.33

3 years ago

0.0.26

3 years ago

1.0.32

3 years ago

0.0.27

3 years ago

1.0.31

3 years ago

0.0.28

3 years ago

1.0.30

3 years ago

0.0.29

3 years ago

1.0.37

3 years ago

1.0.36

3 years ago

1.0.35

3 years ago

1.0.34

3 years ago

1.0.39

3 years ago

0.0.20

3 years ago

1.0.38

3 years ago

0.0.21

3 years ago

0.0.22

3 years ago

0.0.23

3 years ago

0.0.24

3 years ago

0.0.25

3 years ago

1.0.40

3 years ago

0.0.15

3 years ago

0.0.16

3 years ago

0.0.17

3 years ago

0.0.18

3 years ago

0.0.19

3 years ago

0.0.11

3 years ago

0.0.12

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago