grpc-host-builder
Version:
Lightweight configurator for gRPC host
50 lines (37 loc) • 1.26 kB
Markdown
[](https://www.npmjs.com/package/grpc-host-builder)
[](https://www.npmjs.com/package/grpc-host-builder)
Lightweight configurator for gRPC host
`npm i grpc-host-builder`
```javascript
const { GrpcHostBuilder } = require("grpc-host-builder");
/*...*/
class InterceptorForTom {
constructor(serverContext) {
this._logger = serverContext.createLogger();
}
async invoke(call, methodDefinition, next) {
/*...*/
if (call.request.name === "Tom") return { message: "Hello again, Tom!" };
return await next(call);
}
}
/*...*/
const server = await new GrpcHostBuilder()
.useLoggersFactory(loggersFactory)
.addInterceptor(InterceptorForTom)
.addInterceptor(async (call, methodDefinition, next) => {
if (call.request.name === "Jane") return { message: "Hello dear, Jane!" };
return await next(call);
})
.addService(packageObject.v1.Greeter.service, {
sayHello: (call) => {
const request = new HelloRequest(call.request);
return new HelloResponse({ message: `Hello, ${request.name}!` });
},
})
.bind(grpcBind)
.buildAsync();
```