Skip to content

Generating Stubs for JS ​

Step 1. Install Protocol Buffers Compiler ​

For Windows: ​

  1. Download the latest version of protoc for Windows from the official Google Protocol Buffers repository: https://github.com/protocolbuffers/protobuf/releases.

  2. Select the protoc-<version>-win64.zip file for the 64-bit Windows version and extract it to a convenient location (e.g., C:\protoc).

  3. Add the bin folder from the extracted archive to the PATH environment variable so that protoc can be called from any directory:

powershell
[System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\protoc\bin", [System.EnvironmentVariableTarget]::Machine)
  1. Verify the protoc installation by running the command:
powershell
protoc --version

If installed correctly, the protoc version will be displayed.

For Linux: ​

To install protoc on Linux, please follow the instructions provided on the official gRPC documentation site: https://grpc.io/docs/protoc-installation/. This guide includes steps for various distributions and provides the latest installation instructions.

Step 2. Install Additional Plugins for protoc ​

Install protoc-gen-js for generating JS files:

sh
npm install -g protoc-gen-js

Install protoc-gen-grpc for generating gRPC files:

sh
npm install -g protoc-gen-grpc

Step 3. Download .proto file for a Service ​

Download .proto file for a Service, using the following CLI command:

sh
snet service get-api-registry <org_id> <SERVICE_ID> <PROTO_DIR>

For more details, please check the CLI or CLI Manual

Step 4. Generate stub files for JS ​

Navigate to the directory where the .proto file is located, and run the following commands to generate the necessary stub files:

  1. Navigate to the directory with the .proto file:
sh
cd <PATH_TO_PROTO_DIR>
  1. Generate JavaScript files:
sh
protoc -I="." --js_out=import_style=commonjs,binary:. <file_name>.proto
  1. Generate gRPC files:
sh
protoc-gen-grpc -I="." --grpc_out=grpc_js:. <file_name>.proto

These commands will create JS and gRPC files required for the service.