angular/packages/compiler-cli/BUILD.bazel
Paul Gschwendtner 93c74ef492 build: migrate partial compliance tests to rules_js (#61865)
Migrates the partial compliance tests to `rules_js`. Also as part of
this, we re-enable RBE to see if that fixed the issues, or in case
they are already resolved from the RBE side.

PR Close #61865
2025-06-05 12:04:51 +02:00

187 lines
5.6 KiB
Text

load("@npm//@bazel/esbuild:index.bzl", "esbuild", "esbuild_config")
load("@npm2//:defs.bzl", "npm_link_all_packages")
load("//tools:defaults.bzl", "api_golden_test", "extract_types", "pkg_npm")
load("//tools:defaults2.bzl", "npm_package", "ts_config", "ts_project")
package(default_visibility = ["//visibility:public"])
PUBLIC_TARGETS = [
":compiler-cli",
"//packages/compiler-cli/private",
"//packages/compiler-cli/linker",
"//packages/compiler-cli/linker/babel",
]
npm_link_all_packages()
ts_config(
name = "tsconfig_build",
src = "tsconfig.json",
deps = [
"//:node_modules/@types/node",
"//packages:tsconfig_build",
],
)
ts_config(
name = "tsconfig_test",
testonly = True,
src = "tsconfig-test.json",
deps = [
":tsconfig_build",
"//:node_modules/@types/jasmine",
],
)
esbuild_config(
name = "esbuild_config",
config_file = "esbuild.config.js",
)
esbuild(
name = "bundles",
config = ":esbuild_config",
entry_points = [
":index.ts",
"//packages/compiler-cli:src/bin/ngc.ts",
"//packages/compiler-cli:src/bin/ng_xi18n.ts",
"//packages/compiler-cli/linker:index.ts",
"//packages/compiler-cli/linker/babel:index.ts",
"//packages/compiler-cli/private:localize.ts",
"//packages/compiler-cli/private:migrations.ts",
"//packages/compiler-cli/private:tooling.ts",
],
external = [
"@angular/compiler",
"typescript",
"@babel/core",
"reflect-metadata",
"chokidar",
"convert-source-map",
"semver",
"@jridgewell/sourcemap-codec",
"tslib",
"yargs",
],
format = "esm",
metafile = False,
platform = "node",
splitting = True,
target = "node20",
deps = PUBLIC_TARGETS,
)
ts_project(
name = "compiler-cli",
srcs = glob(
[
"*.ts",
"src/**/*.ts",
],
exclude = [
"src/integrationtest/**/*.ts",
],
),
deps = [
"//:node_modules/@types/yargs",
"//:node_modules/chokidar",
"//:node_modules/reflect-metadata",
"//:node_modules/typescript",
"//packages/compiler:compiler_rjs",
"//packages/compiler-cli/private:private_rjs",
"//packages/compiler-cli/src/ngtsc/core:api_rjs",
"//packages/compiler-cli/src/ngtsc/core:core_rjs",
"//packages/compiler-cli/src/ngtsc/diagnostics:diagnostics_rjs",
"//packages/compiler-cli/src/ngtsc/docs:docs_rjs",
"//packages/compiler-cli/src/ngtsc/file_system:file_system_rjs",
"//packages/compiler-cli/src/ngtsc/incremental:incremental_rjs",
"//packages/compiler-cli/src/ngtsc/indexer:indexer_rjs",
"//packages/compiler-cli/src/ngtsc/logging:logging_rjs",
"//packages/compiler-cli/src/ngtsc/perf:perf_rjs",
"//packages/compiler-cli/src/ngtsc/program_driver:program_driver_rjs",
"//packages/compiler-cli/src/ngtsc/reflection:reflection_rjs",
"//packages/compiler-cli/src/ngtsc/shims:shims_rjs",
"//packages/compiler-cli/src/ngtsc/transform/jit:jit_rjs",
"//packages/compiler-cli/src/ngtsc/translator:translator_rjs",
"//packages/compiler-cli/src/ngtsc/typecheck:typecheck_rjs",
"//packages/compiler-cli/src/ngtsc/typecheck/api:api_rjs",
"//packages/compiler-cli/src/ngtsc/util:util_rjs",
],
)
extract_types(
name = "api_type_definitions",
deps = PUBLIC_TARGETS,
)
pkg_npm(
name = "npm_package",
package_name = "@angular/compiler-cli",
srcs = [
"package.json",
],
tags = [
"release-with-framework",
],
visibility = [
"//adev:__pkg__",
"//integration:__subpackages__",
"//modules/benchmarks:__subpackages__",
"//modules/playground:__subpackages__",
"//modules/ssr-benchmarks:__subpackages__",
"//packages/compiler-cli/integrationtest:__pkg__",
"//packages/core/test/bundling:__subpackages__",
"//packages/core/test/playground/zone-signal-input:__pkg__",
"@npm//@angular/build-tooling/shared-scripts:__subpackages__",
],
deps = [
":api_type_definitions",
":bundles",
],
)
# TODO(rules_js migration): Remove when adev uses pnpm workspaces.
alias(
name = "npm_package__adev_link",
actual = ":npm_package",
)
# TODO(devversion): Temporary early `npm_package` for making compiler-cli usable in `rules_angular`.
# Long-term, `pkg_npm` will be migrated to `npm_package` in general.
npm_package(
name = "pkg",
srcs = [":npm_package"],
replace_prefixes = {
"npm_package/": "",
},
)
api_golden_test(
name = "error_code_api",
data = [
":npm_package",
"//goldens:public-api",
],
entry_point = "angular/packages/compiler-cli/npm_package/src/ngtsc/diagnostics/src/error_code.d.ts",
golden = "angular/goldens/public-api/compiler-cli/error_code.api.md",
)
api_golden_test(
name = "extended_template_diagnostic_name_api",
data = [
":npm_package",
"//goldens:public-api",
],
entry_point = "angular/packages/compiler-cli/npm_package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts",
golden = "angular/goldens/public-api/compiler-cli/extended_template_diagnostic_name.api.md",
)
api_golden_test(
name = "compiler_options_api",
data = [
":npm_package",
"//goldens:public-api",
],
entry_point = "angular/packages/compiler-cli/npm_package/src/ngtsc/core/api/src/public_options.d.ts",
golden = "angular/goldens/public-api/compiler-cli/compiler_options.api.md",
)