
Previously, the transitive scopes of an NgModuleDef were computed during execution of the @NgModule decorator. This meant that JIT- compiled modules could only import other JIT-compiled modules, as the import mechanism relied on the calculation of transitive scopes to already have happened for the imported module. This change moves computation of transitive scopes to a function `transitiveScopesFor` (and makes it lazy). This opens the door for AOT -> JIT or JIT -> AOT imports, as transitive scopes for AOT modules can be calculated when needed by JIT, and AOT modules can also write expressions that call `transitiveScopesFor` when importing a JIT-compiled module. PR Close #24334
17 lines
636 B
TypeScript
17 lines
636 B
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {getClosureSafeProperty} from '../../util/property';
|
|
|
|
const TARGET = {} as any;
|
|
|
|
export const NG_COMPONENT_DEF = getClosureSafeProperty({ngComponentDef: TARGET}, TARGET);
|
|
export const NG_DIRECTIVE_DEF = getClosureSafeProperty({ngDirectiveDef: TARGET}, TARGET);
|
|
export const NG_PIPE_DEF = getClosureSafeProperty({ngPipeDef: TARGET}, TARGET);
|
|
export const NG_MODULE_DEF = getClosureSafeProperty({ngModuleDef: TARGET}, TARGET);
|