Skip to content

Commit 3a9adfa

Browse files
imhoffdadamclerk
andcommitted
fix(build): respect browserTarget setting
This enables the ability to use a custom builder in the cordova-build builder. Fixes #32 Co-authored-by: Adam Clark <adamclerk@gmail.com>
1 parent df7aae0 commit 3a9adfa

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

builders/cordova-build/index.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
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';
32
import { BrowserBuilderSchema } from '@angular-devkit/build-angular/src/browser/schema';
43
import { getSystemPath, join, normalize } from '@angular-devkit/core';
54
import { 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

Comments
 (0)