angular/packages/core/BUILD.bazel
Paul Gschwendtner e056fa13df build: migrate more targets of @angular/core to ts_project (#61420)
Migrates more targets of `@angular/core` to `ts_project`. Remaining are:

 - tests
 - schematics

PR Close #61420
2025-05-16 15:53:27 +00:00

174 lines
5.2 KiB
Text

load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test")
load("//adev/shared-docs/pipeline/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//packages/common/locales:index.bzl", "generate_base_locale_file")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_package", "tsec_test")
load("//tools:defaults2.bzl", "ng_project", "ts_config")
package(default_visibility = ["//visibility:public"])
# This generates the `src/i18n/locale_en.ts` file through the `generate-locales` tool. Since
# the base locale file is checked-in for Google3, we add a `generated_file_test` to ensure
# the checked-in file is up-to-date. To disambiguate from the test, we use a more precise target
# name here.
generate_base_locale_file(
name = "base_locale_file_generated",
output_file = "base_locale_file_generated.ts",
)
generated_file_test(
name = "base_locale_file",
src = "src/i18n/locale_en.ts",
generated = ":base_locale_file_generated",
)
ts_config(
name = "tsconfig_build",
src = "tsconfig-build.json",
deps = ["//packages:tsconfig_build"],
)
ts_config(
name = "tsconfig_test",
src = "tsconfig-test.json",
deps = ["//packages:tsconfig_test"],
)
ng_project(
name = "core",
srcs = glob(
[
"*.ts",
"src/**/*.ts",
],
),
interop_deps = [
"//packages/core/primitives/di",
"//packages/core/primitives/dom-navigation",
"//packages/core/primitives/event-dispatch",
"//packages/zone.js/lib:zone_d_ts",
],
deps = [
"//:node_modules/rxjs",
"//packages:goog_types_rjs",
"//packages/core/primitives/signals:signals_rjs",
"//packages/core/src/compiler:compiler_rjs",
"//packages/core/src/di/interface:interface_rjs",
"//packages/core/src/interface:interface_rjs",
"//packages/core/src/reflection:reflection_rjs",
"//packages/core/src/util:util_rjs",
],
)
tsec_test(
name = "tsec_test",
target = "core",
tsconfig = "//packages:tsec_config",
)
ng_package(
name = "npm_package",
package_name = "@angular/core",
srcs = [
"package.json",
":event_dispatch_contract_binary",
],
nested_packages = [
"//packages/core/schematics:npm_package",
],
tags = [
"release-with-framework",
],
# Do not add more to this list.
# Dependencies on the full npm_package cause long re-builds.
visibility = [
"//adev:__pkg__",
"//adev/shared-docs:__subpackages__",
"//integration:__subpackages__",
"//modules/ssr-benchmarks:__subpackages__",
"//packages/bazel/test/ng_package:__pkg__",
"//packages/compiler-cli/src/ngtsc/metadata/test:__subpackages__",
"//packages/compiler-cli/src/ngtsc/typecheck/extended/test:__subpackages__",
"//packages/compiler-cli/src/ngtsc/typecheck/test:__subpackages__",
"//packages/compiler-cli/test:__subpackages__",
"//packages/compiler/test:__pkg__",
"//packages/language-service/test:__pkg__",
],
deps = [
":core",
"//packages/core/primitives/di",
"//packages/core/primitives/event-dispatch",
"//packages/core/primitives/signals",
"//packages/core/rxjs-interop",
"//packages/core/testing",
],
)
api_golden_test_npm_package(
name = "core_api",
data = [
":npm_package",
"//goldens:public-api",
],
golden_dir = "angular/goldens/public-api/core",
npm_package = "angular/packages/core/npm_package",
strip_export_pattern = "^ɵ(?!.*ApiGuard)",
)
api_golden_test(
name = "ng_global_utils_api",
data = [
"//goldens:public-api",
"//packages/core",
# Additional targets the entry-point indirectly resolves `.d.ts` source files from.
# These are transitive to `:core`, but need to be listed explicitly here as only
# transitive `JSModule` information is collected (missing the type definitions).
"//packages/core/src/compiler",
"//packages/core/src/di/interface",
"//packages/core/src/interface",
"//packages/core/src/reflection",
"//packages/core/src/util",
],
entry_point = "angular/packages/core/src/render3/global_utils_api.d.ts",
golden = "angular/goldens/public-api/core/global_utils.api.md",
)
api_golden_test(
name = "core_errors",
data = [
"//goldens:public-api",
"//packages/core",
],
entry_point = "angular/packages/core/src/errors.d.ts",
golden = "angular/goldens/public-api/core/errors.api.md",
)
filegroup(
name = "files_for_docgen",
srcs = glob([
"*.ts",
"src/**/*.ts",
]) + [
"PACKAGE.md",
],
)
generate_api_docs(
name = "core_docs",
srcs = [
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/core",
private_modules = [
"//packages/core/primitives/di",
"core/primitives/signals",
"core/primitives/event-dispatch",
],
)
genrule(
name = "event_dispatch_contract_binary",
srcs = ["//packages/core/primitives/event-dispatch:contract_bundle_min"],
outs = ["event-dispatch-contract.min.js"],
cmd = "cp $< $@",
)