build(bazel): add rule for cdk npm package (#10509)

* build(bazel): add rule for cdk npm package

* Bump to rc0, remove moment from cdk rollup config

* Remove TODOs
This commit is contained in:
Jeremy Elbourn
2018-03-22 14:21:04 -07:00
committed by Andrew Seguin
parent 4e1bb265e3
commit 9091b21f6f
26 changed files with 153 additions and 59 deletions
+11 -7
View File
@@ -1,15 +1,18 @@
workspace(name = "angular_material")
# Add nodejs rules
git_repository(
http_archive(
name = "build_bazel_rules_nodejs",
remote = "https://github.com/bazelbuild/rules_nodejs.git",
commit = "0.5.1",
url = "https://github.com/bazelbuild/rules_nodejs/archive/0.5.3.zip",
strip_prefix = "rules_nodejs-0.5.3",
sha256 = "17a5515f59777b00cb25dbc710017a14273f825029b2ec60e0969d28914870be",
)
# NOTE: this rule installs nodejs, npm, and yarn, but does NOT install
# your npm dependencies. You must still run the package manager.
load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories")
load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories")
check_bazel_version("0.9.0")
node_repositories(package_json = ["//:package.json"])
# Add sass rules
@@ -23,10 +26,11 @@ load("@io_bazel_rules_sass//sass:sass.bzl", "sass_repositories")
sass_repositories()
# Add TypeScript rules
git_repository(
http_archive(
name = "build_bazel_rules_typescript",
remote = "https://github.com/bazelbuild/rules_typescript.git",
tag = "0.11.1",
url = "https://github.com/bazelbuild/rules_typescript/archive/0.11.1.zip",
strip_prefix = "rules_typescript-0.11.1",
sha256 = "7406bea7954e1c906f075115dfa176551a881119f6820b126ea1eacb09f34a1a",
)
# Setup TypeScript Bazel workspace
+6 -6
View File
@@ -35,9 +35,9 @@
}
},
"@angular/bazel": {
"version": "6.0.0-beta.8",
"resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-beta.8.tgz",
"integrity": "sha512-uC84HaX8/Fuazqv//pn3ZKMHPgPIT2vv+cEEJ7Jli0/H00Tt5LV06lv5qMB1fEBL4Dmn+pHEodjEZoRkJmagrw==",
"version": "6.0.0-rc.0",
"resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-rc.0.tgz",
"integrity": "sha512-4K98Zx8TYE0QqY5wLtNS+aBje3pnu/HGkyaYWM6GNZckTfiDz3Z2e6dZcgxaGVI1CqJZAx+sUYcGZrkI0wjIhQ==",
"dev": true,
"requires": {
"@bazel/typescript": "0.11.1",
@@ -72,9 +72,9 @@
}
},
"@angular/compiler-cli": {
"version": "6.0.0-beta.8",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-beta.8.tgz",
"integrity": "sha512-oDftaCQHSGJLJjVvRplI+pU3aazM287+Mr+m1xAKRrOAU6zY4kBcTB9EYECFv9t9T84/1fJy3gng1QcN14kMaA==",
"version": "6.0.0-rc.0",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-rc.0.tgz",
"integrity": "sha512-BTCZEAc/XSywiesuVS1mxRxryvngdG6hjNV396qas61+h/D9JItOTZ5nb0oHs81IPMUZg5Gv53uUG4GdrTuu0g==",
"dev": true,
"requires": {
"chokidar": "1.7.0",
+2 -2
View File
@@ -42,8 +42,8 @@
"devDependencies": {
"@angular-devkit/core": "^0.4.5",
"@angular-devkit/schematics": "^0.4.5",
"@angular/bazel": "6.0.0-beta.8",
"@angular/compiler-cli": "6.0.0-beta.8",
"@angular/bazel": "6.0.0-rc.0",
"@angular/compiler-cli": "6.0.0-rc.0",
"@angular/http": "6.0.0-beta.8",
"@angular/platform-browser-dynamic": "6.0.0-beta.8",
"@angular/platform-server": "6.0.0-beta.8",
+18
View File
@@ -1,4 +1,22 @@
# List of all @angular/material components / subpackages.
CDK_PACKAGES = [
"coercion",
"keycodes",
"scrolling",
"accordion",
"observers",
"a11y",
"overlay",
"platform",
"bidi",
"table",
"tree",
"portal",
"layout",
"stepper",
"collections",
]
MATERIAL_PACKAGES = [
"autocomplete",
"badge",
+13 -4
View File
@@ -1,8 +1,14 @@
package(default_visibility=["//visibility:public"])
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_config")
load("@angular//:index.bzl", "ng_package")
load("//:packages.bzl", "CDK_PACKAGES")
load("//src/cdk:rollup_globals.bzl", "CDK_ROLLUP_GLOBALS")
# Export the CDK tsconfig so that subpackages can reference it directly.
exports_files(["tsconfig-build.json"])
# Root "@angular/cdk" entry-point that does not re-export individual entry-points.
ts_library(
name = "cdk",
srcs = glob(["*.ts"], exclude=["**/*.spec.ts"]),
@@ -11,8 +17,11 @@ ts_library(
tsconfig = ":tsconfig-build.json",
)
ts_config(
name ="tsconfig_tests",
src = "tsconfig-tests.json",
deps = ["tsconfig-build.json"],
# Creates the @angular/cdk package published to npm.
ng_package(
name = "npm_package",
srcs = ["package.json"],
entry_point = "src/cdk/public_api.js",
globals = CDK_ROLLUP_GLOBALS,
deps = [":cdk"] + ["//src/cdk/%s" % p for p in CDK_PACKAGES]
)
+2 -2
View File
@@ -14,7 +14,7 @@ ng_module(
"//src/cdk/platform",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
# TODO(jelbourn): remove this when sass_library acts like a filegroup
@@ -39,7 +39,7 @@ ts_library(
"//src/cdk/testing",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+2 -2
View File
@@ -11,7 +11,7 @@ ng_module(
"//src/cdk/coercion",
"//src/cdk/collections",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -22,7 +22,7 @@ ts_library(
":accordion",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+2 -2
View File
@@ -8,7 +8,7 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/bidi",
deps = ["@rxjs"],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +19,7 @@ ts_library(
":bidi",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+5 -4
View File
@@ -1,14 +1,15 @@
package(default_visibility=["//visibility:public"])
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library")
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_web_test")
load("@angular//:index.bzl", "ng_module")
# Note: this will need to ng_module if any Angular-specific stuff is added to coercion.
ts_library(
ng_module(
name = "coercion",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/coercion",
deps = [],
tsconfig = ":tsconfig-build.json",
deps = ["@rxjs"],
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
+2 -2
View File
@@ -8,7 +8,7 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/collections",
deps = ["@rxjs"],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +19,7 @@ ts_library(
":collections",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+5 -4
View File
@@ -1,11 +1,12 @@
package(default_visibility=["//visibility:public"])
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library")
load("@angular//:index.bzl", "ng_module")
# Note: this will need to ng_module if any Angular-specific stuff is added to coercion.
ts_library(
ng_module(
name = "keycodes",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/keycodes",
deps = [],
tsconfig = ":tsconfig-build.json",
deps = ["@rxjs"],
tsconfig = "//src/cdk:tsconfig-build.json",
)
+2 -2
View File
@@ -12,7 +12,7 @@ ng_module(
"//src/cdk/platform",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -24,7 +24,7 @@ ts_library(
"//src/cdk/platform",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+6 -3
View File
@@ -7,8 +7,11 @@ ng_module(
name = "observers",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/observers",
deps = ["@rxjs", "//src/cdk/coercion"],
tsconfig = ":tsconfig-build.json",
deps = [
"@rxjs",
"//src/cdk/coercion",
],
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +22,7 @@ ts_library(
":observers",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+2 -2
View File
@@ -15,7 +15,7 @@ ng_module(
"//src/cdk/scrolling",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup
@@ -38,7 +38,7 @@ ts_library(
"//src/cdk/testing",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+1 -1
View File
@@ -6,5 +6,5 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/platform",
deps = ["@rxjs"],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
+2 -2
View File
@@ -8,7 +8,7 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/portal",
deps = ["@rxjs"],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +19,7 @@ ts_library(
":portal",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+12
View File
@@ -0,0 +1,12 @@
load("//:packages.bzl", "CDK_PACKAGES")
# Base rollup globals for dependencies and the root entry-point.
CDK_ROLLUP_GLOBALS = {
'tslib': 'tslib',
'@angular/cdk': 'ng.cdk',
}
# Rollup globals for subpackages in the form of, e.g., {"@angular/cdk/table": "ng.cdk.table"}
CDK_ROLLUP_GLOBALS.update({
"@angular/cdk/%s" % p: "ng.cdk.%s" % p for p in CDK_PACKAGES
})
+2 -2
View File
@@ -11,7 +11,7 @@ ng_module(
"//src/cdk/platform",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -23,7 +23,7 @@ ts_library(
"//src/cdk/testing",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+1 -1
View File
@@ -12,5 +12,5 @@ ng_module(
"//src/cdk/keycodes",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
-1
View File
@@ -1 +0,0 @@
<ng-template><ng-content></ng-content></ng-template>
+1 -1
View File
@@ -67,7 +67,7 @@ export class StepperSelectionEvent {
moduleId: module.id,
selector: 'cdk-step',
exportAs: 'cdkStep',
templateUrl: 'step.html',
template: '<ng-template><ng-content></ng-content></ng-template>',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
})
+2 -2
View File
@@ -11,7 +11,7 @@ ng_module(
"//src/cdk/collections",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -23,7 +23,7 @@ ts_library(
"//src/cdk/collections",
"@rxjs",
],
tsconfig = ":tsconfig-build.json",
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
+45
View File
@@ -0,0 +1,45 @@
package(default_visibility=["//visibility:public"])
load("@angular//:index.bzl", "ng_module")
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_web_test")
ng_module(
name = "tree",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/tree",
deps = [
"//src/cdk/a11y",
"//src/cdk/bidi",
"//src/cdk/coercion",
"//src/cdk/collections",
"@rxjs",
],
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
name = "tree_test_sources",
testonly = 1,
srcs = glob(["**/*.spec.ts"]),
deps = [
":tree",
"//src/cdk/collections",
"@rxjs",
],
tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
name = "unit_tests",
bootstrap = ["//:web_test_bootstrap_scripts"],
# TODO(tinagao): get these tests passing
tags = ["manual"],
# Do not sort
deps = [
"//:tslib_bundle",
"//:angular_bundles",
"//:angular_test_bundles",
"//test:angular_test_init",
":tree_test_sources",
],
)
+1
View File
@@ -0,0 +1 @@
declare var module: {id: string};
+2 -1
View File
@@ -1,5 +1,6 @@
load("//tools:sass_bundle.bzl", "sass_bundle")
load("//:components.bzl", "MATERIAL_PACKAGES")
load("//:packages.bzl", "MATERIAL_PACKAGES")
load("@angular//:index.bzl", "ng_package")
sass_bundle(
+6 -6
View File
@@ -55,21 +55,21 @@ export const rollupGlobals = {
'rxjs/BehaviorSubject': 'Rx',
'rxjs/Observable': 'Rx',
'rxjs/Subject': 'Rx',
'rxjs/Subscription': 'Rx',
'rxjs/Observer': 'Rx',
'rxjs/Subscriber': 'Rx',
'rxjs/Scheduler': 'Rx',
'rxjs/Subject': 'Rx',
'rxjs/Subscriber': 'Rx',
'rxjs/Subscription': 'Rx',
'rxjs/observable/combineLatest': 'Rx.Observable',
'rxjs/observable/defer': 'Rx.Observable',
'rxjs/observable/empty': 'Rx.Observable',
'rxjs/observable/forkJoin': 'Rx.Observable',
'rxjs/observable/fromEvent': 'Rx.Observable',
'rxjs/observable/fromEventPattern': 'Rx.Observable',
'rxjs/observable/merge': 'Rx.Observable',
'rxjs/observable/of': 'Rx.Observable',
'rxjs/observable/throw': 'Rx.Observable',
'rxjs/observable/defer': 'Rx.Observable',
'rxjs/observable/fromEventPattern': 'Rx.Observable',
'rxjs/observable/empty': 'Rx.Observable',
'rxjs/operators/debounceTime': 'Rx.operators',
'rxjs/operators/takeUntil': 'Rx.operators',