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' ;
3
2
import { BrowserBuilderSchema } from '@angular-devkit/build-angular/src/browser/schema' ;
4
3
import { getSystemPath , join , normalize } from '@angular-devkit/core' ;
5
4
import { Observable , of } from 'rxjs' ;
@@ -13,10 +12,20 @@ export class CordovaBuildBuilder implements Builder<CordovaBuildBuilderSchema> {
13
12
constructor ( public context : BuilderContext ) { }
14
13
15
14
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 ;
17
20
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 ) )
20
29
) ;
21
30
}
22
31
0 commit comments