/nestjs-grpc-exceptions

NestJS gRPC Exceptions Library ⚡️

Primary LanguageTypeScriptMIT LicenseMIT

NestJS gRPC Exceptions

This library provides RpcException wrappers for gRPC status codes.

Install

pnpm add nestjs-grpc-exceptions

or

npm install nestjs-grpc-exceptions

or

yarn add nestjs-grpc-exceptions

Usage:

First add the GrpcServerExceptionFilter to your gRPC server:

import { Module } from "@nestjs/common";
import { APP_FILTER } from "@nestjs/core";
import { GrpcServerExceptionFilter } from "nestjs-grpc-exceptions";

@Module({
  providers: [
    {
      provide: APP_FILTER,
      useClass: GrpcServerExceptionFilter,
    },
  ],
})
export class UserModule {}

Add the client interceptor to your client:

import { GrpcToHttpInterceptor } from 'nestjs-grpc-exceptions';

@Get(':id')
@UseInterceptors(GrpcToHttpInterceptor)
function findUser(@Param('id') id: number): void;

Now you can use the exception classes in your servers:

import {
  GrpcNotFoundException,
  GrpcInvalidArgumentException,
} from "nestjs-grpc-exceptions";

throw new GrpcNotFoundException("User Not Found.");
throw new GrpcInvalidArgumentException("input 'name' is not valid.");

If you use Http Exceptions in your microservice clients, you can use the HttpToGrpcInterceptor interceptor to convert them

import { HttpToGrpcInterceptor } from 'nestjs-grpc-exceptions';

@UseInterceptors(HttpToGrpcInterceptor)
@GrpcMethod()
function getAllUsers(): void;

list of supported http status codes: 401 - 403 - 502 - 404 - 405 - 409 - 422 - 429 - 500