@@ -12,7 +12,7 @@ import {CompilerException} from '../../exception';
1212import { Project } from '../../application' ;
1313import { Publisher } from '../../publisher' ;
1414import { makeAbsolute } from '../../filesystem' ;
15- import { discoverApplicationModule } from '../ast ' ;
15+ import { discoverApplicationModule } from '../static ' ;
1616
1717export type CompiledSource = { filename : string , source : string } ;
1818
@@ -53,15 +53,17 @@ export class CompilerPipeline {
5353 rootModule ( program : Program , compilerHost : CompilerHost , options : CompilerOptions ) : [ string , string ] {
5454 const containingFile = join ( this . project . basePath , 'index.ts' ) ;
5555
56- const applicationModule =
57- this . project . applicationModule
58- ? this . project . applicationModule
59- : discoverApplicationModule ( program ) ;
56+ const invalid = ( ) =>
57+ applicationModule == null ||
58+ applicationModule . source == null ||
59+ applicationModule . symbol == null ;
6060
61- if ( applicationModule == null ||
62- applicationModule . source == null ||
63- applicationModule . symbol == null ) {
64- throw new CompilerException ( `Cannot find application root @NgModule, please provide in Project structure` ) ;
61+ var applicationModule = this . project . applicationModule ;
62+ if ( invalid ( ) ) {
63+ applicationModule = discoverApplicationModule ( program ) ;
64+ }
65+ if ( invalid ( ) ) {
66+ throw new CompilerException ( `Cannot locate root @NgModule with static analysis (please name them explicitly)` ) ;
6567 }
6668
6769 const rootModule = sourceToNgFactory ( applicationModule . source ) ;
@@ -91,16 +93,12 @@ export class CompilerPipeline {
9193
9294const executable = ( filename : string ) => extname ( filename ) === '.js' ;
9395
94- const sourceToNgFactory = ( source : string ) : string => {
95- if ( / \. n g f a c t o r y ( \. ( t s | j s ) ) ? $ / . test ( source ) === false ) {
96- return `${ source . replace ( / \. ( j s | t s ) $ / , String ( ) ) } .ngfactory` ;
97- }
98- return source ;
99- } ;
96+ const sourceToNgFactory = ( source : string ) : string =>
97+ / \. n g f a c t o r y ( \. ( t s | j s ) ) ? $ / . test ( source ) === false
98+ ? `${ source . replace ( / \. ( j s | t s ) $ / , String ( ) ) } .ngfactory`
99+ : source ;
100100
101- const symbolToNgFactory = ( symbol : string ) : string => {
102- if ( / N g F a c t o r y $ / . test ( symbol ) === false ) {
103- return `${ symbol } NgFactory` ;
104- }
105- return symbol ;
106- } ;
101+ const symbolToNgFactory = ( symbol : string ) : string =>
102+ / N g F a c t o r y $ / . test ( symbol ) === false
103+ ? `${ symbol } NgFactory`
104+ : symbol ;
0 commit comments