| # 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. |
| |
| # BEGIN-DEV-ONLY |
| # Parts of this BUILD file only necessary when building within the bazelbuild/rules_typescript repo. |
| # The generated `@bazel/typescript` npm package contains a trimmed BUILD file using # DEV-ONLY fences. |
| # |
| # 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") |
| |
| # END-DEV-ONLY |
| load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary", "npm_package") |
| |
| # BEGIN-DEV-ONLY |
| load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "js_library") |
| load("//:version.bzl", "COMPAT_VERSION") |
| |
| # 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"], |
| ) |
| |
| npm_package( |
| name = "npm_package", |
| srcs = [ |
| "BUILD.bazel", |
| "LICENSE", |
| "README.md", |
| "WORKSPACE", |
| "defs.bzl", |
| "package.bzl", |
| "package.json", |
| "version.bzl", |
| "//devserver:npm_package_assets", |
| "//internal:npm_package_assets", |
| "//third_party/github.com/bazelbuild/bazel/src/main/protobuf:npm_package_assets", |
| "//ts_auto_deps:npm_package_assets", |
| ], |
| replacements = { |
| "(#|\/\/)\\s+BEGIN-DEV-ONLY[\\w\W]+?(#|\/\/)\\s+END-DEV-ONLY": "", |
| # Do a simple replacement needed to make the local development differ |
| # from how our release is used. |
| "//devserver:devserver_bin": "//devserver", |
| "0.0.0-COMPAT_VERSION": COMPAT_VERSION, |
| }, |
| deps = [ |
| "//devserver:devserver-darwin", |
| "//devserver:devserver-linux", |
| "//devserver:devserver-windows", |
| "//internal:generated_BUILD", |
| "//internal:tsc_wrapped", |
| "//ts_auto_deps:ts_auto_deps-darwin", |
| "//ts_auto_deps:ts_auto_deps-linux", |
| "//ts_auto_deps:ts_auto_deps-windows", |
| ], |
| ) |
| |
| # Produces the release we publish to GitHub. Users download this starlark package |
| # to get the @build_bazel_rules_typescript workspace. |
| # FIXME(gregmagolan): strip the npm_package prefix from within the generated archive |
| # pkg_tar( |
| # name = "release", |
| # srcs = ["//:npm_package"], |
| # extension = "tgz", |
| # ) |
| |
| # END-DEV-ONLY |
| # 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. A generated @npm//@bazel/typescript/bin:tsc_wrapped target |
| # would 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/internal/tsc_wrapped/tsc_wrapped.js", |
| install_source_map_support = False, |
| templated_args = ["--node_options=--expose-gc"], |
| visibility = ["//visibility:public"], |
| ) |