angular-cn/packages/compiler-cli/test/ngtsc/fake_core
Alex Rickabaugh 0677cf0cbe feat(ivy): use the schema registry to check DOM bindings (#32171)
Previously, ngtsc attempted to use the .d.ts schema for HTML elements to
check bindings to DOM properties. However, the TypeScript lib.dom.d.ts
schema does not perfectly align with the Angular DomElementSchemaRegistry,
and these inconsistencies would cause issues in apps. There is also the
concern of supporting both CUSTOM_ELEMENTS_SCHEMA and NO_ERRORS_SCHEMA which
would have been very difficult to do in the existing system.

With this commit, the DomElementSchemaRegistry is employed in ngtsc to check
bindings to the DOM. Previous work on producing template diagnostics is used
to support generation of this different kind of error with the same high
quality of error message.

PR Close #32171
2019-08-22 10:12:45 -07:00
..
BUILD.bazel build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
README.md
index.ts feat(ivy): use the schema registry to check DOM bindings (#32171) 2019-08-22 10:12:45 -07:00
package.json

README.md

fake_core is a library designed to expose some of the same symbols as @angular/core, without requiring compilation of the whole of @angular/core. This enables unit tests for the compiler to be written without incurring long rebuilds for every change.

  • @angular/core is compiled with @angular/compiler-cli, and therefore has an implicit dependency on it. Therefore core must be rebuilt if the compiler changes.
  • Tests for the compiler which intend to build code that depends on @angular/core must have a data dependency on @angular/core. Therefore core must be built to run the compiler tests, and thus rebuilt if the compiler changes.

This rebuild cycle is expensive and slow. fake_core avoids this by exposing a subset of the @angular/core API, which enables applications to be built by the ngtsc compiler without needing a full version of core present at compile time.