packages/compiler-cli/src/ngtsc/annotations/README.md
This package implements compilation of Angular-annotated classes - those with @Component, @NgModule, etc. decorators. (Note that the compiler uses 'decorator' and 'annotation' interchangeably, despite them having slightly different semantics).
The 'transform' package of the compiler provides an abstraction for a DecoratorHandler, which defines how to compile a class decorated with a particular Angular decorator. This package implements a DecoratorHandler for each Angular type. The methods of these DecoratorHandlers then allow the rest of the compiler to process each decorated class through the phases of compilation.
DecoratorHandlersEach handler implemented here performs some similar operations:
PartialEvaluator to resolve expressions within the decorator metadata or other decorated fields that need to be understood statically.SemanticSymbols which allow for accurate incremental compilation when reacting to input changes.@angular/compiler which describe the decorated classes, which can then perform the actual code generation.Since there is significant overlap between DecoratorHandler implementations, much of this functionality is implemented in a shared 'common' sub-package.