gRPC Modern

Makes grpc clients(@grpc/grpc-js
, grpc
) fit in modern JavaScript(TypeScript) environment.
- Change callback interface with
Promise
- Change
new
+ set
interface with object literal
Installation
$ yarn add grpc-modern
$ yarn add @grpc/grpc-js google-protobuf
$ yarn add --dev @types/google-protobuf
$ yarn add grpc google-protobuf
$ yarn add --dev @types/google-protobuf
Usage
import * as grpc from "@grpc/grpc-js";
import { GetSomethingReq, SomethingClient } from "../stubs/something/...";
const client = new SomethingClient(
"example.com:80",
grpc.credentials.createInsecure()
);
const req = new GetSomethingReq();
req.setId("...");
req.setSomeOption(false);
client.getSomething(req, (error, response) => {
console.log(response);
});
import { makeModernClient } from "grpc-modern";
const client = makeModernClient(SomethingClient, {
address: "example.com:80",
credential: grpc.credentials.createInsecure(),
});
const response = await client.getSomething(
set(GetSomethingReq, {
id: "...",
someOption: false,
})
);
import * as grpc from "grpc";
const client = makeModernClient(SomethingClient, {
address: "example.com:80",
credential: grpc.credentials.createInsecure(),
});
const response = await client.getSomething(
set(GetSomethingReq, {
id: "...",
someOption: false,
})
);