feat: support generating TypeScript definitions to be used with @grpc/proto-loader

This commit is contained in:
Nex Zhu
2021-07-15 15:30:07 +08:00
parent 6b2c291f27
commit 6839c4f573
4 changed files with 789 additions and 12 deletions

39
grpc/tasks.py Normal file
View File

@@ -0,0 +1,39 @@
from invoke import task
from pathlib import Path
ROOT = Path(__file__).parent
PB_ROOT = ROOT / "pb"
# @task
# def clean(c, docs=False, bytecode=False, extra=""):
# patterns = ["build"]
# if docs:
# patterns.append("docs/_build")
# if bytecode:
# patterns.append("**/*.pyc")
# if extra:
# patterns.append(extra)
# for pattern in patterns:
# c.run("rm -rf {}".format(pattern))
@task(
help={
"target": "Target gRPC licent code to generate.",
}
)
def gen(c, target="types"):
"""
Generate gRPC client code.
"""
outDir = "gen/types"
paths = Path(PB_ROOT).glob('**/*.proto')
for path in paths:
# because path is object not string
pathStr = str(path)
print("Generating f or", pathStr)
c.run(
"npx proto-loader-gen-types --includeComments --grpcLib @grpc/grpc-js -I pb -O {} {}"
.format(outDir, pathStr)
)