141 lines
3.5 KiB
Python
141 lines
3.5 KiB
Python
|
|
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
|
||
|
|
load("//tools:defaults.bzl", "jasmine_node_test", "pkg_npm", "ts_library")
|
||
|
|
|
||
|
|
package(default_visibility = ["//visibility:public"])
|
||
|
|
|
||
|
|
copy_to_bin(
|
||
|
|
name = "collection_assets",
|
||
|
|
srcs = [
|
||
|
|
"collection.json",
|
||
|
|
"migration.json",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
copy_to_bin(
|
||
|
|
name = "ng_generate_assets",
|
||
|
|
srcs = glob([
|
||
|
|
"ng-generate/*/files/**/*",
|
||
|
|
]),
|
||
|
|
)
|
||
|
|
|
||
|
|
copy_to_bin(
|
||
|
|
name = "schema_assets",
|
||
|
|
srcs = glob([
|
||
|
|
"**/schema.json",
|
||
|
|
]),
|
||
|
|
)
|
||
|
|
|
||
|
|
ts_library(
|
||
|
|
name = "schematics",
|
||
|
|
srcs = glob(
|
||
|
|
["**/*.ts"],
|
||
|
|
exclude = [
|
||
|
|
"**/*.spec.ts",
|
||
|
|
"paths.ts",
|
||
|
|
"ng-generate/*/files/**/*.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",
|
||
|
|
prodmode_module = "commonjs",
|
||
|
|
tsconfig = ":tsconfig.json",
|
||
|
|
deps = [
|
||
|
|
"//src/cdk/schematics",
|
||
|
|
"@npm//@angular-devkit/core",
|
||
|
|
"@npm//@angular-devkit/schematics",
|
||
|
|
"@npm//@schematics/angular",
|
||
|
|
# TODO(devversion): Only include jasmine for test sources (See: tsconfig types).
|
||
|
|
"@npm//@types/jasmine",
|
||
|
|
"@npm//@types/node",
|
||
|
|
"@npm//rxjs",
|
||
|
|
"@npm//tslint",
|
||
|
|
"@npm//typescript",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
ts_library(
|
||
|
|
name = "paths",
|
||
|
|
testonly = True,
|
||
|
|
srcs = ["paths.ts"],
|
||
|
|
data = [
|
||
|
|
":collection_assets",
|
||
|
|
],
|
||
|
|
# 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",
|
||
|
|
prodmode_module = "commonjs",
|
||
|
|
tsconfig = ":tsconfig.json",
|
||
|
|
deps = [
|
||
|
|
"@npm//@bazel/runfiles",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
# This package is intended to be combined into the main @angular/material package as a dep.
|
||
|
|
pkg_npm(
|
||
|
|
name = "npm_package",
|
||
|
|
srcs = ["package.json"],
|
||
|
|
nested_packages = [
|
||
|
|
"//src/material/schematics/ng-generate/theme-color:npm_package",
|
||
|
|
],
|
||
|
|
deps = [
|
||
|
|
":collection_assets",
|
||
|
|
":ng_generate_assets",
|
||
|
|
":schema_assets",
|
||
|
|
":schematics",
|
||
|
|
"//src/material/schematics/ng-update:ng_update_index",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
### Testing rules
|
||
|
|
|
||
|
|
jasmine_node_test(
|
||
|
|
name = "unit_tests",
|
||
|
|
srcs = [":unit_test_sources"],
|
||
|
|
data = [
|
||
|
|
":collection_assets",
|
||
|
|
":ng_generate_assets",
|
||
|
|
":schema_assets",
|
||
|
|
":schematics_test_cases",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
ts_library(
|
||
|
|
name = "unit_test_sources",
|
||
|
|
testonly = True,
|
||
|
|
srcs = glob(
|
||
|
|
["**/*.spec.ts"],
|
||
|
|
exclude = [
|
||
|
|
"**/*.e2e.spec.ts",
|
||
|
|
"ng-generate/*/files/**/*.spec.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",
|
||
|
|
prodmode_module = "commonjs",
|
||
|
|
tsconfig = ":tsconfig.json",
|
||
|
|
deps = [
|
||
|
|
":paths",
|
||
|
|
":schematics",
|
||
|
|
"//src/cdk/schematics",
|
||
|
|
"//src/cdk/schematics/testing",
|
||
|
|
"@npm//@angular-devkit/core",
|
||
|
|
"@npm//@angular-devkit/schematics",
|
||
|
|
"@npm//@schematics/angular",
|
||
|
|
"@npm//@types/fs-extra",
|
||
|
|
"@npm//@types/jasmine",
|
||
|
|
"@npm//@types/node",
|
||
|
|
"@npm//fs-extra",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
filegroup(
|
||
|
|
name = "schematics_test_cases",
|
||
|
|
testonly = True,
|
||
|
|
srcs = glob([
|
||
|
|
"ng-update/test-cases/**/*_input.ts",
|
||
|
|
"ng-update/test-cases/**/*_expected_output.ts",
|
||
|
|
]),
|
||
|
|
)
|