build: configure cross-pkg resolution for api extraction (#52499)

This commit adds path mapping and source dependencies necessary to fully
resolve types during api doc extraction.

PR Close #52499
This commit is contained in:
Jeremy Elbourn
2023-11-02 14:57:21 -07:00
committed by Andrew Scott
parent 5e84d9c8c3
commit 91f250dab7
37 changed files with 197 additions and 80 deletions
+1 -1
View File
@@ -80,7 +80,7 @@ yarn_install(
"//:.yarnrc",
"//:tools/npm-patches/@bazel+jasmine+5.8.1.patch",
"//tools:postinstall-patches.js",
"//tools/esm-interop:patches/npm/@angular+build-tooling+0.0.0-b2cec2dcba358f9dc7111800a3d65738f57abe8f.patch",
"//tools/esm-interop:patches/npm/@angular+build-tooling+0.0.0-e0ec7b60641d7f6369be45d8d02663fd50f320be.patch",
"//tools/esm-interop:patches/npm/@bazel+concatjs+5.8.1.patch",
"//tools/esm-interop:patches/npm/@bazel+esbuild+5.7.1.patch",
"//tools/esm-interop:patches/npm/@bazel+protractor+5.7.1.patch",
+22
View File
@@ -45,6 +45,28 @@ filegroup(
srcs = ["//packages/%s:files_for_docgen" % entrypoint for entrypoint in DOCS_ENTRYPOINTS],
)
# This target captures common dependencies needed for all `generate_api_docs` targets
# throughout Angular's public API surface.
filegroup(
name = "common_files_and_deps_for_docs",
srcs = [
"//packages:types",
"//packages/common:files_for_docgen",
"//packages/common/http:files_for_docgen",
"//packages/core:files_for_docgen",
"//packages/core/primitives/signals:files_for_docgen",
"//packages/core/src/compiler:files_for_docgen",
"//packages/core/src/di/interface:files_for_docgen",
"//packages/core/src/interface:files_for_docgen",
"//packages/core/src/reflection:files_for_docgen",
"//packages/core/src/util:files_for_docgen",
"//packages/platform-browser:files_for_docgen",
"//packages/platform-browser-dynamic:files_for_docgen",
"//packages/zone.js/lib:zone_d_ts",
"@npm//rxjs",
],
)
generate_api_manifest(
name = "docs_api_manifest",
srcs = [
+6 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -75,7 +74,11 @@ filegroup(
generate_api_docs(
name = "animations_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/common:files_for_docgen",
],
entry_point = ":index.ts",
module_name = "@angular/animations",
)
+6 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -29,7 +28,11 @@ filegroup(
generate_api_docs(
name = "animations_browser_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/animations:files_for_docgen",
],
entry_point = ":index.ts",
module_name = "@angular/animations/browser",
)
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -24,7 +23,10 @@ filegroup(
generate_api_docs(
name = "animations_browser_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/animations/browser/testing",
)
+7 -3
View File
@@ -1,7 +1,6 @@
load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test")
load("//packages/common/locales:index.bzl", "generate_base_currencies_file")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -100,7 +99,12 @@ filegroup(
generate_api_docs(
name = "common_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/platform-browser:files_for_docgen",
"//packages/platform-browser-dynamic:files_for_docgen",
],
entry_point = ":index.ts",
module_name = "@angular/common",
)
+6 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -40,7 +39,11 @@ api_golden_test(
generate_api_docs(
name = "http_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/common:files_for_docgen",
],
entry_point = ":index.ts",
module_name = "@angular/common/http",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -25,7 +24,10 @@ filegroup(
generate_api_docs(
name = "common_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/common/testing",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -31,7 +30,10 @@ filegroup(
generate_api_docs(
name = "common_upgrade_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/common/upgrade",
)
+3 -1
View File
@@ -136,7 +136,9 @@ filegroup(
generate_api_docs(
name = "core_docs",
srcs = [":files_for_docgen"],
srcs = [
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/core",
)
@@ -28,4 +28,5 @@ filegroup(
"*.ts",
"src/**/*.ts",
]),
visibility = ["//visibility:public"],
)
+8 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -26,11 +25,17 @@ filegroup(
"*.ts",
"src/**/*.ts",
]) + ["PACKAGE.md"],
visibility = ["//visibility:public"],
)
generate_api_docs(
name = "core_rxjs-interop_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/common:files_for_docgen",
"//packages/common/http:files_for_docgen",
],
entry_point = ":index.ts",
module_name = "@angular/core/rxjs-interop",
)
+1
View File
@@ -30,4 +30,5 @@ filegroup(
srcs = glob([
"*.ts",
]),
visibility = ["//visibility:public"],
)
@@ -32,4 +32,5 @@ filegroup(
srcs = glob([
"*.ts",
]),
visibility = ["//visibility:public"],
)
+1
View File
@@ -26,4 +26,5 @@ filegroup(
srcs = glob([
"*.ts",
]),
visibility = ["//visibility:public"],
)
+1
View File
@@ -30,4 +30,5 @@ filegroup(
srcs = glob([
"*.ts",
]),
visibility = ["//visibility:public"],
)
+1
View File
@@ -33,4 +33,5 @@ filegroup(
srcs = glob([
"**/*.ts",
]),
visibility = ["//visibility:public"],
)
+6 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -26,11 +25,15 @@ filegroup(
"*.ts",
"src/**/*.ts",
]) + ["PACKAGE.md"],
visibility = ["//visibility:public"],
)
generate_api_docs(
name = "core_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/core/testing",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -58,7 +57,10 @@ filegroup(
generate_api_docs(
name = "elements_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/elements",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -72,7 +71,10 @@ filegroup(
generate_api_docs(
name = "forms_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/forms",
)
+5 -3
View File
@@ -1,6 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "ng_package", "ts_library")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package", "ts_library")
load("//packages/bazel:index.bzl", "types_bundle")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
package(default_visibility = ["//visibility:public"])
@@ -82,7 +81,10 @@ filegroup(
generate_api_docs(
name = "localize_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/localize",
)
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -64,7 +63,10 @@ filegroup(
generate_api_docs(
name = "platform-browser_dynamic_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-browser-dynamic",
)
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -29,7 +28,10 @@ filegroup(
generate_api_docs(
name = "platform-browser_dynamic_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-browser-dynamic/testing",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_module", "ng_package", "tsec_test")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package", "tsec_test")
package(default_visibility = ["//visibility:public"])
@@ -85,7 +84,10 @@ filegroup(
generate_api_docs(
name = "platform-browser_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-browser",
)
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module", "tsec_test")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module", "tsec_test")
package(default_visibility = ["//visibility:public"])
@@ -38,7 +37,10 @@ filegroup(
generate_api_docs(
name = "platform-browser_animations_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-browser/animations",
)
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -28,7 +27,10 @@ filegroup(
generate_api_docs(
name = "platform-browser_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-browser/testing",
)
+5 -3
View File
@@ -1,6 +1,5 @@
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "esbuild", "ng_module", "ng_package", "tsec_test")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "esbuild", "generate_api_docs", "ng_module", "ng_package", "tsec_test")
package(default_visibility = ["//visibility:public"])
@@ -100,7 +99,10 @@ filegroup(
generate_api_docs(
name = "platform-server_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-server",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -26,7 +25,10 @@ filegroup(
generate_api_docs(
name = "platform-server_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/platform-server/testing",
)
+8 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -78,7 +77,13 @@ filegroup(
generate_api_docs(
name = "router_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/common:files_for_docgen",
"//packages/common/http:files_for_docgen",
"@npm//@types/dom-view-transitions",
],
entry_point = ":index.ts",
module_name = "@angular/router",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -28,7 +27,10 @@ filegroup(
generate_api_docs(
name = "router_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/router/testing",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -31,7 +30,10 @@ filegroup(
generate_api_docs(
name = "router_upgrade_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/router/upgrade",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -81,7 +80,10 @@ filegroup(
generate_api_docs(
name = "service-worker_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/service-worker",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "ng_module", "ng_package")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_module", "ng_package")
package(default_visibility = ["//visibility:public"])
@@ -63,7 +62,10 @@ filegroup(
generate_api_docs(
name = "upgrade_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/upgrade",
)
+6 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -30,7 +29,11 @@ filegroup(
generate_api_docs(
name = "upgrade_static_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
"//packages/upgrade:files_for_docgen",
],
entry_point = ":index.ts",
module_name = "@angular/upgrade/static",
)
+5 -3
View File
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_module")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults.bzl", "generate_api_docs", "ng_module")
package(default_visibility = ["//visibility:public"])
@@ -29,7 +28,10 @@ filegroup(
generate_api_docs(
name = "upgrade_static_testing_docs",
srcs = [":files_for_docgen"],
srcs = [
":files_for_docgen",
"//packages:common_files_and_deps_for_docs",
],
entry_point = ":index.ts",
module_name = "@angular/upgrade/static/testing",
)
+22
View File
@@ -20,6 +20,7 @@ load("@npm//@angular/build-tooling/bazel/spec-bundling:index.bzl", "spec_bundle"
load("@npm//tsec:index.bzl", _tsec_test = "tsec_test")
load("//packages/bazel:index.bzl", _ng_module = "ng_module", _ng_package = "ng_package")
load("//tools/esm-interop:index.bzl", "enable_esm_node_module_loader", _nodejs_binary = "nodejs_binary", _nodejs_test = "nodejs_test")
load("@npm//@angular/build-tooling/bazel/api-gen:generate_api_docs.bzl", _generate_api_docs = "generate_api_docs")
_DEFAULT_TSCONFIG_TEST = "//packages:tsconfig-test"
_INTERNAL_NG_MODULE_COMPILER = "//packages/bazel/src/ngc-wrapped"
@@ -613,3 +614,24 @@ def esbuild(args = None, **kwargs):
},
**kwargs
)
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
)