Previously, when `ngcc` needed to mark multiple properties as processed (e.g. a processed format property and `typings` or all supported properties for a non-Angular entry-point), it would update each one separately and write the file to disk multiple times. This commit changes this, so that multiple properties can be updated at once with one file-write operation. While this theoretically improves performance (reducing the I/O operations), it is not expected to have any noticeable impact in practice, since these operations are a tiny fraction of `ngcc`'s work. This change will be useful for a subsequent change to mark all properties that map to the same `formatPath` as processed, once it is processed the first time. PR Close #32003
Angular Compatibility Compiler (ngcc)
This compiler will convert node_modules compiled with ngc, into node_modules which
appear to have been compiled with ngtsc.
This conversion will allow such "legacy" packages to be used by the Ivy rendering engine.
Building
The project is built using Bazel:
yarn bazel build //packages/compiler-cli/ngcc
Unit Testing
The unit tests are built and run using Bazel:
yarn bazel test //packages/compiler-cli/ngcc/test
Integration Testing
There are tests that check the behavior of the overall executable:
yarn bazel test //packages/compiler-cli/ngcc/test:integration