blob: 7e3d262e846f02df7f31dbea63f4b7fb81d64443 [file]
load("@rules_proto_grpc//:defs.bzl", "proto_plugin")
load("@rules_proto_grpc_js_npm//:defs.bzl", "npm_link_all_packages")
load("@rules_proto_grpc_js_npm//:grpc-tools/package_json.bzl", grpc_tools = "bin")
load("@rules_proto_grpc_js_npm//:ts-protoc-gen/package_json.bzl", ts_protoc_gen = "bin")
npm_link_all_packages(name = "node_modules")
proto_plugin(
name = "proto_plugin",
exclusions = [
"google/protobuf",
],
options = [
"import_style=commonjs",
"binary",
],
outputs = ["{protopath}_pb.js"],
tool = select({
"@rules_proto_grpc//platforms:darwin_arm64": "@protoc_gen_protobuf_javascript_plugin_darwin_arm64//:bin/protoc-gen-js",
"@rules_proto_grpc//platforms:darwin_x86_64": "@protoc_gen_protobuf_javascript_plugin_darwin_x86_64//:bin/protoc-gen-js",
"@rules_proto_grpc//platforms:linux_aarch64": "@protoc_gen_protobuf_javascript_plugin_linux_arm64//:bin/protoc-gen-js",
"@rules_proto_grpc//platforms:linux_x86_64": "@protoc_gen_protobuf_javascript_plugin_linux_x86_64//:bin/protoc-gen-js",
# "@rules_proto_grpc//platforms:windows_arm64": "@protoc_gen_protobuf_javascript_plugin_windows_arm64//:bin/protoc-gen-js.exe",
"@rules_proto_grpc//platforms:windows_x86_64": "@protoc_gen_protobuf_javascript_plugin_windows_x86_64//:bin/protoc-gen-js.exe",
}),
visibility = ["//visibility:public"],
)
ts_protoc_gen.protoc_gen_ts_binary(name = "protoc_gen_ts_binary")
proto_plugin(
name = "proto_ts_plugin",
outputs = ["{protopath}_pb.d.ts"],
tool = ":protoc_gen_ts_binary",
visibility = ["//visibility:public"],
)
grpc_tools.grpc_tools_node_protoc_plugin_binary(name = "grpc_tools_node_protoc_plugin_binary")
proto_plugin(
name = "grpc_plugin",
empty_template = "empty.template",
exclusions = [
"google/protobuf",
],
options = [
"grpc_js",
],
outputs = ["{protopath}_grpc_pb.js"],
tool = ":grpc_tools_node_protoc_plugin_binary",
visibility = ["//visibility:public"],
)
proto_plugin(
name = "grpc_ts_plugin",
empty_template = "empty.template",
options = [
"service=grpc-node",
"mode=grpc-js",
],
outputs = ["{protopath}_grpc_pb.d.ts"],
tool = ":protoc_gen_ts_binary",
visibility = ["//visibility:public"],
)
proto_plugin(
name = "grpc_web_js_plugin",
empty_template = "empty.template",
options = [
"import_style=commonjs+dts",
"mode=grpcweb",
],
outputs = [
"{protopath}_grpc_web_pb.js",
"{protopath}_grpc_web_pb.d.ts",
],
tool = select({
"@rules_proto_grpc//platforms:darwin_arm64": "@protoc_gen_grpc_web_plugin_darwin_arm64//file",
"@rules_proto_grpc//platforms:darwin_x86_64": "@protoc_gen_grpc_web_plugin_darwin_x86_64//file",
"@rules_proto_grpc//platforms:linux_aarch64": "@protoc_gen_grpc_web_plugin_linux_arm64//file",
"@rules_proto_grpc//platforms:linux_x86_64": "@protoc_gen_grpc_web_plugin_linux_x86_64//file",
"@rules_proto_grpc//platforms:windows_arm64": "@protoc_gen_grpc_web_plugin_windows_arm64//file",
"@rules_proto_grpc//platforms:windows_x86_64": "@protoc_gen_grpc_web_plugin_windows_x86_64//file",
}),
visibility = ["//visibility:public"],
)