message.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* This Message constants and interfaces and function are mostly for GRPC microservice */
  2. import { GrpcMethod } from "@nestjs/microservices";
  3. import { Observable } from "rxjs";
  4. export const messageProtobufPackage = "message";
  5. export interface Request {
  6. id: string;
  7. message: string;
  8. }
  9. export interface Response {
  10. id: string;
  11. message: string;
  12. }
  13. export const MESSAGE_PACKAGE_NAME = "message";
  14. export interface MessageServiceClient {
  15. returnResponse(request): Response
  16. returnStreamResponse(request: Request): Observable<Response>;
  17. bidirectionalStream(request: Observable<Request>): Observable<Response>
  18. }
  19. export interface GrpcMessageServiceController {
  20. returnResponse(request): Response
  21. returnStreamResponse(request: Request): Observable<Response>;
  22. bidirectionalStream(request: Observable<Request>): Observable<Response>
  23. }
  24. export function GrpcMessageServiceControllerMethods() {
  25. return function (constructor: Function) {
  26. const grpcMethods: string[] = ["returnResponse", "returnStreamResponse", "bidirectionalStream"];
  27. for (const method of grpcMethods) {
  28. const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
  29. GrpcMethod("GrpcMessageService", method)(constructor.prototype[method], method, descriptor);
  30. }
  31. };
  32. }
  33. export const MESSAGE_SERVICE_NAME = "GrpcMessageService";