@ln-zap/proto-loader
v0.5.4
Published
gRPC utility library for loading .proto files
Downloads
310
Keywords
Readme
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-loaderUsage
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
}