Skip to content

Latest commit

 

History

History
140 lines (99 loc) · 5.27 KB

protobufjs.md

File metadata and controls

140 lines (99 loc) · 5.27 KB

Protobuf.js

Guide

Reference

Starlark reference

Install

Add protobufjs as an external dependency.

Configure

BUILD.bazel

load("@better_rules_javascript//protobufjs:rules.bzl", configure_js_proto)

configure_js_proto(
    name = "js_proto",
    dep = "@npm//protobufjs:lib",
)

Use

load("@better_rules_javascript//commonjs:rules.bzl", "cjs_root")
load("@better_rules_javascript//protobufjs:rules.bzl", "js_proto_library")
load("@rules_proto//proto:defs.bzl", "proto_library")

cjs_root(
    descriptor = "package.json",
    name = "root",
)

proto_library(
    name = "proto",
    srcs = glob(["**/*.proto"]),
)

js_proto_library(
    module_name = "pb.js",
    name = "proto_js",
    root = ":root",
    js_proto = "//:js_protojs",
    deps = [":proto"],
)

//protobufjs:providers.bzl

JsProtobuf

JsProtobuf(runtime, bin)

FIELDS

Name Description
runtime Runtime dependencies
bin Executable

//protobufjs:rules.bzl

js_proto

js_proto(name, bin, runtime)

ATTRIBUTES

Name Description Type Mandatory Default
name A unique name for this target. Name required
bin - Label required
runtime - Label required

js_proto_library

js_proto_library(name, deps, js_proto, output, root)

ATTRIBUTES

Name Description Type Mandatory Default
name A unique name for this target. Name required
deps Protobufs List of labels required
js_proto Config Label required
output - Label required
root CommonJS root Label required

configure_js_proto

configure_js_proto(name, dep, visibility)

PARAMETERS

Name Description Default Value
name

-

none
dep

-

none
visibility

-

None