sass-references/angular-material/material/schematics/BUILD.bazel

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