@ln-juggernaut/proto-loader
v0.5.3
Published
gRPC utility library for loading .proto files
Downloads
3
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-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
}