mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
402fcc57bb
The main entry point for the `@angular/localize` package no longer imports the `@angular/compiler` package and now has no external dependencies. This allows the main functionality of the package to be used without requiring any other Angular packages. Only the message digest algorithm implementation from the `@angular/compiler` package was being used and this code is now bundled directly into the final npm package for `@angular/localize`. The `tooling` secondary entry point still leverages and requires Angular related packages (`@angular/compiler`/`@angular/compiler-cli`). However, the tooling functionality is not intended to be used and/or bundled in a web application. Closes #48163 PR Close #48799
81 lines
2.5 KiB
Python
81 lines
2.5 KiB
Python
load("//tools:defaults.bzl", "api_golden_test_npm_package", "ng_package", "ts_library")
|
|
load("//packages/bazel:index.bzl", "types_bundle")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
ts_library(
|
|
name = "localize",
|
|
srcs = glob(
|
|
[
|
|
"*.ts",
|
|
"src/**/*.ts",
|
|
],
|
|
),
|
|
module_name = "@angular/localize",
|
|
deps = [
|
|
"//packages/localize/src/localize",
|
|
"//packages/localize/src/utils",
|
|
],
|
|
)
|
|
|
|
types_bundle(
|
|
name = "api_type_definitions",
|
|
entry_point = "localize.d.ts",
|
|
output_name = "localize/index.d.ts",
|
|
deps = [":localize"],
|
|
)
|
|
|
|
ng_package(
|
|
name = "npm_package",
|
|
package_name = "@angular/localize",
|
|
srcs = [
|
|
"package.json",
|
|
":api_type_definitions",
|
|
],
|
|
nested_packages = [
|
|
"//packages/localize/schematics:npm_package",
|
|
"//packages/localize/tools:npm_package",
|
|
],
|
|
skip_type_bundling = [
|
|
# For the primary entry-point we disable automatic type bundling because API extractor
|
|
# does not properly handle module augumentation.
|
|
# To workaround this issue, type bundling is done as a separate step for all types
|
|
# except the main `index.d.ts` file which contains the module augmentation. The main
|
|
# file is reference in the package.json and also imports the bundle types. The bundled
|
|
# types are created via `api_type_definitions` above.
|
|
# TODO: Remove once https://github.com/microsoft/rushstack/issues/2090 is solved.
|
|
"",
|
|
],
|
|
tags = [
|
|
"release-with-framework",
|
|
],
|
|
deps = [
|
|
":localize",
|
|
"//packages/localize/init",
|
|
],
|
|
)
|
|
|
|
api_golden_test_npm_package(
|
|
name = "localize_api",
|
|
data = [
|
|
":npm_package",
|
|
"//goldens:public-api",
|
|
],
|
|
golden_dir = "angular/goldens/public-api/localize",
|
|
npm_package = "angular/packages/localize/npm_package",
|
|
# The logic for the localize function is exported in the primary entry-point, but users
|
|
# are not supposed to import it from there. We still want to guard these exports though.
|
|
strip_export_pattern = "^ɵ(?!.localize|LocalizeFn|TranslateFn)",
|
|
# The tool entry-point uses namespace aliases and API extractor needs to be
|
|
# able to resolve `@babel/core` to fully understand the `types` re-export/alias.
|
|
types = ["@npm//@types/babel__core"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "files_for_docgen",
|
|
srcs = glob([
|
|
"*.ts",
|
|
"src/**/*.ts",
|
|
]) + ["PACKAGE.md"],
|
|
)
|