2025-07-29 17:23:38 +00:00
|
|
|
load("@aspect_rules_js//js:defs.bzl", _js_library = "js_library")
|
2025-05-07 13:35:29 +00:00
|
|
|
load("@aspect_rules_ts//ts:defs.bzl", _ts_config = "ts_config")
|
2026-03-09 09:00:12 +00:00
|
|
|
load("@bazel_lib//lib:copy_to_bin.bzl", _copy_to_bin = "copy_to_bin")
|
2025-08-01 15:30:38 +00:00
|
|
|
load("@devinfra//bazel:extract_types.bzl", _extract_types = "extract_types")
|
2025-08-27 16:35:57 +00:00
|
|
|
load("@devinfra//bazel/api-golden:index.bzl", _api_golden_test = "api_golden_test", _api_golden_test_npm_package = "api_golden_test_npm_package")
|
2025-07-14 14:41:41 +00:00
|
|
|
load("@devinfra//bazel/http-server:index.bzl", _http_server = "http_server")
|
2025-08-27 16:32:52 +00:00
|
|
|
load("@devinfra//bazel/ts_project:index.bzl", "strict_deps_test")
|
2025-12-04 21:07:59 +00:00
|
|
|
load("@rules_angular//src/ng_examples_db:index.bzl", _ng_examples_db = "ng_examples_db")
|
2025-05-01 14:57:38 +00:00
|
|
|
load("@rules_angular//src/ng_project:index.bzl", _ng_project = "ng_project")
|
2025-08-27 16:32:52 +00:00
|
|
|
load("@rules_angular//src/ts_project:index.bzl", _ts_project = "ts_project")
|
2025-06-26 15:58:33 +00:00
|
|
|
load("@rules_sass//src:index.bzl", _npm_sass_library = "npm_sass_library", _sass_binary = "sass_binary", _sass_library = "sass_library")
|
2025-07-29 15:40:28 +00:00
|
|
|
load("//adev/shared-docs/pipeline/api-gen:generate_api_docs.bzl", _generate_api_docs = "generate_api_docs")
|
2025-07-24 18:12:12 +00:00
|
|
|
load("//tools/bazel:esbuild.bzl", _esbuild = "esbuild", _esbuild_checked_in = "esbuild_checked_in")
|
2025-07-16 19:44:57 +00:00
|
|
|
load("//tools/bazel:jasmine_test.bzl", _angular_jasmine_test = "angular_jasmine_test", _jasmine_test = "jasmine_test", _zone_compatible_jasmine_test = "zone_compatible_jasmine_test", _zoneless_jasmine_test = "zoneless_jasmine_test")
|
2025-07-28 20:15:17 +00:00
|
|
|
load("//tools/bazel:js_defs.bzl", _js_binary = "js_binary", _js_run_binary = "js_run_binary", _js_test = "js_test")
|
2025-08-01 15:30:38 +00:00
|
|
|
load("//tools/bazel:npm_packages.bzl", _ng_package = "ng_package", _npm_package = "npm_package")
|
2025-07-08 17:22:09 +00:00
|
|
|
load("//tools/bazel:protractor_test.bzl", _protractor_web_test_suite = "protractor_web_test_suite")
|
2025-07-25 19:32:06 +00:00
|
|
|
load("//tools/bazel:tsec.bzl", _tsec_test = "tsec_test")
|
2025-07-24 18:12:12 +00:00
|
|
|
load("//tools/bazel:web_test.bzl", _ng_web_test_suite = "ng_web_test_suite", _web_test = "web_test", _zoneless_web_test_suite = "zoneless_web_test_suite")
|
2025-05-01 14:57:38 +00:00
|
|
|
|
2025-07-29 14:52:40 +00:00
|
|
|
extract_types = _extract_types
|
2025-07-24 18:12:12 +00:00
|
|
|
esbuild = _esbuild
|
2025-07-18 15:08:55 +00:00
|
|
|
js_binary = _js_binary
|
2025-07-28 20:15:17 +00:00
|
|
|
js_run_binary = _js_run_binary
|
2025-07-18 15:08:55 +00:00
|
|
|
js_test = _js_test
|
2025-05-09 16:42:03 +00:00
|
|
|
npm_package = _npm_package
|
2025-05-07 13:35:29 +00:00
|
|
|
ts_config = _ts_config
|
2025-06-03 11:40:54 +00:00
|
|
|
ng_package = _ng_package
|
2025-06-05 12:47:15 +00:00
|
|
|
jasmine_test = _jasmine_test
|
2025-06-05 12:48:49 +00:00
|
|
|
angular_jasmine_test = _angular_jasmine_test
|
2025-07-16 19:44:57 +00:00
|
|
|
zone_compatible_jasmine_test = _zone_compatible_jasmine_test
|
2025-06-16 18:07:36 +00:00
|
|
|
zoneless_jasmine_test = _zoneless_jasmine_test
|
2025-06-26 12:50:03 +00:00
|
|
|
ng_web_test_suite = _ng_web_test_suite
|
|
|
|
|
zoneless_web_test_suite = _zoneless_web_test_suite
|
2025-07-24 18:12:12 +00:00
|
|
|
web_test = _web_test
|
2025-06-26 13:57:20 +00:00
|
|
|
sass_binary = _sass_binary
|
|
|
|
|
sass_library = _sass_library
|
2025-06-26 15:58:33 +00:00
|
|
|
npm_sass_library = _npm_sass_library
|
2025-07-08 17:22:09 +00:00
|
|
|
protractor_web_test_suite = _protractor_web_test_suite
|
2025-07-09 20:01:30 +00:00
|
|
|
esbuild_checked_in = _esbuild_checked_in
|
2025-07-14 14:41:41 +00:00
|
|
|
http_server = _http_server
|
2025-07-17 17:31:38 +00:00
|
|
|
api_golden_test = _api_golden_test
|
|
|
|
|
api_golden_test_npm_package = _api_golden_test_npm_package
|
2025-07-23 18:26:58 +00:00
|
|
|
copy_to_bin = _copy_to_bin
|
2025-07-25 19:32:06 +00:00
|
|
|
tsec_test = _tsec_test
|
2025-07-29 17:23:38 +00:00
|
|
|
js_library = _js_library
|
2025-12-04 21:07:59 +00:00
|
|
|
ng_examples_db = _ng_examples_db
|
2025-05-07 13:35:29 +00:00
|
|
|
|
2025-05-14 16:02:30 +00:00
|
|
|
def _determine_tsconfig(testonly):
|
2025-06-02 14:18:09 +00:00
|
|
|
if native.package_name().startswith("packages/compiler-cli"):
|
2025-05-14 16:02:30 +00:00
|
|
|
return "//packages/compiler-cli:tsconfig_test" if testonly else "//packages/compiler-cli:tsconfig_build"
|
|
|
|
|
|
|
|
|
|
if native.package_name().startswith("packages/service-worker"):
|
|
|
|
|
return "//packages:tsconfig_test" if testonly else "//packages/service-worker:tsconfig_build"
|
|
|
|
|
|
2025-05-15 16:02:08 +00:00
|
|
|
if native.package_name().startswith("packages/core/schematics"):
|
|
|
|
|
return "//packages/core/schematics:tsconfig_test" if testonly else "//packages/core/schematics:tsconfig_build"
|
|
|
|
|
|
2025-05-15 11:26:19 +00:00
|
|
|
if native.package_name().startswith("packages/core"):
|
|
|
|
|
return "//packages/core:tsconfig_test" if testonly else "//packages/core:tsconfig_build"
|
|
|
|
|
|
2025-05-19 21:12:09 +00:00
|
|
|
if native.package_name().startswith("packages/benchpress"):
|
|
|
|
|
return "//packages:tsconfig_test" if testonly else "//packages/benchpress:tsconfig_build"
|
|
|
|
|
|
2025-05-21 12:09:13 +00:00
|
|
|
if native.package_name().startswith("packages/language-service"):
|
|
|
|
|
return "//packages:tsconfig_test" if testonly else "//packages/language-service:tsconfig_build"
|
|
|
|
|
|
2025-05-22 16:17:28 +00:00
|
|
|
if native.package_name().startswith("packages/localize/tools"):
|
|
|
|
|
return "//packages:tsconfig_test" if testonly else "//packages/localize/tools:tsconfig_build"
|
|
|
|
|
|
2025-05-23 13:46:27 +00:00
|
|
|
if native.package_name().startswith("packages/common/locales/generate-locales-tool"):
|
|
|
|
|
return "//packages:tsconfig_test" if testonly else "//packages/common/locales/generate-locales-tool:tsconfig_build"
|
|
|
|
|
|
2025-05-23 16:25:04 +00:00
|
|
|
if native.package_name().startswith("packages/examples"):
|
|
|
|
|
return "//packages/examples:tsconfig_test" if testonly else "//packages/examples:tsconfig_build"
|
|
|
|
|
|
2025-05-14 16:02:30 +00:00
|
|
|
if native.package_name().startswith("packages"):
|
|
|
|
|
return "//packages:tsconfig_test" if testonly else "//packages:tsconfig_build"
|
|
|
|
|
|
2025-05-23 17:27:09 +00:00
|
|
|
if native.package_name().startswith("tools"):
|
|
|
|
|
return "//tools:tsconfig_test" if testonly else "//tools:tsconfig_build"
|
|
|
|
|
|
2025-10-09 10:09:32 +00:00
|
|
|
if native.package_name().startswith("vscode-ng-language-service"):
|
|
|
|
|
return "//vscode-ng-language-service:tsconfig_test" if testonly else "//vscode-ng-language-service:tsconfig_build"
|
|
|
|
|
|
2025-05-14 16:02:30 +00:00
|
|
|
fail("Failing... a tsconfig value must be provided.")
|
|
|
|
|
|
2025-05-01 14:57:38 +00:00
|
|
|
def ts_project(
|
|
|
|
|
name,
|
2025-08-27 16:32:52 +00:00
|
|
|
deps = [],
|
|
|
|
|
srcs = [],
|
2025-05-01 14:57:38 +00:00
|
|
|
source_map = True,
|
|
|
|
|
testonly = False,
|
|
|
|
|
tsconfig = None,
|
|
|
|
|
**kwargs):
|
2025-05-07 14:06:18 +00:00
|
|
|
if tsconfig == None:
|
2025-05-14 16:02:30 +00:00
|
|
|
tsconfig = _determine_tsconfig(testonly)
|
2025-05-01 14:57:38 +00:00
|
|
|
|
|
|
|
|
_ts_project(
|
|
|
|
|
name,
|
2025-08-27 16:32:52 +00:00
|
|
|
srcs = srcs,
|
|
|
|
|
deps = deps,
|
|
|
|
|
declaration = True,
|
2025-05-01 14:57:38 +00:00
|
|
|
source_map = source_map,
|
|
|
|
|
testonly = testonly,
|
|
|
|
|
tsconfig = tsconfig,
|
|
|
|
|
**kwargs
|
|
|
|
|
)
|
|
|
|
|
|
2025-08-27 16:32:52 +00:00
|
|
|
strict_deps_test(
|
|
|
|
|
name = "%s_deps" % name,
|
|
|
|
|
srcs = srcs,
|
|
|
|
|
tsconfig = tsconfig,
|
|
|
|
|
deps = deps,
|
|
|
|
|
)
|
|
|
|
|
|
2025-05-01 14:57:38 +00:00
|
|
|
def ng_project(
|
|
|
|
|
name,
|
2025-08-27 16:32:52 +00:00
|
|
|
deps = [],
|
|
|
|
|
srcs = [],
|
2025-05-01 14:57:38 +00:00
|
|
|
source_map = True,
|
|
|
|
|
testonly = False,
|
|
|
|
|
tsconfig = None,
|
|
|
|
|
**kwargs):
|
2025-05-14 16:02:30 +00:00
|
|
|
if tsconfig == None:
|
|
|
|
|
tsconfig = _determine_tsconfig(testonly)
|
|
|
|
|
|
2025-08-27 16:32:52 +00:00
|
|
|
_ng_project(
|
2025-05-01 14:57:38 +00:00
|
|
|
name,
|
2025-08-27 16:32:52 +00:00
|
|
|
srcs = srcs,
|
|
|
|
|
deps = deps,
|
|
|
|
|
declaration = True,
|
2025-05-01 14:57:38 +00:00
|
|
|
source_map = source_map,
|
|
|
|
|
testonly = testonly,
|
|
|
|
|
tsconfig = tsconfig,
|
|
|
|
|
**kwargs
|
|
|
|
|
)
|
2025-07-29 15:40:28 +00:00
|
|
|
|
2025-08-27 16:32:52 +00:00
|
|
|
strict_deps_test(
|
|
|
|
|
name = "%s_deps" % name,
|
|
|
|
|
srcs = srcs,
|
|
|
|
|
tsconfig = tsconfig,
|
|
|
|
|
deps = deps,
|
|
|
|
|
)
|
|
|
|
|
|
2025-07-29 15:40:28 +00:00
|
|
|
def generate_api_docs(**kwargs):
|
|
|
|
|
_generate_api_docs(
|
|
|
|
|
# We need to specify import mappings for Angular packages that import other Angular
|
|
|
|
|
# packages.
|
|
|
|
|
import_map = {
|
|
|
|
|
# We only need to specify top-level entry-points, and only those that
|
|
|
|
|
# are imported from other packages.
|
|
|
|
|
"//packages/animations:index.ts": "@angular/animations",
|
|
|
|
|
"//packages/common:index.ts": "@angular/common",
|
|
|
|
|
"//packages/core:index.ts": "@angular/core",
|
|
|
|
|
"//packages/forms:index.ts": "@angular/forms",
|
|
|
|
|
"//packages/localize:index.ts": "@angular/localize",
|
|
|
|
|
"//packages/platform-browser-dynamic:index.ts": "@angular/platform-browser-dynamic",
|
|
|
|
|
"//packages/platform-browser:index.ts": "@angular/platform-browser",
|
|
|
|
|
"//packages/platform-server:index.ts": "@angular/platform-server",
|
|
|
|
|
"//packages/router:index.ts": "@angular/router",
|
|
|
|
|
"//packages/upgrade:index.ts": "@angular/upgrade",
|
|
|
|
|
},
|
|
|
|
|
**kwargs
|
|
|
|
|
)
|