import { GrpcEvent, GrpcMessage, GrpcRequest } from '@ngx-grpc/common'; import { Observable } from 'rxjs'; import { GrpcHandler } from './grpc-handler'; /** * Interceptor interface which should be implemented for custom interceptors */ export interface GrpcInterceptor { /** * Interceptor entry point * * Example: * * ``` * intercept(request: GrpcRequest, next: GrpcHandler): Observable> { * // here do something before request, e.g. patch messages, metadata, etc * * return next.handle(request).pipe( * // here handle all messages, status codes, metadata, errors, retries etc * ); * } * ``` * * @param request intercepted request * @param next current GrpcHandler to pass the messages through */ intercept(request: GrpcRequest, next: GrpcHandler): Observable>; }