1- import { BuildEvent , Builder , BuilderConfiguration , BuilderContext } from '@angular-devkit/architect' ;
2- import { BrowserBuilder } from '@angular-devkit/build-angular/src/browser' ;
1+ import { BuildEvent , Builder , BuilderConfiguration , BuilderContext , BuilderDescription } from '@angular-devkit/architect' ;
32import { BrowserBuilderSchema } from '@angular-devkit/build-angular/src/browser/schema' ;
43import { getSystemPath , join , normalize } from '@angular-devkit/core' ;
54import { Observable , of } from 'rxjs' ;
@@ -13,10 +12,20 @@ export class CordovaBuildBuilder implements Builder<CordovaBuildBuilderSchema> {
1312 constructor ( public context : BuilderContext ) { }
1413
1514 run ( builderConfig : BuilderConfiguration < CordovaBuildBuilderSchema > ) : Observable < BuildEvent > {
16- const browserBuilder = new BrowserBuilder ( this . context ) ; // TODO: shouldn't this use `architect.getBuilder()`?
15+ const [ project , target , configuration ] = builderConfig . options . browserTarget . split ( ':' ) ;
16+ const browserTargetSpec = { project, target, configuration, overrides : { } } ;
17+
18+ let browserConfig = this . context . architect . getBuilderConfiguration < BrowserBuilderSchema > ( browserTargetSpec ) ;
19+ let browserDescription : BuilderDescription ;
1720
18- return this . buildBrowserConfig ( builderConfig . options ) . pipe (
19- concatMap ( browserConfig => browserBuilder . run ( browserConfig ) )
21+ return of ( null ) . pipe ( // tslint:disable-line:no-null-keyword
22+ concatMap ( ( ) => this . context . architect . getBuilderDescription ( browserConfig ) ) ,
23+ tap ( description => browserDescription = description ) ,
24+ concatMap ( ( ) => this . context . architect . validateBuilderOptions ( browserConfig , browserDescription ) ) ,
25+ tap ( config => browserConfig = config ) ,
26+ tap ( ( ) => this . prepareBrowserConfig ( builderConfig . options , browserConfig . options ) ) ,
27+ concatMap ( ( ) => of ( this . context . architect . getBuilder ( browserDescription , this . context ) ) ) ,
28+ concatMap ( builder => builder . run ( browserConfig ) )
2029 ) ;
2130 }
2231
0 commit comments