2.0.6 • Published 2 years ago

@asemin/nestjs-security v2.0.6

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-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);
2.0.5

2 years ago

2.0.6

2 years ago

2.0.4

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.35

2 years ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago