grpc protoc code example
Example 1: protoc-gen-grpc
PROTO_DIR="./proto"
PROTO_GEN_GRPC="protoc-gen-grpc"
PROTOC_GEN_GRPC_TS="protoc-gen-grpc-ts"
${PROTO_GEN_GRPC} \
--js_out=import_style=commonjs,binary:${PROTO_DIR} \
--grpc_out=${PROTO_DIR} \
--proto_path ${PROTO_DIR} \
${PROTO_DIR}/*.proto
${PROTOC_GEN_GRPC_TS} \
--ts_out=service=true:${PROTO_DIR} \
--proto_path ${PROTO_DIR} \
${PROTO_DIR}/*.proto
Example 2: protoc-gen-grpc
PROTO_DIR := ./proto
PROTO_GEN_GRPC := protoc-gen-grpc
PROTOC_GEN_GRPC_TS := protoc-gen-grpc-ts
protogen: cleanup.o generate.o
cleanup.o:
rm ${PROTO_DIR}/*.{ts,js}
generate.o:
${PROTO_GEN_GRPC} \
--js_out=import_style=commonjs,binary:${PROTO_DIR} \
--grpc_out=${PROTO_DIR} \
--proto_path ${PROTO_DIR} \
${PROTO_DIR}/*.proto
${PROTOC_GEN_GRPC_TS} \
--ts_out=service=true:${PROTO_DIR} \
--proto_path ${PROTO_DIR} \
${PROTO_DIR}/*.proto
Example 3: grpc protoc gen
follow my repository for generate .protofile to javascript and typescript config
https://github.com/restuwahyu13/grpc-typescript-config
Example 4: grpc tools node protoc
GRPC_TOOLS=$(exec grpc_tools_node_protoc)
INPUT_DIR="./src/protos"
INPUT_DIR_FILE="./src/protos/*.proto"
OUTPUT_DIR="./src/typedefs"
FIND_FILE=$(find ${OUTPUT_DIR} -name "*.js")
PROTOC_GEN_TS_PATH_WINDOWS="./node_modules/.bin/protoc-gen-ts.cmd"
PROTOC_GEN_TS_PATH_LINMAC="./node_modules/.bin/protoc-gen-ts"
if [ "$FIND_FILE" ]
then
$(rm ${OUTPUT_DIR}/*)
${GRPC_TOOLS} \
--plugin=protoc-gen-ts=${PROTOC_GEN_TS_PATH_WINDOWS} \
--grpc_out=grpc_js:${OUTPUT_DIR} \
--js_out=import_style=commonjs,binary:${OUTPUT_DIR} \
--ts_out=grpc_js:${OUTPUT_DIR} \
--proto_path ${INPUT_DIR} ${INPUT_DIR_FILE}
else
${GRPC_TOOLS} \
--plugin=protoc-gen-ts=${PROTOC_GEN_TS_PATH_WINDOWS} \
--grpc_out=grpc_js:${OUTPUT_DIR} \
--js_out=import_style=commonjs,binary:${OUTPUT_DIR} \
--ts_out=grpc_js:${OUTPUT_DIR} \
--proto_path ${INPUT_DIR} ${INPUT_DIR_FILE}
fi