angular/packages/compiler-cli/linker/src
Kristiyan Kostadinov 5bd188a394 feat(compiler-cli): add partial compilation support for deferred blocks (#54908)
Builds on top of the previous changes to add support for deferred blocks during partial compilation. To do this, the following changes had to be made:
* The metadata passed into `ɵɵngDeclareComponent` has an additional field called `deferBlockDependencies` which has an array of the dependency loading functions for each defer block in the template. During linking, the dependency functions are loaded by matching their template index to the index in the `deferBlockDependencies` array.
* There's a new `ɵɵngDeclareClassMetadataAsync` function that is created for components that have deferred dependencies. It gets transpiled to `setClassMetadataAsync` and works in the same way by capturing a dependency loading function and setting the metadata after the dependencies are resolved. It also has some extra fields for capturing the version which are standard in linker-generated code.
* Deferred import statements are now stripped in partial compilation mode, similar to full compilation.

PR Close #54908
2024-03-21 22:15:32 -07:00
..
ast refactor(compiler-cli): add method for extracting function parameters (#54908) 2024-03-21 22:15:30 -07:00
file_linker feat(compiler-cli): add partial compilation support for deferred blocks (#54908) 2024-03-21 22:15:32 -07:00
fatal_linker_error.ts refactor(compiler-cli): linker - add Babel plugin, FileLinker and initial PartialLinkers (#39116) 2020-10-19 11:23:45 -07:00
linker_import_generator.ts refactor(compiler-cli): update ImportGenerator abstraction for new manager (#54819) 2024-03-15 15:09:40 -07:00