2020-09-16 06:19:56 -04:00
|
|
|
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
|
|
|
|
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
|
|
|
|
ts_library(
|
|
|
|
name = "test_lib",
|
|
|
|
testonly = True,
|
|
|
|
srcs = glob([
|
|
|
|
"**/*.ts",
|
|
|
|
]),
|
|
|
|
deps = [
|
|
|
|
"//packages:types",
|
|
|
|
"//packages/compiler",
|
|
|
|
"//packages/compiler-cli/linker",
|
2020-12-21 05:06:23 -05:00
|
|
|
"//packages/compiler-cli/src/ngtsc/file_system",
|
|
|
|
"//packages/compiler-cli/src/ngtsc/file_system/testing",
|
|
|
|
"//packages/compiler-cli/src/ngtsc/logging/testing",
|
2020-10-03 14:59:53 -04:00
|
|
|
"//packages/compiler-cli/src/ngtsc/translator",
|
refactor(compiler-cli): change how partial-linkers are matched to declaration versions (#41578)
Previously, it was not possible to block a partial-linker from trying to
process a declaration that was defined in a newer version of Angular than
that of the partial-linker. For example, if a partial-linker was published as
part of version 12.0.0, there was no way for a partially-compiled declaration
compiled via version 13.0.0 to tell the 12.0.0 linker that it would be invalid
to attempt to process it.
This commit adds a new `minVersion` property to partial-declarations, which is
interpreted as the "minimum partial-linker version" that can process this
declaration. When selecting a partial-linker for such a declaration, the known
linker version ranges are checked to find the most recent linker whose version
range has an overlap with the interpreted declaration range.
This approach allows us to set a minimum version for a declaration, which
can inform an old partial-linker that will it not be able to accurately
process the declaration.
Note that any pre-release part to versions are ignored in this selection
process.
The file-linker can be configured, via the `unknownDeclarationVersionHandling`
property of `LinkerOptions`, to handle such a situation in one of three ways:
- `error` - the version mismatch is a fatal error
- `warn` - a warning is sent to the logger but the most recent partial-linker
will attempt to process the declaration anyway.
- `ignore` - the most recent partial-linker will, silently, attempt to process
the declaration.
The default is to throw an error.
Closes #41497
PR Close #41578
2021-04-12 07:30:20 -04:00
|
|
|
"@npm//@types/semver",
|
|
|
|
"@npm//semver",
|
2020-09-16 06:19:56 -04:00
|
|
|
"@npm//typescript",
|
|
|
|
],
|
|
|
|
)
|
|
|
|
|
|
|
|
jasmine_node_test(
|
|
|
|
name = "test",
|
|
|
|
bootstrap = ["//tools/testing:node_no_angular_es5"],
|
|
|
|
deps = [
|
|
|
|
":test_lib",
|
|
|
|
],
|
|
|
|
)
|