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