feat(compiler): lower @NgModule ids if needed (#23031)

This change allows the id of an NgModule to be dynamically computed if
needed.

PR Close #23031
This commit is contained in:
Alex Rickabaugh
2018-03-27 11:56:23 -07:00
parent 884bf0ef09
commit bd024c02e2
4 changed files with 24 additions and 6 deletions

View File

@ -28,7 +28,7 @@ const IGNORE = {
const USE_VALUE = 'useValue';
const PROVIDE = 'provide';
const REFERENCE_SET = new Set([USE_VALUE, 'useFactory', 'data']);
const REFERENCE_SET = new Set([USE_VALUE, 'useFactory', 'data', 'id']);
const TYPEGUARD_POSTFIX = 'TypeGuard';
const USE_IF = 'UseIf';

View File

@ -55,10 +55,11 @@ export class NgModuleCompiler {
]));
if (ngModuleMeta.id) {
const registerFactoryStmt =
o.importExpr(Identifiers.RegisterModuleFactoryFn)
.callFn([o.literal(ngModuleMeta.id), o.variable(ngModuleFactoryVar)])
.toStmt();
const id = typeof ngModuleMeta.id === 'string' ? o.literal(ngModuleMeta.id) :
ctx.importExpr(ngModuleMeta.id);
const registerFactoryStmt = o.importExpr(Identifiers.RegisterModuleFactoryFn)
.callFn([id, o.variable(ngModuleFactoryVar)])
.toStmt();
ctx.statements.push(registerFactoryStmt);
}