feat(grpc): add npm package, update Node.js & TypeScript gRPC code and gen scripts

This commit is contained in:
Nex
2020-11-17 00:43:10 +08:00
parent 0845a71aba
commit a6d6428393
4 changed files with 2903 additions and 59 deletions

View File

@@ -16,9 +16,9 @@ fi
gen_dir="$pb_dir/../gen"
pb_files="bdware/bdledger/api/*.proto"
empty_file="google/protobuf/empty.proto"
emptypb_file="google/protobuf/empty.proto"
exec=protoc
cmd=protoc
async_tag=""
# check all arguments
@@ -46,7 +46,11 @@ do
mkdir -p $out
fi
echo "Generating Go code"
$exec --go_out=$out --go-grpc_out=$out --govalidators_out=$out $pb_files $async_tag
$cmd \
--go_out=$out \
--go-grpc_out=$out \
$pb_files \
$async_tag
fi
if [ $aug == "gohttp" ]; then
plugin=protoc-gen-grpc-gateway
@@ -59,33 +63,27 @@ do
mkdir -p $out
fi
echo "Generating Go HTTP code"
$exec --grpc-gateway_out=grpc_api_configuration=bdware/bdledger/api/grpc-gateway.yml,logtostderr=true:$out $pb_files $async_tag
$cmd \
--grpc-gateway_out=grpc_api_configuration=bdware/bdledger/api/grpc-gateway.yml,logtostderr=true:$out \
$pb_files \
$async_tag
fi
if [ $aug == "nodejs" ]; then
plugin=grpc_tools_node_protoc_plugin
plugin_path=$(which $plugin)
if [ $? -ne 0 ];then
echo "missing plugin: $plugin" && exit
fi
out="$gen_dir/nodejs"
if [ ! -d $out ]; then
mkdir -p $out
fi
echo "Generating Node.js code"
$exec --js_out=import_style=commonjs,binary:$out --grpc_out=$out --plugin=protoc-gen-grpc=$plugin_path $pb_files $empty_file $async_tag
fi
if [ $aug == "ts" ]; then
plugin=protoc-gen-ts
plugin_path=$(which $plugin)
if [ $? -ne 0 ];then
echo "missing plugin: $plugin" && exit
fi
out="$gen_dir/nodejs"
if [ ! -d $out ]; then
mkdir -p $out
fi
echo "Generating TypeScript code"
$exec --ts_out=$out -plugin=protoc-gen-ts=$plugin_path $pb_files $empty_file $async_tag
npmBinPath=$(npm bin)
jsCmd=$npmBinPath/grpc_tools_node_protoc
pluginPath=$npmBinPath/protoc-gen-ts
out="$gen_dir/nodejs"
if [ ! -d $out ]; then
mkdir -p $out
fi
echo "Generating Node.js code & TypeScript definitions"
$jsCmd \
--plugin=protoc-gen-ts=$pluginPath \
--js_out=import_style=commonjs,binary:$out \
--grpc_out=grpc_js:$out \
--ts_out=grpc_js:$out \
$pb_files $emptypb_file \
$async_tag
fi
if [ $aug == "docs" ]; then
plugin=protoc-gen-ts
@@ -98,8 +96,20 @@ do
mkdir -p $out
fi
echo "Generating documentations"
$exec --doc_out=$out --doc_opt=html,apis.html $pb_files $empty_file $async_tag
$exec --doc_out=$out --doc_opt=markdown,apis.md $pb_files $empty_file $async_tag
$exec --doc_out=$out --doc_opt=json,apis.json $pb_files $empty_file $async_tag
$cmd \
--doc_out=$out \
--doc_opt=html,apis.html \
$pb_files $emptypb_file \
$async_tag
$cmd \
--doc_out=$out \
--doc_opt=markdown,apis.md \
$pb_files $emptypb_file \
$async_tag
$cmd \
--doc_out=$out \
--doc_opt=json,apis.json \
$pb_files $emptypb_file \
$async_tag
fi
done
done