Paul Gschwendtner 1550663b9e fix(bazel): ng_module rule does not expose flat module information in Ivy (#36971)
The `ng_module` rule supports the generation of flat module bundles. In
View Engine, information about this flat module bundle is exposed
as a Bazel provider. This is helpful as other rules like `ng_package`
could rely on this information to determine entry-points for the APF.

With Ivy this currently does not work because the flat module
information is not exposed in the provider. The reason for this is
unclear. We should also provide this information in Ivy so that rules
like `ng_package` can also determine the correct entry-points when a
package is built specifically with `--config=ivy`.

PR Close #36971
2020-07-09 22:11:17 +00:00

90 lines
2.3 KiB
Python

load("//tools:defaults.bzl", "jasmine_node_test", "nodejs_binary", "ts_library")
exports_files(["package.json"])
# The tests in this package must run in separate targets, since they change
# working directory and therefore have mutable global state that causes test
# isolation failures.
ts_library(
name = "core_spec_lib",
testonly = True,
srcs = ["core_package.spec.ts"],
deps = [
"//packages:types",
"//packages/private/testing",
"@npm//@types/shelljs",
],
)
jasmine_node_test(
name = "core_package",
srcs = [":core_spec_lib"],
data = [
"//packages/core:npm_package",
"@npm//@types/shelljs",
"@npm//shelljs",
],
)
ts_library(
name = "common_spec_lib",
testonly = True,
srcs = ["common_package.spec.ts"],
deps = [
"//packages:types",
"//packages/private/testing",
"@npm//@types/shelljs",
],
)
jasmine_node_test(
name = "common_package",
srcs = [":common_spec_lib"],
data = [
"//packages/common:npm_package",
"@npm//shelljs",
],
)
ts_library(
name = "example_spec_lib",
testonly = True,
srcs = ["example_package.spec.ts"],
deps = [
"//packages:types",
"@npm//@types/diff",
],
)
jasmine_node_test(
name = "example_package",
srcs = [":example_spec_lib"],
data = [
"example_package.golden",
"example_with_ts_library_package.golden",
"//packages/bazel/test/ng_package/example:npm_package",
"//packages/bazel/test/ng_package/example-with-ts-library:npm_package",
],
# We don't want to run the example_package golden test with Ivy yet. Currently the golden
# file is based on non-ivy output and therefore won't work for ngc and Ivy at the same time.
# TODO: We should be able to have another golden for ivy-aot as well.
tags = ["no-ivy-aot"],
deps = ["@npm//diff"],
)
nodejs_binary(
name = "example_package.accept",
testonly = True,
data = [
"example_package.golden",
"example_with_ts_library_package.golden",
":example_spec_lib",
"//packages/bazel/test/ng_package/example:npm_package",
"//packages/bazel/test/ng_package/example-with-ts-library:npm_package",
"@npm//diff",
],
entry_point = ":example_package.spec.ts",
templated_args = ["--accept"],
)