104 lines
2.5 KiB
Python
104 lines
2.5 KiB
Python
load("//tools:defaults.bzl", "esbuild", "jasmine_node_test", "spec_bundle", "ts_library")
|
|
|
|
## THIS ONE IS ESM
|
|
# By default everything is ESM
|
|
# ESBUild needs ESM for bundling. Cannot reliably use CJS as input.
|
|
ts_library(
|
|
name = "ng_update_lib",
|
|
srcs = glob(
|
|
["**/*.ts"],
|
|
exclude = [
|
|
"test-cases/**/*.ts",
|
|
],
|
|
),
|
|
# Schematics can not yet run in ESM module. For now we continue to use CommonJS.
|
|
# TODO(ESM): remove this once the Angular CLI supports ESM schematics.
|
|
devmode_module = "commonjs",
|
|
deps = [
|
|
"//src/cdk/schematics",
|
|
"@npm//@angular-devkit/core",
|
|
"@npm//@angular-devkit/schematics",
|
|
"@npm//@schematics/angular",
|
|
"@npm//@types/node",
|
|
"@npm//postcss",
|
|
"@npm//postcss-scss",
|
|
"@npm//typescript",
|
|
],
|
|
)
|
|
|
|
esbuild(
|
|
name = "ng_update_index",
|
|
entry_point = ":index.ts",
|
|
external = [
|
|
"@angular/cdk/schematics",
|
|
"@schematics/angular",
|
|
"@angular-devkit/schematics",
|
|
"@angular-devkit/core",
|
|
"typescript",
|
|
],
|
|
# TODO: Switch to ESM when Angular CLI supports it.
|
|
format = "cjs",
|
|
output = "index_bundled.js",
|
|
platform = "node",
|
|
target = "es2015",
|
|
visibility = ["//src/material/schematics:__pkg__"],
|
|
deps = [":ng_update_lib"],
|
|
)
|
|
|
|
#################
|
|
## Specs
|
|
#################
|
|
|
|
filegroup(
|
|
name = "schematics_test_cases",
|
|
testonly = True,
|
|
srcs = glob([
|
|
"test-cases/**/*_input.ts",
|
|
"test-cases/**/*_expected_output.ts",
|
|
]),
|
|
)
|
|
|
|
# This one is now ESM, the default in the repository
|
|
# Needs to be ESM because we import frm `ng_update_lib` (which is also ESM)
|
|
ts_library(
|
|
name = "test_lib",
|
|
testonly = True,
|
|
srcs = glob(["**/*.spec.ts"]),
|
|
deps = [
|
|
":ng_update_lib",
|
|
"//src/cdk/schematics",
|
|
"//src/cdk/schematics/testing",
|
|
"//src/material/schematics:paths",
|
|
"@npm//@angular-devkit/core",
|
|
"@npm//@angular-devkit/schematics",
|
|
"@npm//@bazel/runfiles",
|
|
"@npm//@types/jasmine",
|
|
"@npm//@types/node",
|
|
],
|
|
)
|
|
|
|
spec_bundle(
|
|
name = "spec_bundle",
|
|
external = [
|
|
"*/paths.js",
|
|
"@angular-devkit/core/node",
|
|
],
|
|
platform = "cjs-legacy",
|
|
target = "es2020",
|
|
deps = [":test_lib"],
|
|
)
|
|
|
|
jasmine_node_test(
|
|
name = "test",
|
|
data = [
|
|
":ng_update_index",
|
|
":schematics_test_cases",
|
|
"//src/cdk/schematics",
|
|
"//src/material/schematics:collection_assets",
|
|
],
|
|
shard_count = 4,
|
|
deps = [
|
|
":spec_bundle",
|
|
],
|
|
)
|