gRPC loader module for webpack
Converts .proto files into autogenerated js files for use with gRPC
Installation
yarn add --dev grpc-loader
Usage
static: true
You can ignore protobufjs
peer dependency if you use this option.
P.S. I don't really like this api. It's too verbose. google-protobuf
const proto = ;console; // {// services: {// GreeterService: {// sayHello: [Object]// },// GreeterClient: {// [Function: ServiceClient] super_: [Function: Client],// service: [Object]// }// },// messages: {// HelloReply: {// [Function]// superClass_: [Object],// base: [Function],// toObject: [Function],// deserializeBinary: [Function],// deserializeBinaryFromReader: [Function],// serializeBinaryToWriter: [Function]// },// HelloRequest: {// [Function]// superClass_: [Object],// base: [Function],// toObject: [Function],// deserializeBinary: [Function],// deserializeBinaryFromReader: [Function],// serializeBinaryToWriter: [Function]// }// }// }
static: false
You can ignore google-protobuf
peer dependency if you use this option.
same as grpc.load
you can also pass any properties that grpc.load
accepts
const proto = ;console; // {// helloworld: {// Greeter: {// [// Function: ServiceClient// ]super_: [// Function: Client// ],// service: [// Object// ]// },// HelloRequest: {// // },// HelloReply: {// // }// }// }
For usage checkout test
folder
Test
npm run test
webpack config
moduleexports =module:rules:test: /\.proto$/loader: 'grpc-loader'options:// both methods are static internally// but result api differs// https://github.com/grpc/grpc/tree/master/examples/nodestatic: false// grpc props// https://github.com/grpc/grpc-node/blob/master/packages/grpc-protobufjs/index.js#L37-L42// convertFieldsToCamelCase,// binaryAsBase64,// longsAsStrings,// enumsAsStrings,;
License
MIT (http://www.opensource.org/licenses/mit-license.php)