feat(ivy): ngtsc compiles @Component, @Directive, @NgModule (#24427)
This change supports compilation of components, directives, and modules within ngtsc. Support is not complete, but is enough to compile and test //packages/core/test/bundling/todo in full AOT mode. Code size benefits are not yet achieved as //packages/core itself does not get compiled, and some decorators (e.g. @Input) are not stripped, leading to unwanted code being retained by the tree-shaker. This will be improved in future commits. PR Close #24427
This commit is contained in:

committed by
Miško Hevery

parent
0f7e4fae20
commit
27bc7dcb43
@ -72,8 +72,11 @@ export function compileNgModule(meta: R3NgModuleMetadata): R3NgModuleDef {
|
||||
exports: o.literalArr(exports),
|
||||
})]);
|
||||
|
||||
// TODO(alxhub): write a proper type reference when AOT compilation of @NgModule is implemented.
|
||||
const type = new o.ExpressionType(o.NULL_EXPR);
|
||||
const type = new o.ExpressionType(o.importExpr(R3.NgModuleDef, [
|
||||
new o.ExpressionType(moduleType), new o.ExpressionType(o.literalArr(declarations)),
|
||||
new o.ExpressionType(o.literalArr(imports)), new o.ExpressionType(o.literalArr(exports))
|
||||
]));
|
||||
|
||||
const additionalStatements: o.Statement[] = [];
|
||||
return {expression, type, additionalStatements};
|
||||
}
|
||||
|
Reference in New Issue
Block a user