This library provides RpcException
wrappers for gRPC status codes.
pnpm add nestjs-grpc-exceptions
or
npm install nestjs-grpc-exceptions
or
yarn add nestjs-grpc-exceptions
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