0.0.3 • Published 2 years ago

nestjs-error-handler v0.0.3

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

NestJs Error Handler

Installation

$ npm i -S nestjs-error-handler

Usage

  • Add your timezone on .env
    -- .env
     TZ='America/Sao_Paulo'
    • Create a JSON file that represent the error that was visible in the client, the original error will be only on console
     <!-- htttp-status.json -->
     {
        "ECONNREFUSED": "Connection Refused",
        "400": "Bad Request",
        "401": "Unauthorized",
        "403": "Forbidden",
        "404": "Not Found",
        "405": "Method Not Allowed",
        "406": "Not Acceptable",
        "408": "Request Timeout",
        "413": "Payload Too Large",
        "414": "URI Too Long",
        "422": "Unprocessable Entity",
        "428": "Precondition Required",
        "429": "Too Many Requests",
        "500": "Internal Server Error",
        "501": "Not Implemented",
        "502": "Bad Gateway",
        "503": "Service Unavailable",
        "504": "Gateway Timeout",
        "507": "Insufficient Storage",
        "508": "Loop Detected"
     }
    <!--If your error is not mapped here the original error will be displayed in the client.-->
    • Add on main.ts file
//  main.ts
import { AppExceptionFilter, ExceptionInterceptor } from 'nestjs-error-handler';
import { Logger } from '@nestjs/common';
import * as htttpStatus from './htttp-status.json';

async function bootstrap() {
 const app = await NestFactory.create(MainModule);

 app.useGlobalFilters(new AppExceptionFilter(new Logger(), htttpStatus, process.env.TZ));
 app.useGlobalInterceptors(new ExceptionInterceptor());
  ...
}
  • Custom error

      import { ApiException } from 'nestjs-error-handler';
    
      @Controller()
      export class HealthController {
        constructor(private readonly healthService: IHealthService) {}
      
        @Get('/health')
        async getHealth(): Promise<string> {
          throw new ApiException('Error', HttpStatus.INTERNAL_SERVER_ERROR);
        }
      }
Now all exceptions will be handler.

The following is a list of all the people that have contributed to nest-boilerplate. Thanks for your contributions!

License

It is available under the MIT license. License