Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
packageDefinition
✓ import { packageDefinition } from 'grpc-pbf-loader'
✗ const { packageDefinition } = require('grpc-pbf-loader')
Module is ESM-only. Named export, not default. Use dynamic import or top-level await.
default
✓ import grpcPbfLoader from 'grpc-pbf-loader'
✗ const grpcPbfLoader = require('grpc-pbf-loader')
Default export exists and is the packageDefinition object. Requires ESM.
packageDefinitionLoader
✓ const loader = require('grpc-pbf-loader').packageDefinition
CommonJS require pattern with named property. Works in Node >=8.
packageDefinition.load
✓ const result = await packageDefinition.load('file.proto', options)
✗ packageDefinition.loadSync('file.proto', options) // wrong for async
load is async, loadSync is synchronous. Both return package definition objects.
Shows ESM import, async loading of a .proto file, and creating a gRPC client.
import { packageDefinition } from 'grpc-pbf-loader';
import * as grpc from '@grpc/grpc-js';
async function main() {
const protoPath = 'path/to/service.proto';
const options = { keepCase: true, includeDirs: ['./proto'] };
const definition = await packageDefinition.load(protoPath, options);
const proto = grpc.loadPackageDefinition(definition);
const client = new proto.mypackage.MyService('localhost:50051', grpc.credentials.createInsecure());
console.log('Client created');
}
main().catch(console.error);
Errors
Common errors & fixes
Error: Cannot find module 'protocol-buffers-schema'
Missing peer dependency protocol-buffers-schema.
fixInstall the dependency: npm install protocol-buffers-schema
TypeError: packageDefinition.load is not a function
Using default import incorrectly; load method exists on packageDefinition object.
fixUse import { packageDefinition } from 'grpc-pbf-loader' instead of import grpcPbfLoader from 'grpc-pbf-loader'. SyntaxError: Cannot use import statement outside a module
Trying to use ESM syntax without setting 'type': 'module' in package.json.
fixAdd "type": "module" to your package.json or use .mjs file extension.
Error: ENOENT: no such file or directory, open '...'
Proto file path not found or missing includeDirs.
fixEnsure proto file exists and provide includeDirs option with correct search paths.
Audit
Dependencies
pbfrequiredCore serializer for protocol buffers
protocol-buffers-schemarequiredParses .proto schema files
resolve-protobuf-schemarequiredResolves imported .proto file paths