UNPKG

@pionerlabs/grpc-interceptors

Version:

This library provides a way to instrument Node.js gRPC clients and servers with interceptors/middleware e.g. for Prometheus metrics, Zipkin tracing etc.

24 lines (19 loc) 799 B
const grpc = require('grpc'); const interceptors = require('../index'); const proto = require('./proto'); function Greet(call, callback) { return callback(null, { message: `Hello ${call.request.message}` }); } function Wave(call, callback) { return callback(null, { message: 'Wave' }); } function WaveAgain(call, callback) { return callback(null, { message: 'Wave' }); } module.exports = port => { const server = interceptors.serverProxy(new grpc.Server()); server.addService(proto.Test.Messenger.service, { Greet, Wave, WaveAgain }); server.bind(`localhost:${port}`, grpc.ServerCredentials.createInsecure()); const client = interceptors.clientProxy(new proto.Test.Messenger(`localhost:${port}`, grpc.credentials.createInsecure())); return { server, client }; };