diff --git a/modules/@angular/compiler/src/offline_compiler.ts b/modules/@angular/compiler/src/offline_compiler.ts index e7cdaeb34f..e97490ed37 100644 --- a/modules/@angular/compiler/src/offline_compiler.ts +++ b/modules/@angular/compiler/src/offline_compiler.ts @@ -26,7 +26,26 @@ export class SourceModule { } export class NgModulesSummary { - constructor(public ngModuleByComponent: Map) {} + constructor( + public ngModuleByComponent: Map, + public ngModules: CompileNgModuleMetadata[]) {} +} + +export function analyzeModules( + ngModules: StaticSymbol[], metadataResolver: CompileMetadataResolver) { + const ngModuleByComponent = new Map(); + const modules: CompileNgModuleMetadata[] = []; + + ngModules.forEach((ngModule) => { + const ngModuleMeta = metadataResolver.getNgModuleMetadata(ngModule); + modules.push(ngModuleMeta); + ngModuleMeta.declaredDirectives.forEach((dirMeta: CompileDirectiveMetadata) => { + if (dirMeta.isComponent) { + ngModuleByComponent.set(dirMeta.type.reference, ngModuleMeta); + } + }); + }); + return new NgModulesSummary(ngModuleByComponent, modules); } export class OfflineCompiler { @@ -41,17 +60,7 @@ export class OfflineCompiler { private _localeId: string, private _translationFormat: string) {} analyzeModules(ngModules: StaticSymbol[]): NgModulesSummary { - const ngModuleByComponent = new Map(); - - ngModules.forEach((ngModule) => { - const ngModuleMeta = this._metadataResolver.getNgModuleMetadata(ngModule); - ngModuleMeta.declaredDirectives.forEach((dirMeta) => { - if (dirMeta.isComponent) { - ngModuleByComponent.set(dirMeta.type.reference, ngModuleMeta); - } - }); - }); - return new NgModulesSummary(ngModuleByComponent); + return analyzeModules(ngModules, this._metadataResolver); } clearCache() {