build: migrate localize package to use rules_js (#61613)

Use ts_project to build localize package

PR Close #61613
This commit is contained in:
Joey Perrott
2025-05-22 16:17:28 +00:00
committed by Jessica Janiuk
parent e25e6c95a2
commit 9eefc5dcd4
20 changed files with 130 additions and 87 deletions
@@ -35,3 +35,4 @@ export {
} from './src/types';
export {getSourceFileOrError} from './src/util';
export {createFileSystemTsReadDirectoryFn} from './src/ts_read_directory';
export {InvalidFileSystem} from './src/invalid_file_system';
+5 -4
View File
@@ -1,8 +1,9 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package", "ts_library")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ts_project")
package(default_visibility = ["//visibility:public"])
ts_library(
ts_project(
name = "localize",
srcs = glob(
[
@@ -12,8 +13,8 @@ ts_library(
),
module_name = "@angular/localize",
deps = [
"//packages/localize/src/localize",
"//packages/localize/src/utils",
"//packages/localize/src/localize:localize_rjs",
"//packages/localize/src/utils:utils_rjs",
],
)
+4 -5
View File
@@ -1,21 +1,20 @@
load("//tools:defaults.bzl", "ts_library")
load("//adev/shared-docs/pipeline/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//tools:defaults2.bzl", "ts_project")
package(default_visibility = ["//visibility:public"])
exports_files(["package.json"])
ts_library(
ts_project(
name = "init",
srcs = glob(
[
"**/*.ts",
],
),
module_name = "@angular/localize/init",
deps = [
"//packages/localize",
"@npm//@types/node",
"//:node_modules/@types/node",
"//packages/localize:localize_rjs",
],
)
@@ -1,23 +1,19 @@
load("//tools:defaults.bzl", "esbuild", "jasmine_node_test", "ts_config", "ts_library")
load("//tools:defaults.bzl", "esbuild", "jasmine_node_test", "ts_library")
load("//tools:defaults2.bzl", "ts_project")
package(default_visibility = ["//visibility:public"])
ts_config(
name = "tsconfig",
src = "tsconfig-build.json",
deps = ["//packages:tsconfig-build.json"],
)
ts_library(
ts_project(
name = "ng-add",
srcs = [
"index.ts",
"schema.d.ts",
],
tsconfig = ":tsconfig",
extends = "//packages:tsconfig_build",
tsconfig = "tsconfig-build.json",
deps = [
"@npm//@angular-devkit/schematics",
"@npm//@schematics/angular",
"//:node_modules/@angular-devkit/schematics",
"//:node_modules/@schematics/angular",
],
)
+5 -4
View File
@@ -1,8 +1,9 @@
load("//tools:defaults.bzl", "generate_api_docs", "ts_library")
load("//tools:defaults.bzl", "generate_api_docs")
load("//tools:defaults2.bzl", "ts_project")
package(default_visibility = ["//visibility:public"])
ts_library(
ts_project(
name = "localize",
srcs = glob(
[
@@ -10,8 +11,8 @@ ts_library(
],
),
deps = [
"//packages/localize/src/utils",
"@npm//@types/node",
"//:node_modules/@types/node",
"//packages/localize/src/utils:utils_rjs",
],
)
@@ -1,14 +1,17 @@
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["*_spec.ts"],
),
deps = [
interop_deps = [
"//packages:types",
"//packages/localize/src/localize",
],
deps = [
"//packages/localize/src/localize:localize_rjs",
],
)
+3 -3
View File
@@ -1,8 +1,8 @@
load("//tools:defaults.bzl", "ts_library")
load("//tools:defaults2.bzl", "ts_project")
package(default_visibility = ["//visibility:public"])
ts_library(
ts_project(
name = "utils",
srcs = glob(
[
@@ -10,7 +10,7 @@ ts_library(
"src/**/*.ts",
],
),
deps = [
interop_deps = [
"//packages/compiler",
],
)
+7 -4
View File
@@ -1,14 +1,17 @@
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["**/*_spec.ts"],
),
deps = [
interop_deps = [
"//packages:types",
"//packages/localize/src/utils",
],
deps = [
"//packages/localize/src/utils:utils_rjs",
],
)
+9 -6
View File
@@ -1,16 +1,19 @@
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["**/*_spec.ts"],
),
deps = [
interop_deps = [
"//packages:types",
"//packages/localize",
"//packages/localize/init",
"//packages/localize/src/utils",
],
deps = [
"//packages/localize:localize_rjs",
"//packages/localize/init:init_rjs",
"//packages/localize/src/utils:utils_rjs",
],
)
+22 -10
View File
@@ -1,23 +1,35 @@
load("@npm//@bazel/esbuild:index.bzl", "esbuild", "esbuild_config")
load("//tools:defaults.bzl", "extract_types", "pkg_npm", "ts_library")
load("//tools:defaults.bzl", "extract_types", "pkg_npm")
load("//tools:defaults2.bzl", "ts_config", "ts_project")
ts_library(
ts_config(
name = "tsconfig_build",
src = "tsconfig.json",
deps = [
"//:node_modules/@types/node",
"//packages:tsconfig_build",
],
)
ts_project(
name = "tools",
srcs = glob(
[
"**/*.ts",
],
),
visibility = ["//packages/localize/tools:__subpackages__"],
deps = [
interop_deps = [
"//packages/compiler",
"//packages/compiler-cli/private",
"//packages/localize",
"@npm//@babel/core",
"@npm//@types/babel__core",
"@npm//@types/node",
"@npm//@types/yargs",
"@npm//tinyglobby",
],
visibility = ["//packages/localize/tools:__subpackages__"],
deps = [
"//:node_modules/@babel/core",
"//:node_modules/@types/babel__core",
"//:node_modules/@types/node",
"//:node_modules/@types/yargs",
"//:node_modules/tinyglobby",
"//packages/localize:localize_rjs",
],
)
+1 -1
View File
@@ -7,7 +7,7 @@
*/
module.exports = {
resolveExtensions: ['.mjs'],
resolveExtensions: ['.mjs', '.js'],
// Note: `@bazel/esbuild` has a bug and does not pass-through the format from Starlark.
format: 'esm',
banner: {
+14 -11
View File
@@ -1,26 +1,29 @@
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["**/*.ts"],
),
visibility = ["//packages/localize/tools/test:__subpackages__"],
deps = [
interop_deps = [
"//packages:types",
"//packages/compiler",
"//packages/compiler-cli/private",
"//packages/compiler-cli/src/ngtsc/file_system",
"//packages/compiler-cli/src/ngtsc/file_system/testing",
"//packages/compiler-cli/src/ngtsc/logging/testing",
"//packages/localize",
"//packages/localize/src/utils",
"//packages/localize/tools",
"//packages/localize/tools/test/helpers",
"@npm//@babel/generator",
"@npm//@types/babel__generator",
"@npm//tinyglobby",
],
visibility = ["//packages/localize/tools/test:__subpackages__"],
deps = [
"//:node_modules/@babel/generator",
"//:node_modules/@types/babel__generator",
"//:node_modules/tinyglobby",
"//packages/localize:localize_rjs",
"//packages/localize/src/utils:utils_rjs",
"//packages/localize/tools:tools_rjs",
"//packages/localize/tools/test/helpers:helpers_rjs",
],
)
@@ -1,21 +1,24 @@
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["**/*_spec.ts"],
),
deps = [
interop_deps = [
"//packages:types",
"//packages/compiler-cli/src/ngtsc/file_system",
"//packages/compiler-cli/src/ngtsc/file_system/testing",
"//packages/compiler-cli/src/ngtsc/logging",
"//packages/compiler-cli/src/ngtsc/logging/testing",
"//packages/compiler-cli/src/ngtsc/testing",
"//packages/localize/tools",
"//packages/localize/tools/test:test_lib",
"//packages/localize/tools/test/helpers",
],
deps = [
"//packages/localize/tools:tools_rjs",
"//packages/localize/tools/test:test_lib_rjs",
"//packages/localize/tools/test/helpers:helpers_rjs",
],
)
@@ -11,8 +11,8 @@ import {
FileSystem,
getFileSystem,
setFileSystem,
InvalidFileSystem,
} from '@angular/compiler-cli/src/ngtsc/file_system';
import {InvalidFileSystem} from '@angular/compiler-cli/src/ngtsc/file_system/src/invalid_file_system';
import {MockLogger} from '@angular/compiler-cli/src/ngtsc/logging/testing';
import {loadTestDirectory} from '@angular/compiler-cli/src/ngtsc/testing';
import path from 'path';
@@ -1,14 +1,14 @@
load("//tools:defaults.bzl", "ts_library")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "helpers",
testonly = True,
srcs = glob(
["**/*.ts"],
),
visibility = ["//packages/localize/tools/test:__subpackages__"],
deps = [
interop_deps = [
"//packages/compiler-cli/src/ngtsc/file_system",
"//packages/compiler-cli/src/ngtsc/file_system/testing",
],
visibility = ["//packages/localize/tools/test:__subpackages__"],
)
@@ -5,8 +5,7 @@
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
import {setFileSystem} from '@angular/compiler-cli/src/ngtsc/file_system';
import {InvalidFileSystem} from '@angular/compiler-cli/src/ngtsc/file_system/src/invalid_file_system';
import {setFileSystem, InvalidFileSystem} from '@angular/compiler-cli/src/ngtsc/file_system';
import {MockFileSystemNative} from '@angular/compiler-cli/src/ngtsc/file_system/testing';
/**
@@ -1,22 +1,25 @@
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["**/*_spec.ts"],
),
deps = [
interop_deps = [
"//packages:types",
"//packages/compiler-cli/src/ngtsc/file_system",
"//packages/compiler-cli/src/ngtsc/file_system/testing",
"//packages/compiler-cli/src/ngtsc/logging",
"//packages/compiler-cli/src/ngtsc/logging/testing",
"//packages/compiler-cli/src/ngtsc/testing",
"//packages/localize/tools",
"//packages/localize/tools/test:test_lib",
"//packages/localize/tools/test/helpers",
],
deps = [
"//packages/localize/tools:tools_rjs",
"//packages/localize/tools/test:test_lib_rjs",
"//packages/localize/tools/test/helpers:helpers_rjs",
],
)
@@ -1,18 +1,21 @@
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools:defaults.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "ts_project")
ts_library(
ts_project(
name = "test_lib",
testonly = True,
srcs = glob(
["**/*_spec.ts"],
),
deps = [
interop_deps = [
"//packages:types",
"//packages/compiler-cli/src/ngtsc/file_system",
"//packages/compiler-cli/src/ngtsc/file_system/testing",
"//packages/compiler-cli/src/ngtsc/testing",
"//packages/localize/tools",
"//packages/localize/tools/test/helpers",
],
deps = [
"//packages/localize/tools:tools_rjs",
"//packages/localize/tools/test/helpers:helpers_rjs",
],
)
+10
View File
@@ -0,0 +1,10 @@
{
"extends": "../../tsconfig-build.json",
"compilerOptions": {
"types": ["node"],
"paths": {
"@angular/*": ["../../*/index"],
"@angular/compiler-cli/private/localize": ["../../compiler-cli/private/localize"],
}
}
}
+3
View File
@@ -28,6 +28,9 @@ def _determine_tsconfig(testonly):
if native.package_name().startswith("packages/language-service"):
return "//packages:tsconfig_test" if testonly else "//packages/language-service:tsconfig_build"
if native.package_name().startswith("packages/localize/tools"):
return "//packages:tsconfig_test" if testonly else "//packages/localize/tools:tsconfig_build"
if native.package_name().startswith("packages"):
return "//packages:tsconfig_test" if testonly else "//packages:tsconfig_build"