Package Exports
- @adempiere/grpc-api
- @adempiere/grpc-api/src/grpc/proto/access_pb.js
- @adempiere/grpc-api/src/grpc/proto/base_data_type_pb.js
- @adempiere/grpc-api/src/grpc/proto/business_pb.js
- @adempiere/grpc-api/src/grpc/proto/core_functionality_pb
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@adempiere/grpc-api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ADempiere gRPC-API library to Node.js
ADempiere node.js write in JavaScript for gRPC service, currently is used as library of proxy ADempiere service and is published as NPM
- ADempiere-gRPC-Server, docker image erpya/adempiere-grpc-all-in-one.
See also:
- ADempiere-Vue, docker image erpya/adempiere-vue. service, use it for connect with:
- Proxy-Adempiere-API, docker image erpya/proxy-adempiere-api.
Using it
# installing via NPM
npm install @adempiere/grpc-api --save# installing via Yarn
yarn add @adempiere/grpc-apiA Example
Here a example for it using from Proxy of ADempiere API: https://github.com/adempiere/proxy-adempiere-api/blob/master/src/modules/adempiere-api/index.ts#L17
Recreate proto stub class (only for contribute to project)
For recreate stub class you must have follow:
Install prerequisites for proto stub generation
Install Proto C
# Get the latest version number of protoc
LATEST_VERSION=$(curl --silent "https://api.github.com/repos/protocolbuffers/protobuf/releases/latest" |
grep -Po '"tag_name": "\K.*?(?=")' |
sed -E 's|v||g')
ARCHITECTURE=$(arch)
ZIP_FILE=protoc-$1-linux-$ARCHITECTURE.zip
# Download latest version
URL="https://github.com/protocolbuffers/protobuf/releases/download/v$LATEST_VERSION/$ZIP_FILE"
curl -OL $URL
# Extract and overwrite into dir
sudo unzip -o $ZIP_FILE -d /usr/local bin/protoc
sudo unzip -o $ZIP_FILE -d /usr/local 'include/*'
# Delete donwloaded file
rm -f -v $ZIP_FILE
# Assign read and execute permissions
sudo chmod 755 /usr/local/bin/protoc
sudo chmod 755 -R /usr/local/include/google/When installation is complete, check the version with
protoc --versionInstall Proto C Gen gRPC Web
This is only used to generate the stub if gRPC is handled on the client side.
# Get the latest version number of protoc-gen-grpc-web
LATEST_VERSION=$(curl --silent "https://api.github.com/repos/grpc/grpc-web/releases/latest" |
grep -Po '"tag_name": "\K.*?(?=")' |
sed -E 's|v||g')
FILE=protoc-gen-grpc-web
# Download
URL=https://github.com/grpc/grpc-web/releases/download/$LATEST_VERSION/$FILE-$1-linux-x86_64
curl -L $URL -o $FILE
# Extract and overwrite into dir
sudo mv -f -v $FILE /usr/local/bin/
# Assign read and execute permissions
sudo chmod 755 /usr/local/bin/$FILEInstall gRPC Tools (Node Proto C)
It can be installed as a global dependency although it is already managed as a project dependency.
Via npm:
sudo npm install -g grpc-toolsVia yarn:
yarn global add grpc-toolsGenerate Proto Stub:
Generate with npm (Recommended):
# install dependecies and dev dependencies
npm i
# generate all stub
npm run stubNote to generate specific proto definition:
- To access:
npm run stub:access - To base data type:
npm run stub:base_data_type - To business:
npm run stub:business - To client:
npm run stub:client - To core functionality:
npm run stub:core_functionality - To dictionary:
npm run stub:dictionary - To enrollment:
npm run stub:enrollment - To point of sales:
npm run stub:point_of_sales
Generate directly with grpc_tools_node_protoc:
Generate all stub:
grpc_tools_node_protoc \
--js_out=import_style=commonjs,binary:src/grpc \
--grpc_out=src/grpc \
proto/access.proto proto/base_data_type.proto proto/business.proto proto/client.proto proto/core_functionality.proto proto/dictionary.proto proto/enrollment.proto proto/point_of_sales.proto
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To access:
# Generate stub to access.proto file
grpc_tools_node_protoc \
proto/access.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To base data type:
# Generate stub to base_data_type.proto file
grpc_tools_node_protoc \
proto/base_data_type.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To business:
# Generate stub to business.proto file
grpc_tools_node_protoc \
proto/business.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To client:
# Generate stub to client.proto file
grpc_tools_node_protoc \
proto/access.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To core functionality:
# Generate stub to access.proto file
grpc_tools_node_protoc \
proto/core_functionality.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To dictionary:
# Generate stub to access.proto file
grpc_tools_node_protoc \
proto/dictionary.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To enrollment:
# Generate stub to access.proto file
grpc_tools_node_protoc \
proto/enrollment.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIR- To point of sales:
# Generate stub to access.proto file
grpc_tools_node_protoc \
proto/point_of_sales.proto \
--js_out=import_style=commonjs,binary:$OUT_DIR \
--grpc_out=grpc_js:$OUT_DIR
# --grpc-web_out=import_style=commonjs,mode=grpcwebtext:$OUT_DIROutput proto stub
The result is generated on: src/grpc/proto/ folder
access_grpc_pb.jsaccess_pb.jsbase_data_type_grpc_pb.jsbase_data_type_pb.jsbusiness_grpc_pb.jsbusiness_pb.jsclient_grpc_pb.jsclient_pb.jscore_functionality_grpc_pb.jscore_functionality_pb.jsdictionary_grpc_pb.jsdictionary_pb.jsenrollment_grpc_pb.jsenrollment_pb.jspoint_of_sales_grpc_pb.jspoint_of_sales_pb.js
Sponsors
Become a sponsor and get your logo on our README on GitHub with a link to your site. Become a sponsor
