npm

protoc-helper

1.0.19 • Public • Published

npm version NPM Downloads npm version

protoc-helper

A multilanguage protoc protobuff generator for node. uses the protoc binary and supports multiple platforms and processors. forked from node-protoc to add additional languages. . Please see Protobuf Plugin Installation to install the required plugins for your target language.

Install

  • local: npm i protoc-helper
  • cli-tool: npx install protoch

How to use

  • you can find a demoscript and the proto file in the scripts folder.

CLI (via npx global install)

npx protoch <lang> <out_path> <proto_file> <proto_path>
npx protoc --go_out=<out_path> --proto_path=<proto_file_folder>  <proto_file> // exchange --go_out is using another lamguage

via Script
without instance (array not supported)

createProtobuff( <lang> <output_path> <absolute_proto_file_path> )
createProtobuff( <lang> <output_path> <proto_file_folder> <proto_file>)

using class instance

generator.generateProtobuf( <lang> <output_path> <proto_file> <proto_file_folder>)

usings array for multiple files

generator.generateProtobuf([[ <lang> <output_path> <proto_file> <proto_file_folder>],[ <lang> <output_path> <proto_file> <proto_file_folder> ]])

Arguments

lang The programming language for which the Protobuf file should be generated.
total_proto_file_path The path to the Proto file that should be used as the source.
output_path The path where the generated Protobuf file should be saved
proto_file The name of the proto file including the extension.
proto_file_folder A path to a folder that holds a proto file.

Example

const {ProtobuffGenerator,createProtobuff} = require("protoc-helper")
const generator = new ProtobuffGenerator()
const dir = String(__dirname)+"/"
generator.generateProtobuf([["go",dir,"helloworld.proto",dir],["python",dir,"helloworld.proto",dir]])

if you like this package, pls consider giving Jeppe’s and my repo a Star on github


Protobuf Plugin Installation

Go

Java

Python

C#

Ruby

Objective-C

PHP

Dart

Rust

Swift

Kotlin

Clone and build the plugin git clone https://github.com/grpc/grpc-kotlin.git cd grpc-kotlin/compiler ./gradlew installDist

Scala

  • Repository: https://github.com/scalapb/ScalaPB
  • Installation: scala // Add ScalaPB as a dependency to your sbt project libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.1"

JavaScript/TypeScript

NPX and additional args

you can use npx protoc or add your own arguments in the index.js:

   switch (language) {
            case 'go':
                // Example for Go --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative
                command = `npx protoc --go_out=${outputPath} --proto_path=${proto_path} ${proto_file}`;
                break;
            case 'java':
                // Example for Java
                command = `npx protoc --java_out=${outputPath} --proto_path=${proto_path} ${proto_file}`;
                break;
            case 'python':

Package Sidebar

Install

npm i protoc-helper

Weekly Downloads

14

Version

1.0.19

License

MIT

Unpacked Size

21.1 kB

Total Files

10

Last publish

Collaborators

  • ji-podhead