Files
Charles Lyding 402fcc57bb refactor(localize): bundle message digest algorithm directly in npm package (#48799)
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
2023-01-24 18:31:25 +00:00

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"],
)