blob: c11b189cbee840f919a3b5fd1c1c5b5e7ed4fd3b [file] [log] [blame]
# Copyright 2017 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# To update BUILD.bazel files after changing Go code, run
# bazel run //:gazelle
#
# Exclude node_modules, see
# https://github.com/bazelbuild/rules_go/blob/master/go/tools/gazelle/README.rst#directives
# gazelle:exclude node_modules
load("@bazel_gazelle//:def.bzl", "gazelle")
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary")
load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "js_library")
# ts_library defaults to this label in the top-level package.
# Point to where the file actually lives.
alias(
name = "tsconfig.json",
actual = "//examples:tsconfig.json",
visibility = ["//visibility:public"],
)
exports_files(["LICENSE"])
gazelle(
name = "gazelle",
prefix = "github.com/bazelbuild/rules_typescript",
)
# Runtime libraries needed by the protobufjs library.
# Any JS code produced by the ts_proto_library rule has a runtime dependency on these scripts.
js_library(
name = "protobufjs_bootstrap_scripts",
srcs = [
"@build_bazel_rules_typescript_protobufs_compiletime_deps//node_modules/long:dist/long.js",
"@build_bazel_rules_typescript_protobufs_compiletime_deps//node_modules/protobufjs:dist/minimal/protobuf.min.js",
],
# Make devmode loading work when it does require("protobufjs/minimal")
# so this is shimmed to define it to equal global.protobuf
amd_names = {
"long": "Long",
"protobufjs/minimal": "protobuf",
},
visibility = ["//visibility:public"],
)
# A nodejs_binary for @bazel/typescript/tsc_wrapped to use by default in
# ts_library that depends on @npm//@bazel/typescript instead of the
# output of the //internal/tsc_wrapped ts_library rule. This
# default is for downstream users that depend on the @bazel/typescript npm
# package. The generated @npm//@bazel/typescript/bin:tsc_wrapped target
# does not work because it does not have the node `--expose-gc` flag
# set which is required to support the call to `global.gc()`.
nodejs_binary(
name = "@bazel/typescript/tsc_wrapped",
data = ["@npm//@bazel/typescript"],
entry_point = "@bazel/typescript/tsc_wrapped/tsc_wrapped.js",
install_source_map_support = False,
templated_args = ["--node_options=--expose-gc"],
visibility = ["//visibility:public"],
)
# Produces the release we publish to GitHub. Users download this starlark package
# to get the @build_bazel_rules_typescript workspace.
# It's the companion of the @bazel/typescript, @bazel/karma, etc npm packages.
pkg_tar(
name = "release",
srcs = [
"AUTHORS",
"BUILD.bazel",
"LICENSE",
"WORKSPACE",
"defs.bzl",
"package.bzl",
],
extension = "tgz",
deps = [
"//devserver:package",
"//internal:package",
"//third_party/github.com/bazelbuild/bazel/src/main/protobuf:package",
],
)