diff --git a/keyserver/package.json b/keyserver/package.json --- a/keyserver/package.json +++ b/keyserver/package.json @@ -41,6 +41,7 @@ "dependencies": { "@babel/runtime": "^7.13.10", "@grpc/grpc-js": "^1.7.1", + "@grpc/proto-loader": "^0.7.3", "@matrix-org/olm": "3.2.4", "@parse/node-apn": "^3.2.0", "@vingle/bmp-js": "^0.2.5", diff --git a/keyserver/src/grpc/grpc_client.js b/keyserver/src/grpc/grpc_client.js new file mode 100644 --- /dev/null +++ b/keyserver/src/grpc/grpc_client.js @@ -0,0 +1,20 @@ +// @flow + +import * as grpc from '@grpc/grpc-js'; +import * as protoLoader from '@grpc/proto-loader'; + +const PROTO_PATH = '../shared/protos/identity.proto'; +const packageDefinition = protoLoader.loadSync(PROTO_PATH, { + keepCase: true, + longs: String, + enums: String, + defaults: true, + oneofs: true, +}); +const identity = grpc.loadPackageDefinition(packageDefinition).identity; +const identityClient = new identity.IdentityService( + 'localhost:50051', + grpc.credentials.createInsecure(), +); + +export { identityClient };