package(default_visibility = ["//visibility:public"]) load("//tools:defaults.bzl", "ng_module", "ts_library") load("//tools/http-server:http_server.bzl", "http_server") load("//tools/symbol-extractor:index.bzl", "js_expected_symbol_test") load("//packages/bazel/src:ng_rollup_bundle.bzl", "ng_rollup_bundle") load("@build_bazel_rules_nodejs//:defs.bzl", "jasmine_node_test") load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver") ng_module( name = "todo", srcs = ["index.ts"], tags = ["ivy-only"], deps = [ "//packages/common", "//packages/core", "//packages/core/test/bundling/util:reflect_metadata", ], ) ng_rollup_bundle( name = "bundle", # TODO(alexeagle): This is inconsistent. # We try to teach users to always have their workspace at the start of a # path, to disambiguate from other workspaces. # Here, the rule implementation is looking in an execroot where the layout # has an "external" directory for external dependencies. # This should probably start with "angular/" and let the rule deal with it. entry_point = "packages/core/test/bundling/todo/index.js", tags = ["ivy-only"], deps = [ ":todo", "//packages/common", "//packages/core", "//packages/core/test/bundling/util:reflect_metadata", ], ) ts_library( name = "test_lib", testonly = 1, srcs = glob(["*_spec.ts"]), deps = [ "//packages:types", "//packages/core", "//packages/core/testing", ], ) jasmine_node_test( name = "test", data = [ ":bundle", ":bundle.js", ":bundle.min.js", ":bundle.min_debug.js", ], tags = [ "ivy-jit", "ivy-local", "ivy-only", ], deps = [":test_lib"], ) js_expected_symbol_test( name = "symbol_test", src = ":bundle.min_debug.js", golden = ":bundle.golden_symbols.json", tags = [ "ivy-local", "ivy-only", ], ) genrule( name = "tslib", srcs = [ "@angular_deps//:node_modules/tslib/tslib.js", ], outs = [ "tslib.js", ], cmd = "cp $< $@", ) ts_devserver( name = "devserver", entry_module = "angular/packages/core/test/bundling/todo/index", serving_path = "/bundle.min.js", static_files = [ "index.html", ":tslib", "todo.css", "base.css", ], deps = [":todo"], ) http_server( name = "prodserver", data = [ "base.css", "index.html", "todo.css", ":bundle.min.js.br", ":bundle.min_debug.js", ], )