完全基于@grpc/proto-loader#0.5.5
私人定制:
- 新增loadSyncWithRoot,额外返回Protobuf.Root
gRPC Protobuf Loader
A utility package for loading .proto
files for use with gRPC, using the latest Protobuf.js package.
Please refer to protobuf.js' documentation
to understands its features and limitations.
Installation
npm install @grpc/proto-loader
Usage
const protoLoader = require('@grpc/proto-loader');
const grpcLibrary = require('grpc');
// OR
const grpcLibrary = require('@grpc/grpc-js');
protoLoader.load(protoFileName, options).then(packageDefinition => {
const packageObject = grpcLibrary.loadPackageDefinition(packageDefinition);
});
// OR
const packageDefinition = protoLoader.loadSync(protoFileName, options);
const packageObject = grpcLibrary.loadPackageDefinition(packageDefinition);
The options parameter is an object that can have the following optional properties:
Field name | Valid values | Description |
---|---|---|
keepCase |
true or false
|
Preserve field names. The default is to change them to camel case. |
longs |
String or Number
|
The type to use to represent long values. Defaults to a Long object type. |
enums |
String |
The type to use to represent enum values. Defaults to the numeric value. |
bytes |
Array or String
|
The type to use to represent bytes values. Defaults to Buffer . |
defaults |
true or false
|
Set default values on output objects. Defaults to false . |
arrays |
true or false
|
Set empty arrays for missing array values even if defaults is false Defaults to false . |
objects |
true or false
|
Set empty objects for missing object values even if defaults is false Defaults to false . |
oneofs |
true or false
|
Set virtual oneof properties to the present field's name. Defaults to false . |
includeDirs |
An array of strings | A list of search paths for imported .proto files. |
The following options object closely approximates the existing behavior of grpc.load
:
const options = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
}