BUILD.bazel
load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test")
load("@npm//@angular/build-tooling/bazel/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_module", "ng_package", "tsec_test")
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",
)
ng_module(
name = "core",
srcs = glob(
[
"*.ts",
"src/**/*.ts",
],
),
deps = [
"//packages:types",
"//packages/core/primitives/event-dispatch",
"//packages/core/primitives/signals",
"//packages/core/src/compiler",
"//packages/core/src/di/interface",
"//packages/core/src/interface",
"//packages/core/src/reflection",
"//packages/core/src/util",
"//packages/zone.js/lib:zone_d_ts",
"@npm//rxjs",
],
)
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__",
"//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/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",
)
genrule(
name = "event_dispatch_contract_binary",
srcs = ["//packages/core/primitives/event-dispatch:contract_bundle_min"],
outs = ["event-dispatch-contract.min.js"],
cmd = "cp $< $@",
)