refactor(compiler-cli): implement ɵɵngDeclareNgModule and ɵɵngDeclareInjector (#41080)
This commit changes the partial compilation so that it outputs declaration calls rather than definition calls for NgModules and Injectors. The JIT compiler and the linker are updated to be able to handle these new declarations. PR Close #41080
This commit is contained in:
committed by
Jessica Janiuk
parent
8a33842cca
commit
5565810bd6
@@ -11,5 +11,5 @@ export {FatalLinkerError, isFatalLinkerError} from './src/fatal_linker_error';
|
||||
export {DeclarationScope} from './src/file_linker/declaration_scope';
|
||||
export {FileLinker} from './src/file_linker/file_linker';
|
||||
export {LinkerEnvironment} from './src/file_linker/linker_environment';
|
||||
export {LinkerOptions} from './src/file_linker/linker_options';
|
||||
export {DEFAULT_LINKER_OPTIONS, LinkerOptions} from './src/file_linker/linker_options';
|
||||
export {needsLinking} from './src/file_linker/needs_linking';
|
||||
|
||||
@@ -34,7 +34,8 @@ export class LinkerEnvironment<TStatement, TExpression> {
|
||||
i18nNormalizeLineEndingsInICUs: options.i18nNormalizeLineEndingsInICUs ??
|
||||
DEFAULT_LINKER_OPTIONS.i18nNormalizeLineEndingsInICUs,
|
||||
i18nUseExternalIds: options.i18nUseExternalIds ?? DEFAULT_LINKER_OPTIONS.i18nUseExternalIds,
|
||||
sourceMapping: options.sourceMapping ?? DEFAULT_LINKER_OPTIONS.sourceMapping
|
||||
sourceMapping: options.sourceMapping ?? DEFAULT_LINKER_OPTIONS.sourceMapping,
|
||||
linkerJitMode: options.linkerJitMode ?? DEFAULT_LINKER_OPTIONS.linkerJitMode,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,14 @@ export interface LinkerOptions {
|
||||
* The default is `true`.
|
||||
*/
|
||||
sourceMapping: boolean;
|
||||
|
||||
/**
|
||||
* This option tells the linker to generate information used by a downstream JIT compiler.
|
||||
*
|
||||
* Specifically, in JIT mode, NgModule definitions must describe the `declarations`, `imports`,
|
||||
* `exports`, etc, which are otherwise not needed.
|
||||
*/
|
||||
linkerJitMode: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,4 +51,5 @@ export const DEFAULT_LINKER_OPTIONS: LinkerOptions = {
|
||||
i18nNormalizeLineEndingsInICUs: false,
|
||||
i18nUseExternalIds: false,
|
||||
sourceMapping: true,
|
||||
linkerJitMode: false,
|
||||
};
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google LLC 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 {compileInjector, ConstantPool, R3DeclareInjectorMetadata, R3InjectorMetadata, R3PartialDeclaration} from '@angular/compiler';
|
||||
import * as o from '@angular/compiler/src/output/output_ast';
|
||||
|
||||
import {AstObject} from '../../ast/ast_value';
|
||||
import {FatalLinkerError} from '../../fatal_linker_error';
|
||||
|
||||
import {PartialLinker} from './partial_linker';
|
||||
import {wrapReference} from './util';
|
||||
|
||||
/**
|
||||
* A `PartialLinker` that is designed to process `ɵɵngDeclareInjector()` call expressions.
|
||||
*/
|
||||
export class PartialInjectorLinkerVersion1<TExpression> implements PartialLinker<TExpression> {
|
||||
linkPartialDeclaration(
|
||||
constantPool: ConstantPool,
|
||||
metaObj: AstObject<R3PartialDeclaration, TExpression>): o.Expression {
|
||||
const meta = toR3InjectorMeta(metaObj);
|
||||
const def = compileInjector(meta);
|
||||
return def.expression;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Derives the `R3InjectorMetadata` structure from the AST object.
|
||||
*/
|
||||
export function toR3InjectorMeta<TExpression>(
|
||||
metaObj: AstObject<R3DeclareInjectorMetadata, TExpression>): R3InjectorMetadata {
|
||||
const typeExpr = metaObj.getValue('type');
|
||||
const typeName = typeExpr.getSymbolName();
|
||||
if (typeName === null) {
|
||||
throw new FatalLinkerError(
|
||||
typeExpr.expression, 'Unsupported type, its name could not be determined');
|
||||
}
|
||||
|
||||
return {
|
||||
name: typeName,
|
||||
type: wrapReference(typeExpr.getOpaque()),
|
||||
internalType: metaObj.getOpaque('type'),
|
||||
providers: metaObj.has('providers') ? metaObj.getOpaque('providers') : null,
|
||||
imports: metaObj.has('imports') ? metaObj.getArray('imports').map(i => i.getOpaque()) : [],
|
||||
};
|
||||
}
|
||||
+19
-1
@@ -13,13 +13,20 @@ import {LinkerEnvironment} from '../linker_environment';
|
||||
|
||||
import {PartialComponentLinkerVersion1} from './partial_component_linker_1';
|
||||
import {PartialDirectiveLinkerVersion1} from './partial_directive_linker_1';
|
||||
import {PartialInjectorLinkerVersion1} from './partial_injector_linker_1';
|
||||
import {PartialLinker} from './partial_linker';
|
||||
import {PartialNgModuleLinkerVersion1} from './partial_ng_module_linker_1';
|
||||
import {PartialPipeLinkerVersion1} from './partial_pipe_linker_1';
|
||||
|
||||
export const ɵɵngDeclareDirective = 'ɵɵngDeclareDirective';
|
||||
export const ɵɵngDeclareComponent = 'ɵɵngDeclareComponent';
|
||||
export const ɵɵngDeclareInjector = 'ɵɵngDeclareInjector';
|
||||
export const ɵɵngDeclareNgModule = 'ɵɵngDeclareNgModule';
|
||||
export const ɵɵngDeclarePipe = 'ɵɵngDeclarePipe';
|
||||
export const declarationFunctions = [ɵɵngDeclareDirective, ɵɵngDeclareComponent, ɵɵngDeclarePipe];
|
||||
export const declarationFunctions = [
|
||||
ɵɵngDeclareDirective, ɵɵngDeclareComponent, ɵɵngDeclareInjector, ɵɵngDeclareNgModule,
|
||||
ɵɵngDeclarePipe
|
||||
];
|
||||
|
||||
interface LinkerRange<TExpression> {
|
||||
range: string;
|
||||
@@ -83,6 +90,9 @@ export class PartialLinkerSelector<TStatement, TExpression> {
|
||||
const partialComponentLinkerVersion1 = new PartialComponentLinkerVersion1(
|
||||
environment, createGetSourceFile(sourceUrl, code, environment.sourceFileLoader), sourceUrl,
|
||||
code);
|
||||
const partialInjectorLinkerVersion1 = new PartialInjectorLinkerVersion1();
|
||||
const partialNgModuleLinkerVersion1 =
|
||||
new PartialNgModuleLinkerVersion1(environment.options.linkerJitMode);
|
||||
const partialPipeLinkerVersion1 = new PartialPipeLinkerVersion1();
|
||||
|
||||
const linkers = new Map<string, LinkerRange<TExpression>[]>();
|
||||
@@ -94,6 +104,14 @@ export class PartialLinkerSelector<TStatement, TExpression> {
|
||||
{range: '0.0.0-PLACEHOLDER', linker: partialComponentLinkerVersion1},
|
||||
{range: '>=11.1.0-next.1', linker: partialComponentLinkerVersion1},
|
||||
]);
|
||||
linkers.set(ɵɵngDeclareInjector, [
|
||||
{range: '0.0.0-PLACEHOLDER', linker: partialInjectorLinkerVersion1},
|
||||
{range: '>=11.1.0-next.1', linker: partialInjectorLinkerVersion1},
|
||||
]);
|
||||
linkers.set(ɵɵngDeclareNgModule, [
|
||||
{range: '0.0.0-PLACEHOLDER', linker: partialNgModuleLinkerVersion1},
|
||||
{range: '>=11.1.0-next.1', linker: partialNgModuleLinkerVersion1},
|
||||
]);
|
||||
linkers.set(ɵɵngDeclarePipe, [
|
||||
{range: '0.0.0-PLACEHOLDER', linker: partialPipeLinkerVersion1},
|
||||
{range: '>=11.1.0-next.1', linker: partialPipeLinkerVersion1},
|
||||
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google LLC 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 {compileNgModule, ConstantPool, R3DeclareNgModuleMetadata, R3NgModuleMetadata, R3PartialDeclaration, R3Reference} from '@angular/compiler';
|
||||
import * as o from '@angular/compiler/src/output/output_ast';
|
||||
|
||||
import {AstObject, AstValue} from '../../ast/ast_value';
|
||||
|
||||
import {PartialLinker} from './partial_linker';
|
||||
import {wrapReference} from './util';
|
||||
|
||||
/**
|
||||
* A `PartialLinker` that is designed to process `ɵɵngDeclareNgModule()` call expressions.
|
||||
*/
|
||||
export class PartialNgModuleLinkerVersion1<TExpression> implements PartialLinker<TExpression> {
|
||||
constructor(
|
||||
/**
|
||||
* If true then emit the additional declarations, imports, exports, etc in the NgModule
|
||||
* definition. These are only used by JIT compilation.
|
||||
*/
|
||||
private emitInline: boolean) {}
|
||||
|
||||
linkPartialDeclaration(
|
||||
constantPool: ConstantPool,
|
||||
metaObj: AstObject<R3PartialDeclaration, TExpression>): o.Expression {
|
||||
const meta = toR3NgModuleMeta(metaObj, this.emitInline);
|
||||
const def = compileNgModule(meta);
|
||||
return def.expression;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Derives the `R3NgModuleMetadata` structure from the AST object.
|
||||
*/
|
||||
export function toR3NgModuleMeta<TExpression>(
|
||||
metaObj: AstObject<R3DeclareNgModuleMetadata, TExpression>,
|
||||
emitInline: boolean): R3NgModuleMetadata {
|
||||
const wrappedType = metaObj.getOpaque('type');
|
||||
|
||||
const meta: R3NgModuleMetadata = {
|
||||
type: wrapReference(wrappedType),
|
||||
internalType: wrappedType,
|
||||
adjacentType: wrappedType,
|
||||
bootstrap: [],
|
||||
declarations: [],
|
||||
imports: [],
|
||||
exports: [],
|
||||
emitInline,
|
||||
containsForwardDecls: false,
|
||||
schemas: [],
|
||||
id: metaObj.has('id') ? metaObj.getOpaque('id') : null,
|
||||
};
|
||||
|
||||
// Each of `bootstrap`, `declarations`, `imports` and `exports` are normally an array. But if any
|
||||
// of the references are not yet declared, then the arrays must be wrapped in a function to
|
||||
// prevent errors at runtime when accessing the values.
|
||||
|
||||
// The following blocks of code will unwrap the arrays from such functions, because
|
||||
// `R3NgModuleMetadata` expects arrays of `R3Reference` objects.
|
||||
|
||||
// Further, since the `ɵdefineNgModule()` will also suffer from the forward declaration problem,
|
||||
// we must update the `containsForwardDecls` property if a function wrapper was found.
|
||||
|
||||
if (metaObj.has('bootstrap')) {
|
||||
const bootstrap: AstValue<unknown, TExpression> = metaObj.getValue('bootstrap');
|
||||
if (bootstrap.isFunction()) {
|
||||
meta.containsForwardDecls = true;
|
||||
meta.bootstrap = wrapReferences(unwrapForwardRefs(bootstrap));
|
||||
} else
|
||||
meta.bootstrap = wrapReferences(bootstrap);
|
||||
}
|
||||
|
||||
if (metaObj.has('declarations')) {
|
||||
const declarations: AstValue<unknown, TExpression> = metaObj.getValue('declarations');
|
||||
if (declarations.isFunction()) {
|
||||
meta.containsForwardDecls = true;
|
||||
meta.declarations = wrapReferences(unwrapForwardRefs(declarations));
|
||||
} else
|
||||
meta.declarations = wrapReferences(declarations);
|
||||
}
|
||||
|
||||
if (metaObj.has('imports')) {
|
||||
const imports: AstValue<unknown, TExpression> = metaObj.getValue('imports');
|
||||
if (imports.isFunction()) {
|
||||
meta.containsForwardDecls = true;
|
||||
meta.imports = wrapReferences(unwrapForwardRefs(imports));
|
||||
} else
|
||||
meta.imports = wrapReferences(imports);
|
||||
}
|
||||
|
||||
if (metaObj.has('exports')) {
|
||||
const exports: AstValue<unknown, TExpression> = metaObj.getValue('exports');
|
||||
if (exports.isFunction()) {
|
||||
meta.containsForwardDecls = true;
|
||||
meta.exports = wrapReferences(unwrapForwardRefs(exports));
|
||||
} else
|
||||
meta.exports = wrapReferences(exports);
|
||||
}
|
||||
|
||||
if (metaObj.has('schemas')) {
|
||||
const schemas: AstValue<unknown, TExpression> = metaObj.getValue('schemas');
|
||||
meta.schemas = wrapReferences(schemas);
|
||||
}
|
||||
|
||||
return meta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract an array from the body of the function.
|
||||
*
|
||||
* If `field` is `function() { return [exp1, exp2, exp3]; }` then we return `[exp1, exp2, exp3]`.
|
||||
*
|
||||
*/
|
||||
function unwrapForwardRefs<TExpression>(field: AstValue<unknown, TExpression>):
|
||||
AstValue<TExpression[], TExpression> {
|
||||
return (field as AstValue<Function, TExpression>).getFunctionReturnValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrap the array of expressions into an array of R3 references.
|
||||
*/
|
||||
function wrapReferences<TExpression>(values: AstValue<TExpression[], TExpression>): R3Reference[] {
|
||||
return values.getArray().map(i => wrapReference(i.getOpaque()));
|
||||
}
|
||||
+8
-7
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
import * as ts from 'typescript';
|
||||
|
||||
import {LinkerOptions} from '../../..';
|
||||
import {DEFAULT_LINKER_OPTIONS, LinkerOptions} from '../../..';
|
||||
import {FileSystem} from '../../../../src/ngtsc/file_system';
|
||||
import {MockFileSystemNative} from '../../../../src/ngtsc/file_system/testing';
|
||||
import {MockLogger} from '../../../../src/ngtsc/logging/testing';
|
||||
@@ -16,16 +16,13 @@ import {TypeScriptAstHost} from '../../../src/ast/typescript/typescript_ast_host
|
||||
import {LinkerEnvironment} from '../../../src/file_linker/linker_environment';
|
||||
import {PartialComponentLinkerVersion1} from '../../../src/file_linker/partial_linkers/partial_component_linker_1';
|
||||
import {PartialDirectiveLinkerVersion1} from '../../../src/file_linker/partial_linkers/partial_directive_linker_1';
|
||||
import {PartialInjectorLinkerVersion1} from '../../../src/file_linker/partial_linkers/partial_injector_linker_1';
|
||||
import {PartialLinkerSelector} from '../../../src/file_linker/partial_linkers/partial_linker_selector';
|
||||
import {PartialNgModuleLinkerVersion1} from '../../../src/file_linker/partial_linkers/partial_ng_module_linker_1';
|
||||
import {PartialPipeLinkerVersion1} from '../../../src/file_linker/partial_linkers/partial_pipe_linker_1';
|
||||
|
||||
describe('PartialLinkerSelector', () => {
|
||||
const options: LinkerOptions = {
|
||||
i18nNormalizeLineEndingsInICUs: true,
|
||||
enableI18nLegacyMessageIdFormat: false,
|
||||
i18nUseExternalIds: false,
|
||||
sourceMapping: false,
|
||||
};
|
||||
const options: LinkerOptions = DEFAULT_LINKER_OPTIONS;
|
||||
let environment: LinkerEnvironment<ts.Statement, ts.Expression>;
|
||||
let fs: FileSystem;
|
||||
|
||||
@@ -65,6 +62,10 @@ describe('PartialLinkerSelector', () => {
|
||||
.toBeInstanceOf(PartialComponentLinkerVersion1);
|
||||
expect(selector.getLinker('ɵɵngDeclarePipe', '0.0.0-PLACEHOLDER'))
|
||||
.toBeInstanceOf(PartialPipeLinkerVersion1);
|
||||
expect(selector.getLinker('ɵɵngDeclareInjector', '0.0.0-PLACEHOLDER'))
|
||||
.toBeInstanceOf(PartialInjectorLinkerVersion1);
|
||||
expect(selector.getLinker('ɵɵngDeclareNgModule', '0.0.0-PLACEHOLDER'))
|
||||
.toBeInstanceOf(PartialNgModuleLinkerVersion1);
|
||||
});
|
||||
|
||||
it('should return the linker that matches the name and valid full version', () => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {compileInjector, compileNgModule, CUSTOM_ELEMENTS_SCHEMA, Expression, ExternalExpr, Identifiers as R3, InvokeFunctionExpr, LiteralArrayExpr, LiteralExpr, NO_ERRORS_SCHEMA, R3DependencyMetadata, R3FactoryTarget, R3Identifiers, R3InjectorMetadata, R3NgModuleMetadata, R3Reference, SchemaMetadata, Statement, STRING_TYPE, WrappedNodeExpr} from '@angular/compiler';
|
||||
import {compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileFactoryFunction, compileInjector, compileNgModule, CUSTOM_ELEMENTS_SCHEMA, Expression, ExternalExpr, Identifiers as R3, InvokeFunctionExpr, LiteralArrayExpr, LiteralExpr, NO_ERRORS_SCHEMA, R3CompiledExpression, R3FactoryMetadata, R3FactoryTarget, R3Identifiers, R3InjectorMetadata, R3NgModuleMetadata, R3Reference, SchemaMetadata, Statement, STRING_TYPE, WrappedNodeExpr} from '@angular/compiler';
|
||||
import * as ts from 'typescript';
|
||||
|
||||
import {ErrorCode, FatalDiagnosticError, makeDiagnostic, makeRelatedInformation} from '../../diagnostics';
|
||||
@@ -22,7 +22,6 @@ import {AnalysisOutput, CompileResult, DecoratorHandler, DetectResult, HandlerPr
|
||||
import {getSourceFile} from '../../util/src/typescript';
|
||||
|
||||
import {createValueHasWrongTypeError, getProviderDiagnostics} from './diagnostics';
|
||||
import {compileNgFactoryDefField} from './factory';
|
||||
import {generateSetClassMetadataCall} from './metadata';
|
||||
import {ReferencesRegistry} from './references_registry';
|
||||
import {combineResolvers, findAngularDecorator, forwardRefResolver, getValidConstructorDependencies, isExpressionForwardReference, resolveProvidersRequiringFactory, toR3Reference, unwrapExpression, wrapFunctionExpressionsInParens, wrapTypeReference} from './util';
|
||||
@@ -30,7 +29,7 @@ import {combineResolvers, findAngularDecorator, forwardRefResolver, getValidCons
|
||||
export interface NgModuleAnalysis {
|
||||
mod: R3NgModuleMetadata;
|
||||
inj: R3InjectorMetadata;
|
||||
deps: R3DependencyMetadata[]|null;
|
||||
fac: R3FactoryMetadata;
|
||||
metadataStmt: Statement|null;
|
||||
declarations: Reference<ClassDeclaration>[];
|
||||
rawDeclarations: ts.Expression|null;
|
||||
@@ -299,7 +298,7 @@ export class NgModuleDecoratorHandler implements
|
||||
const internalType = new WrappedNodeExpr(this.reflector.getInternalNameOfClass(node));
|
||||
const adjacentType = new WrappedNodeExpr(this.reflector.getAdjacentNameOfClass(node));
|
||||
|
||||
const ngModuleDef: R3NgModuleMetadata = {
|
||||
const ngModuleMetadata: R3NgModuleMetadata = {
|
||||
type,
|
||||
internalType,
|
||||
adjacentType,
|
||||
@@ -333,7 +332,7 @@ export class NgModuleDecoratorHandler implements
|
||||
this.routeAnalyzer.add(node.getSourceFile(), name, rawImports, rawExports, rawProviders);
|
||||
}
|
||||
|
||||
const ngInjectorDef: R3InjectorMetadata = {
|
||||
const injectorMetadata: R3InjectorMetadata = {
|
||||
name,
|
||||
type,
|
||||
internalType,
|
||||
@@ -341,14 +340,24 @@ export class NgModuleDecoratorHandler implements
|
||||
imports: injectorImports,
|
||||
};
|
||||
|
||||
const factoryMetadata: R3FactoryMetadata = {
|
||||
name,
|
||||
type,
|
||||
internalType,
|
||||
typeArgumentCount: 0,
|
||||
deps: getValidConstructorDependencies(
|
||||
node, this.reflector, this.defaultImportRecorder, this.isCore),
|
||||
injectFn: R3.inject,
|
||||
target: R3FactoryTarget.NgModule,
|
||||
};
|
||||
|
||||
return {
|
||||
analysis: {
|
||||
id,
|
||||
schemas: schemas,
|
||||
mod: ngModuleDef,
|
||||
inj: ngInjectorDef,
|
||||
deps: getValidConstructorDependencies(
|
||||
node, this.reflector, this.defaultImportRecorder, this.isCore),
|
||||
schemas,
|
||||
mod: ngModuleMetadata,
|
||||
inj: injectorMetadata,
|
||||
fac: factoryMetadata,
|
||||
declarations: declarationRefs,
|
||||
rawDeclarations,
|
||||
imports: importRefs,
|
||||
@@ -450,17 +459,55 @@ export class NgModuleDecoratorHandler implements
|
||||
|
||||
compileFull(
|
||||
node: ClassDeclaration,
|
||||
{inj, mod, deps, metadataStmt, declarations}: Readonly<NgModuleAnalysis>,
|
||||
resolution: Readonly<NgModuleResolution>): CompileResult[] {
|
||||
// Merge the injector imports (which are 'exports' that were later found to be NgModules)
|
||||
// computed during resolution with the ones from analysis.
|
||||
const ngInjectorDef =
|
||||
compileInjector({...inj, imports: [...inj.imports, ...resolution.injectorImports]});
|
||||
{inj, mod, fac, metadataStmt, declarations}: Readonly<NgModuleAnalysis>,
|
||||
{injectorImports}: Readonly<NgModuleResolution>): CompileResult[] {
|
||||
const factoryFn = compileFactoryFunction(fac);
|
||||
const ngInjectorDef = compileInjector(this.mergeInjectorImports(inj, injectorImports));
|
||||
const ngModuleDef = compileNgModule(mod);
|
||||
const ngModuleStatements = ngModuleDef.statements;
|
||||
const statements = ngModuleDef.statements;
|
||||
this.insertMetadataStatement(statements, metadataStmt);
|
||||
this.appendRemoteScopingStatements(statements, node, declarations);
|
||||
|
||||
return this.compileNgModule(factoryFn, ngInjectorDef, ngModuleDef);
|
||||
}
|
||||
|
||||
compilePartial(
|
||||
node: ClassDeclaration, {inj, fac, mod, metadataStmt}: Readonly<NgModuleAnalysis>,
|
||||
{injectorImports}: Readonly<NgModuleResolution>): CompileResult[] {
|
||||
const factoryFn = compileFactoryFunction(fac);
|
||||
const injectorDef =
|
||||
compileDeclareInjectorFromMetadata(this.mergeInjectorImports(inj, injectorImports));
|
||||
const ngModuleDef = compileDeclareNgModuleFromMetadata(mod);
|
||||
this.insertMetadataStatement(ngModuleDef.statements, metadataStmt);
|
||||
// NOTE: no remote scoping required as this is banned in partial compilation.
|
||||
return this.compileNgModule(factoryFn, injectorDef, ngModuleDef);
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge the injector imports (which are 'exports' that were later found to be NgModules)
|
||||
* computed during resolution with the ones from analysis.
|
||||
*/
|
||||
private mergeInjectorImports(inj: R3InjectorMetadata, injectorImports: Expression[]):
|
||||
R3InjectorMetadata {
|
||||
return {...inj, imports: [...inj.imports, ...injectorImports]};
|
||||
}
|
||||
|
||||
/**
|
||||
* Add class metadata statements, if provided, to the `ngModuleStatements`.
|
||||
*/
|
||||
private insertMetadataStatement(ngModuleStatements: Statement[], metadataStmt: Statement|null):
|
||||
void {
|
||||
if (metadataStmt !== null) {
|
||||
ngModuleStatements.push(metadataStmt);
|
||||
ngModuleStatements.unshift(metadataStmt);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add remote scoping statements, as needed, to the `ngModuleStatements`.
|
||||
*/
|
||||
private appendRemoteScopingStatements(
|
||||
ngModuleStatements: Statement[], node: ClassDeclaration,
|
||||
declarations: Reference<ClassDeclaration>[]): void {
|
||||
const context = getSourceFile(node);
|
||||
for (const decl of declarations) {
|
||||
const remoteScope = this.scopeRegistry.getRemoteScope(decl.node);
|
||||
@@ -478,31 +525,34 @@ export class NgModuleDecoratorHandler implements
|
||||
ngModuleStatements.push(callExpr.toStmt());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private compileNgModule(
|
||||
factoryFn: R3CompiledExpression, injectorDef: R3CompiledExpression,
|
||||
ngModuleDef: R3CompiledExpression): CompileResult[] {
|
||||
const res: CompileResult[] = [
|
||||
compileNgFactoryDefField({
|
||||
name: inj.name,
|
||||
type: inj.type,
|
||||
internalType: inj.internalType,
|
||||
typeArgumentCount: 0,
|
||||
deps,
|
||||
injectFn: R3.inject,
|
||||
target: R3FactoryTarget.NgModule,
|
||||
}),
|
||||
{
|
||||
name: 'ɵfac',
|
||||
initializer: factoryFn.expression,
|
||||
statements: factoryFn.statements,
|
||||
type: factoryFn.type,
|
||||
},
|
||||
{
|
||||
name: 'ɵmod',
|
||||
initializer: ngModuleDef.expression,
|
||||
statements: ngModuleStatements,
|
||||
statements: ngModuleDef.statements,
|
||||
type: ngModuleDef.type,
|
||||
},
|
||||
{
|
||||
name: 'ɵinj',
|
||||
initializer: ngInjectorDef.expression,
|
||||
statements: ngInjectorDef.statements,
|
||||
type: ngInjectorDef.type,
|
||||
initializer: injectorDef.expression,
|
||||
statements: injectorDef.statements,
|
||||
type: injectorDef.type,
|
||||
},
|
||||
];
|
||||
|
||||
if (this.localeId) {
|
||||
// QUESTION: can this stuff be removed?
|
||||
res.push({
|
||||
name: 'ɵloc',
|
||||
initializer: new LiteralExpr(this.localeId),
|
||||
|
||||
+18
-27
@@ -29,9 +29,8 @@ MyForwardDirective.ɵdir = i0.ɵɵngDeclareDirective({ version: "0.0.0-PLACEHOLD
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [HostBindingComp, MyForwardDirective] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [HostBindingComp, MyForwardDirective] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [HostBindingComp, MyForwardDirective] }]
|
||||
@@ -82,9 +81,8 @@ MyForwardPipe.ɵpipe = i0.ɵɵngDeclarePipe({ version: "0.0.0-PLACEHOLDER", ngIm
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [HostBindingComp, MyForwardPipe] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [HostBindingComp, MyForwardPipe] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [HostBindingComp, MyForwardPipe] }]
|
||||
@@ -120,9 +118,8 @@ SomeDirective.ɵdir = i0.ɵɵngDeclareDirective({ version: "0.0.0-PLACEHOLDER",
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeDirective] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeDirective] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeDirective] }]
|
||||
@@ -192,9 +189,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyMod {
|
||||
}
|
||||
MyMod.ɵfac = function MyMod_Factory(t) { return new (t || MyMod)(); };
|
||||
MyMod.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyMod });
|
||||
MyMod.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyMod, { declarations: [SomeComp, MyApp] }); })();
|
||||
MyMod.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyMod, declarations: [SomeComp, MyApp] });
|
||||
MyMod.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyMod });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyMod, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeComp, MyApp] }]
|
||||
@@ -248,9 +244,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyMod {
|
||||
}
|
||||
MyMod.ɵfac = function MyMod_Factory(t) { return new (t || MyMod)(); };
|
||||
MyMod.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyMod });
|
||||
MyMod.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyMod, { declarations: [MyApp, SomeComp] }); })();
|
||||
MyMod.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyMod, declarations: [MyApp, SomeComp] });
|
||||
MyMod.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyMod });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyMod, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyApp, SomeComp] }]
|
||||
@@ -300,9 +295,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyApp] }]
|
||||
@@ -346,9 +340,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyApp] }]
|
||||
@@ -395,9 +388,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyApp] }]
|
||||
@@ -480,9 +472,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
|
||||
+12
-18
@@ -37,9 +37,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SimpleComponent, ComplexComponent, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SimpleComponent, ComplexComponent, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SimpleComponent, ComplexComponent, MyApp] }]
|
||||
@@ -93,9 +92,8 @@ Cmp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: Cmp,
|
||||
class Module {
|
||||
}
|
||||
Module.ɵfac = function Module_Factory(t) { return new (t || Module)(); };
|
||||
Module.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: Module });
|
||||
Module.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(Module, { declarations: [Cmp] }); })();
|
||||
Module.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: Module, declarations: [Cmp] });
|
||||
Module.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: Module });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Module, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [Cmp] }]
|
||||
@@ -144,9 +142,8 @@ Cmp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: Cmp,
|
||||
class Module {
|
||||
}
|
||||
Module.ɵfac = function Module_Factory(t) { return new (t || Module)(); };
|
||||
Module.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: Module });
|
||||
Module.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(Module, { declarations: [Cmp] }); })();
|
||||
Module.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: Module, declarations: [Cmp] });
|
||||
Module.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: Module });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Module, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [Cmp] }]
|
||||
@@ -199,9 +196,8 @@ Cmp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: Cmp,
|
||||
class Module {
|
||||
}
|
||||
Module.ɵfac = function Module_Factory(t) { return new (t || Module)(); };
|
||||
Module.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: Module });
|
||||
Module.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(Module, { declarations: [Cmp] }); })();
|
||||
Module.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: Module, declarations: [Cmp] });
|
||||
Module.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: Module });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Module, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [Cmp] }]
|
||||
@@ -236,9 +232,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyApp, SimpleComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyApp, SimpleComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyApp, SimpleComponent] }]
|
||||
@@ -286,9 +281,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SimpleComponent, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SimpleComponent, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SimpleComponent, MyApp] }]
|
||||
|
||||
+8
-12
@@ -14,9 +14,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -82,9 +81,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [IfDirective, MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [IfDirective, MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [IfDirective, MyComponent] }]
|
||||
@@ -141,9 +139,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -228,9 +225,8 @@ SimpleLayout.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", t
|
||||
export class LifecycleModule {
|
||||
}
|
||||
LifecycleModule.ɵfac = function LifecycleModule_Factory(t) { return new (t || LifecycleModule)(); };
|
||||
LifecycleModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LifecycleModule });
|
||||
LifecycleModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LifecycleModule, { declarations: [LifecycleComp, SimpleLayout] }); })();
|
||||
LifecycleModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: LifecycleModule, declarations: [LifecycleComp, SimpleLayout] });
|
||||
LifecycleModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: LifecycleModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LifecycleModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [LifecycleComp, SimpleLayout] }]
|
||||
|
||||
+6
-9
@@ -47,9 +47,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyPipe, MyPurePipe, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyPipe, MyPurePipe, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyPipe, MyPurePipe, MyApp] }]
|
||||
@@ -117,9 +116,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyPipe, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyPipe, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyPipe, MyApp] }]
|
||||
@@ -192,9 +190,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyPipe, MyOtherPipe, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyPipe, MyOtherPipe, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyPipe, MyOtherPipe, MyApp] }]
|
||||
|
||||
+18
-27
@@ -53,9 +53,8 @@ ViewQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLD
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeDirective, ViewQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeDirective, ViewQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeDirective, ViewQueryComponent] }]
|
||||
@@ -111,9 +110,8 @@ ViewQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLD
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ViewQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ViewQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ViewQueryComponent] }]
|
||||
@@ -191,9 +189,8 @@ ViewQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLD
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeDirective, ViewQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeDirective, ViewQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeDirective, ViewQueryComponent] }]
|
||||
@@ -283,9 +280,8 @@ ViewQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLD
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ViewQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ViewQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ViewQueryComponent] }]
|
||||
@@ -384,9 +380,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeDirective, ContentQueryComponent, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeDirective, ContentQueryComponent, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeDirective, ContentQueryComponent, MyApp] }]
|
||||
@@ -446,9 +441,8 @@ ContentQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEH
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ContentQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ContentQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ContentQueryComponent] }]
|
||||
@@ -545,9 +539,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeDirective, ContentQueryComponent, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeDirective, ContentQueryComponent, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeDirective, ContentQueryComponent, MyApp] }]
|
||||
@@ -641,9 +634,8 @@ ContentQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEH
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ContentQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ContentQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ContentQueryComponent] }]
|
||||
@@ -731,9 +723,8 @@ ContentQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEH
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ContentQueryComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ContentQueryComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ContentQueryComponent] }]
|
||||
|
||||
+6
-9
@@ -64,9 +64,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent, ForOfDirective] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent, ForOfDirective] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent, ForOfDirective] }]
|
||||
@@ -156,9 +155,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent, ForOfDirective] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent, ForOfDirective] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent, ForOfDirective] }]
|
||||
@@ -271,9 +269,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent, ForOfDirective] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent, ForOfDirective] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent, ForOfDirective] }]
|
||||
|
||||
+20
-30
@@ -30,9 +30,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ChildComponent, SomeDirective, MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ChildComponent, SomeDirective, MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ChildComponent, SomeDirective, MyComponent] }]
|
||||
@@ -84,9 +83,8 @@ OtherDirective.ɵdir = i0.ɵɵngDeclareDirective({ version: "0.0.0-PLACEHOLDER",
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeDirective, OtherDirective] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeDirective, OtherDirective] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeDirective, OtherDirective] }]
|
||||
@@ -126,9 +124,8 @@ SomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER",
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [SomeComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [SomeComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [SomeComponent] }]
|
||||
@@ -172,9 +169,8 @@ EmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHO
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [EmptyOutletComponent, RouterOutlet] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [EmptyOutletComponent, RouterOutlet] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [EmptyOutletComponent, RouterOutlet] }]
|
||||
@@ -219,9 +215,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -274,9 +269,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [IfDirective, MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [IfDirective, MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [IfDirective, MyComponent] }]
|
||||
@@ -348,9 +342,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComp, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComp, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComp, MyApp] }]
|
||||
@@ -449,9 +442,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComp, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComp, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComp, MyApp] }]
|
||||
@@ -530,9 +522,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [ObjectComp, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [ObjectComp, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [ObjectComp, MyApp] }]
|
||||
@@ -610,9 +601,8 @@ MyApp.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", type: My
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [NestedComp, MyApp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [NestedComp, MyApp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [NestedComp, MyApp] }]
|
||||
|
||||
+24
-36
@@ -17,9 +17,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -74,9 +73,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent, MathCmp, InfinityCmp] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent, MathCmp, InfinityCmp] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent, MathCmp, InfinityCmp] }]
|
||||
@@ -123,9 +121,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -164,9 +161,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -205,9 +201,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -243,9 +238,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -284,9 +278,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -369,9 +362,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent, DivDir, PipePipe] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent, DivDir, PipePipe] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent, DivDir, PipePipe] }]
|
||||
@@ -456,9 +448,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -506,9 +497,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -555,9 +545,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
@@ -618,9 +607,8 @@ MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: "0.0.0-PLACEHOLDER", ty
|
||||
export class MyModule {
|
||||
}
|
||||
MyModule.ɵfac = function MyModule_Factory(t) { return new (t || MyModule)(); };
|
||||
MyModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MyModule });
|
||||
MyModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })();
|
||||
MyModule.ɵmod = i0.ɵɵngDeclareNgModule({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule, declarations: [MyComponent] });
|
||||
MyModule.ɵinj = i0.ɵɵngDeclareInjector({ version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyModule });
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MyModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [MyComponent] }]
|
||||
|
||||
+563
File diff suppressed because it is too large
Load Diff
+149
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"$schema": "../../test_case_schema.json",
|
||||
"cases": [
|
||||
{
|
||||
"description": "should define a basic NgModule",
|
||||
"inputFiles": [
|
||||
"basic.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"basic.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "should define an NgModule with declarations and bootstrap",
|
||||
"inputFiles": [
|
||||
"declarations.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"declarations.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "should define an NgModule with declarations and bootstrap (jit mode)",
|
||||
"inputFiles": [
|
||||
"declarations_jit_mode.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"declarations_jit_mode.js"
|
||||
]
|
||||
}
|
||||
],
|
||||
"compilationModeFilter": [
|
||||
"linked compile"
|
||||
],
|
||||
"angularCompilerOptions": {
|
||||
"linkerJitMode": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "should define an NgModule and injector with providers",
|
||||
"inputFiles": [
|
||||
"providers.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"providers.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "should define NgModules with imports and exports",
|
||||
"inputFiles": [
|
||||
"imports_exports.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"imports_exports.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "should define NgModules with imports and exports (jit mode)",
|
||||
"inputFiles": [
|
||||
"imports_exports_jit_mode.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"imports_exports_jit_mode.js"
|
||||
]
|
||||
}
|
||||
],
|
||||
"compilationModeFilter": [
|
||||
"linked compile"
|
||||
],
|
||||
"angularCompilerOptions": {
|
||||
"linkerJitMode": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "should not process NgModules that are marked `jit`",
|
||||
"inputFiles": [
|
||||
"no_aot.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"no_aot.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "should handle NgModules that extend other classes",
|
||||
"inputFiles": [
|
||||
"inheritance.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"inheritance.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "should handle NgModules with forward refs",
|
||||
"inputFiles": [
|
||||
"forward_refs.ts"
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"failureMessage": "Invalid NgModule/Injector definition",
|
||||
"files": [
|
||||
"forward_refs.js"
|
||||
]
|
||||
}
|
||||
],
|
||||
"compilationModeFilter": [
|
||||
"linked compile"
|
||||
],
|
||||
"angularCompilerOptions": {
|
||||
"linkerJitMode": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
BasicModule.ɵfac = function BasicModule_Factory(t) { return new (t || BasicModule)(); };
|
||||
BasicModule.ɵmod = /*@__PURE__*/ $i0$.ɵɵdefineNgModule({type: BasicModule, id: 'BasicModuleId'});
|
||||
BasicModule.ɵinj = /*@__PURE__*/ $i0$.ɵɵdefineInjector({});
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';
|
||||
|
||||
@NgModule({id: 'BasicModuleId', schemas: [NO_ERRORS_SCHEMA]})
|
||||
export class BasicModule {
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
FooComponent.ɵfac…
|
||||
FooComponent.ɵcmp…
|
||||
|
||||
BarDirective.ɵfac…
|
||||
BarDirective.ɵdir…
|
||||
|
||||
QuxPipe.ɵfac…
|
||||
QuxPipe.ɵpipe…
|
||||
|
||||
FooModule.ɵfac = function FooModule_Factory(t) { return new (t || FooModule)(); };
|
||||
FooModule.ɵmod = /*@__PURE__*/ $i0$.ɵɵdefineNgModule({type: FooModule, bootstrap: [FooComponent]});
|
||||
FooModule.ɵinj = /*@__PURE__*/ $i0$.ɵɵdefineInjector({});
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [FooComponent, BarDirective, QuxPipe], bootstrap: [FooComponent] }]
|
||||
}], null, null); })();
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {Component, Directive, NgModule, Pipe, PipeTransform} from '@angular/core';
|
||||
|
||||
@Component({selector: 'foo', template: '<div>Hello, {{name}}!</div>'})
|
||||
export class FooComponent {
|
||||
name = 'World';
|
||||
}
|
||||
|
||||
@Directive({selector: '[bar]'})
|
||||
export class BarDirective {
|
||||
}
|
||||
|
||||
@Pipe({name: 'qux'})
|
||||
export class QuxPipe implements PipeTransform {
|
||||
transform() {}
|
||||
}
|
||||
|
||||
@NgModule({declarations: [FooComponent, BarDirective, QuxPipe], bootstrap: [FooComponent]})
|
||||
export class FooModule {
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
FooComponent.ɵfac…
|
||||
FooComponent.ɵcmp…
|
||||
|
||||
BarDirective.ɵfac…
|
||||
BarDirective.ɵdir…
|
||||
|
||||
QuxPipe.ɵfac…
|
||||
QuxPipe.ɵpipe…
|
||||
|
||||
FooModule.ɵfac = function FooModule_Factory(t) { return new (t || FooModule)(); };
|
||||
FooModule.ɵmod = /*@__PURE__*/ $i0$.ɵɵdefineNgModule({type: FooModule, bootstrap: [FooComponent], declarations: [FooComponent, BarDirective, QuxPipe]});
|
||||
FooModule.ɵinj = /*@__PURE__*/ $i0$.ɵɵdefineInjector({});
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [FooComponent, BarDirective, QuxPipe], bootstrap: [FooComponent] }]
|
||||
}], null, null); })();
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import {Component, Directive, NgModule, Pipe, PipeTransform} from '@angular/core';
|
||||
|
||||
@Component({selector: 'foo', template: '<div>Hello, {{name}}!</div>'})
|
||||
export class FooComponent {
|
||||
name = 'World';
|
||||
}
|
||||
|
||||
@Directive({selector: '[bar]'})
|
||||
export class BarDirective {
|
||||
}
|
||||
|
||||
@Pipe({name: 'qux'})
|
||||
export class QuxPipe implements PipeTransform {
|
||||
transform() {}
|
||||
}
|
||||
|
||||
@NgModule({declarations: [FooComponent, BarDirective, QuxPipe], bootstrap: [FooComponent]})
|
||||
export class FooModule {
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
export function provideModule() {
|
||||
return { ngModule: ForwardModule };
|
||||
}
|
||||
…
|
||||
export class TestModule {}
|
||||
TestModule.ɵfac = function TestModule_Factory(t) { return new (t || TestModule)(); };
|
||||
TestModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TestModule, imports: function () { return [ForwardModule]; } });
|
||||
TestModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[provideModule()]] });
|
||||
…
|
||||
export class ForwardModule {}
|
||||
ForwardModule.ɵfac = function ForwardModule_Factory(t) { return new (t || ForwardModule)(); };
|
||||
ForwardModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ForwardModule });
|
||||
ForwardModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import {ModuleWithProviders, NgModule} from '@angular/core';
|
||||
|
||||
export function provideModule(): ModuleWithProviders<ForwardModule> {
|
||||
return {ngModule: ForwardModule};
|
||||
}
|
||||
|
||||
@NgModule({imports: [provideModule()]})
|
||||
export class TestModule {
|
||||
}
|
||||
|
||||
@NgModule()
|
||||
export class ForwardModule {
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
export class AModule {}
|
||||
AModule.ɵfac = function AModule_Factory(t) { return new (t || AModule)(); };
|
||||
AModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AModule });
|
||||
AModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [A1Component, A2Component], exports: [A1Component, A2Component] }]
|
||||
}], null, null); })();
|
||||
…
|
||||
|
||||
export class BModule {}
|
||||
BModule.ɵfac = function BModule_Factory(t) { return new (t || BModule)(); };
|
||||
BModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: BModule });
|
||||
BModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [AModule] });
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [B1Component, B2Component], exports: [AModule] }]
|
||||
}], null, null); })();
|
||||
…
|
||||
|
||||
export class AppModule {}
|
||||
AppModule.ɵfac = function AppModule_Factory(t) { return new (t || AppModule)(); };
|
||||
AppModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AppModule });
|
||||
AppModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[BModule]] });
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppModule, [{
|
||||
type: NgModule,
|
||||
args: [{ imports: [BModule] }]
|
||||
}], null, null); })();
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import {Component, NgModule} from '@angular/core';
|
||||
|
||||
@Component({selector: 'a1', template: 'A1'})
|
||||
export class A1Component {
|
||||
}
|
||||
|
||||
@Component({selector: 'a2', template: 'A2'})
|
||||
export class A2Component {
|
||||
}
|
||||
|
||||
@NgModule({declarations: [A1Component, A2Component], exports: [A1Component, A2Component]})
|
||||
export class AModule {
|
||||
}
|
||||
|
||||
@Component({selector: 'b1', template: 'B1'})
|
||||
export class B1Component {
|
||||
}
|
||||
|
||||
@Component({selector: 'b2', template: 'B2'})
|
||||
export class B2Component {
|
||||
}
|
||||
|
||||
@NgModule({declarations: [B1Component, B2Component], exports: [AModule]})
|
||||
export class BModule {
|
||||
}
|
||||
|
||||
@NgModule({imports: [BModule]})
|
||||
export class AppModule {
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
export class AModule {}
|
||||
AModule.ɵfac = function AModule_Factory(t) { return new (t || AModule)(); };
|
||||
AModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AModule, declarations: [A1Component, A2Component], exports: [A1Component, A2Component] });
|
||||
AModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [A1Component, A2Component], exports: [A1Component, A2Component] }]
|
||||
}], null, null); })();
|
||||
…
|
||||
|
||||
export class BModule {}
|
||||
BModule.ɵfac = function BModule_Factory(t) { return new (t || BModule)(); };
|
||||
BModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: BModule, declarations: [B1Component, B2Component], exports: [AModule] });
|
||||
BModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [AModule] });
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BModule, [{
|
||||
type: NgModule,
|
||||
args: [{ declarations: [B1Component, B2Component], exports: [AModule] }]
|
||||
}], null, null); })();
|
||||
…
|
||||
|
||||
export class AppModule {}
|
||||
AppModule.ɵfac = function AppModule_Factory(t) { return new (t || AppModule)(); };
|
||||
AppModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AppModule, imports: [BModule] });
|
||||
AppModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[BModule]] });
|
||||
…
|
||||
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppModule, [{
|
||||
type: NgModule,
|
||||
args: [{ imports: [BModule] }]
|
||||
}], null, null); })();
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import {Component, NgModule} from '@angular/core';
|
||||
|
||||
@Component({selector: 'a1', template: 'A1'})
|
||||
export class A1Component {
|
||||
}
|
||||
|
||||
@Component({selector: 'a2', template: 'A2'})
|
||||
export class A2Component {
|
||||
}
|
||||
|
||||
@NgModule({declarations: [A1Component, A2Component], exports: [A1Component, A2Component]})
|
||||
export class AModule {
|
||||
}
|
||||
|
||||
@Component({selector: 'b1', template: 'B1'})
|
||||
export class B1Component {
|
||||
}
|
||||
|
||||
@Component({selector: 'b2', template: 'B2'})
|
||||
export class B2Component {
|
||||
}
|
||||
|
||||
@NgModule({declarations: [B1Component, B2Component], exports: [AModule]})
|
||||
export class BModule {
|
||||
}
|
||||
|
||||
@NgModule({imports: [BModule]})
|
||||
export class AppModule {
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user