Skip to content

Commit 8ebfe6c

Browse files
committed
refactor: remove IAndroidBuildConfig and use IAndroidBuildData instead
1 parent 6a28d8f commit 8ebfe6c

File tree

9 files changed

+39
-44
lines changed

9 files changed

+39
-44
lines changed

lib/controllers/build-controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class BuildController extends EventEmitter implements IBuildController {
4747
});
4848

4949
if (buildData.clean) {
50-
await platformData.platformProjectService.cleanProject(platformData.projectRoot, projectData);
50+
await platformData.platformProjectService.cleanProject(platformData.projectRoot);
5151
}
5252

5353
const handler = (data: any) => {

lib/definitions/gradle.d.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,12 @@ interface IGradleCommandOptions {
99
spawnOptions?: ISpawnFromEventOptions;
1010
}
1111

12-
interface IAndroidBuildConfig extends IRelease, IAndroidReleaseOptions, IHasAndroidBundle {
13-
buildOutputStdio?: string;
14-
}
15-
1612
interface IGradleBuildService {
17-
buildProject(projectRoot: string, buildConfig: IAndroidBuildConfig): Promise<void>;
18-
cleanProject(projectRoot: string, buildConfig: IAndroidBuildConfig): Promise<void>;
13+
buildProject(projectRoot: string, buildData: IAndroidBuildData): Promise<void>;
14+
cleanProject(projectRoot: string, buildData: IAndroidBuildData): Promise<void>;
1915
}
2016

2117
interface IGradleBuildArgsService {
22-
getBuildTaskArgs(buildConfig: IAndroidBuildConfig): string[];
23-
getCleanTaskArgs(buildConfig: IAndroidBuildConfig): string[];
18+
getBuildTaskArgs(buildData: IAndroidBuildData): string[];
19+
getCleanTaskArgs(buildData: IAndroidBuildData): string[];
2420
}

lib/services/android-project-service.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,16 +233,16 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
233233
}
234234

235235
@performanceLog()
236-
public async buildProject(projectRoot: string, projectData: IProjectData, buildConfig: IBuildConfig): Promise<void> {
236+
public async buildProject(projectRoot: string, projectData: IProjectData, buildData: IAndroidBuildData): Promise<void> {
237237
const platformData = this.getPlatformData(projectData);
238-
await this.$gradleBuildService.buildProject(platformData.projectRoot, buildConfig);
238+
await this.$gradleBuildService.buildProject(platformData.projectRoot, buildData);
239239

240-
const outputPath = platformData.getBuildOutputPath(buildConfig);
240+
const outputPath = platformData.getBuildOutputPath(buildData);
241241
await this.$filesHashService.saveHashesForProject(this._platformData, outputPath);
242242
}
243243

244-
public async buildForDeploy(projectRoot: string, projectData: IProjectData, buildConfig?: IBuildConfig): Promise<void> {
245-
return this.buildProject(projectRoot, projectData, buildConfig);
244+
public async buildForDeploy(projectRoot: string, projectData: IProjectData, buildData?: IAndroidBuildData): Promise<void> {
245+
return this.buildProject(projectRoot, projectData, buildData);
246246
}
247247

248248
public isPlatformPrepared(projectRoot: string, projectData: IProjectData): boolean {
@@ -376,8 +376,8 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
376376
return result;
377377
}
378378

379-
public async cleanProject(projectRoot: string, projectData: IProjectData): Promise<void> {
380-
await this.$gradleBuildService.cleanProject(projectRoot, { release: false });
379+
public async cleanProject(projectRoot: string): Promise<void> {
380+
await this.$gradleBuildService.cleanProject(projectRoot, <any>{ release: false });
381381
}
382382

383383
public async cleanDeviceTempFolder(deviceIdentifier: string, projectData: IProjectData): Promise<void> {

lib/services/android/gradle-build-args-service.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ export class GradleBuildArgsService implements IGradleBuildArgsService {
55
constructor(private $androidToolsInfo: IAndroidToolsInfo,
66
private $logger: ILogger) { }
77

8-
public getBuildTaskArgs(buildConfig: IAndroidBuildConfig): string[] {
9-
const args = this.getBaseTaskArgs(buildConfig);
10-
args.unshift(this.getBuildTaskName(buildConfig));
8+
public getBuildTaskArgs(buildData: IAndroidBuildData): string[] {
9+
const args = this.getBaseTaskArgs(buildData);
10+
args.unshift(this.getBuildTaskName(buildData));
1111

1212
return args;
1313
}
1414

15-
public getCleanTaskArgs(buildConfig: IAndroidBuildConfig): string[] {
16-
const args = this.getBaseTaskArgs(buildConfig);
15+
public getCleanTaskArgs(buildData: IAndroidBuildData): string[] {
16+
const args = this.getBaseTaskArgs(buildData);
1717
args.unshift("clean");
1818

1919
return args;
2020
}
2121

22-
private getBaseTaskArgs(buildConfig: IAndroidBuildConfig): string[] {
22+
private getBaseTaskArgs(buildData: IAndroidBuildData): string[] {
2323
const args = this.getBuildLoggingArgs();
2424

2525
const toolsInfo = this.$androidToolsInfo.getToolsInfo();
@@ -30,13 +30,13 @@ export class GradleBuildArgsService implements IGradleBuildArgsService {
3030
`-PgenerateTypings=${toolsInfo.generateTypings}`
3131
);
3232

33-
if (buildConfig.release) {
33+
if (buildData.release) {
3434
args.push(
3535
"-Prelease",
36-
`-PksPath=${path.resolve(buildConfig.keyStorePath)}`,
37-
`-Palias=${buildConfig.keyStoreAlias}`,
38-
`-Ppassword=${buildConfig.keyStoreAliasPassword}`,
39-
`-PksPassword=${buildConfig.keyStorePassword}`
36+
`-PksPath=${path.resolve(buildData.keyStorePath)}`,
37+
`-Palias=${buildData.keyStoreAlias}`,
38+
`-Ppassword=${buildData.keyStoreAliasPassword}`,
39+
`-PksPassword=${buildData.keyStorePassword}`
4040
);
4141
}
4242

@@ -56,9 +56,9 @@ export class GradleBuildArgsService implements IGradleBuildArgsService {
5656
return args;
5757
}
5858

59-
private getBuildTaskName(buildConfig: IAndroidBuildConfig): string {
60-
const baseTaskName = buildConfig.androidBundle ? "bundle" : "assemble";
61-
const buildTaskName = buildConfig.release ? `${baseTaskName}${Configurations.Release}` : `${baseTaskName}${Configurations.Debug}`;
59+
private getBuildTaskName(buildData: IAndroidBuildData): string {
60+
const baseTaskName = buildData.androidBundle ? "bundle" : "assemble";
61+
const buildTaskName = buildData.release ? `${baseTaskName}${Configurations.Release}` : `${baseTaskName}${Configurations.Debug}`;
6262

6363
return buildTaskName;
6464
}

lib/services/android/gradle-build-service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ export class GradleBuildService extends EventEmitter implements IGradleBuildServ
99
private $gradleCommandService: IGradleCommandService,
1010
) { super(); }
1111

12-
public async buildProject(projectRoot: string, buildConfig: IAndroidBuildConfig): Promise<void> {
13-
const buildTaskArgs = this.$gradleBuildArgsService.getBuildTaskArgs(buildConfig);
12+
public async buildProject(projectRoot: string, buildData: IAndroidBuildData): Promise<void> {
13+
const buildTaskArgs = this.$gradleBuildArgsService.getBuildTaskArgs(buildData);
1414
const spawnOptions = { emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true };
15-
const gradleCommandOptions = { cwd: projectRoot, message: "Gradle build...", stdio: buildConfig.buildOutputStdio, spawnOptions };
15+
const gradleCommandOptions = { cwd: projectRoot, message: "Gradle build...", stdio: buildData.buildOutputStdio, spawnOptions };
1616

1717
await attachAwaitDetach(constants.BUILD_OUTPUT_EVENT_NAME,
1818
this.$childProcess,
@@ -21,8 +21,8 @@ export class GradleBuildService extends EventEmitter implements IGradleBuildServ
2121
);
2222
}
2323

24-
public async cleanProject(projectRoot: string, buildConfig: IAndroidBuildConfig): Promise<void> {
25-
const cleanTaskArgs = this.$gradleBuildArgsService.getCleanTaskArgs(buildConfig);
24+
public async cleanProject(projectRoot: string, buildData: IAndroidBuildData): Promise<void> {
25+
const cleanTaskArgs = this.$gradleBuildArgsService.getCleanTaskArgs(buildData);
2626
const gradleCommandOptions = { cwd: projectRoot, message: "Gradle clean..." };
2727
await this.$gradleCommandService.executeCommand(cleanTaskArgs, gradleCommandOptions);
2828
}

lib/services/platform/prepare-native-platform-service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class PrepareNativePlatformService implements IPrepareNativePlatformServi
2828
const hasChanges = hasModulesChange || hasConfigChange || hasChangesRequirePrepare;
2929

3030
if (changesInfo.hasChanges) {
31-
await this.cleanProject(platformData, projectData, { release });
31+
await this.cleanProject(platformData, { release });
3232
}
3333

3434
platformData.platformProjectService.prepareAppResources(projectData);
@@ -52,7 +52,7 @@ export class PrepareNativePlatformService implements IPrepareNativePlatformServi
5252
return hasChanges;
5353
}
5454

55-
private async cleanProject(platformData: IPlatformData, projectData: IProjectData, options: { release: boolean }): Promise<void> {
55+
private async cleanProject(platformData: IPlatformData, options: { release: boolean }): Promise<void> {
5656
// android build artifacts need to be cleaned up
5757
// when switching between debug, release and webpack builds
5858
if (platformData.platformNameLowerCase !== "android") {
@@ -67,7 +67,7 @@ export class PrepareNativePlatformService implements IPrepareNativePlatformServi
6767
const { release: previousWasRelease } = previousPrepareInfo;
6868
const { release: currentIsRelease } = options;
6969
if (previousWasRelease !== currentIsRelease) {
70-
await platformData.platformProjectService.cleanProject(platformData.projectRoot, projectData);
70+
await platformData.platformProjectService.cleanProject(platformData.projectRoot);
7171
}
7272
}
7373
}

lib/services/webpack/webpack.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,9 @@ declare global {
129129
/**
130130
* Removes build artifacts specific to the platform
131131
* @param {string} projectRoot The root directory of the native project.
132-
* @param {IProjectData} projectData DTO with information about the project.
133132
* @returns {void}
134133
*/
135-
cleanProject?(projectRoot: string, projectData: IProjectData): Promise<void>
134+
cleanProject?(projectRoot: string): Promise<void>
136135

137136
/**
138137
* Check the current state of the project, and validate against the options.

test/services/android/gradle-build-args-service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function createTestInjector(): IInjector {
1818
return injector;
1919
}
2020

21-
function executeTests(testCases: any[], testFunction: (gradleBuildArgsService: IGradleBuildArgsService, buildConfig: IAndroidBuildConfig) => string[]) {
21+
function executeTests(testCases: any[], testFunction: (gradleBuildArgsService: IGradleBuildArgsService, buildData: IAndroidBuildData) => string[]) {
2222
_.each(testCases, testCase => {
2323
it(testCase.name, () => {
2424
const injector = createTestInjector();
@@ -102,7 +102,7 @@ describe("GradleBuildArgsService", () => {
102102
}
103103
];
104104

105-
executeTests(testCases, (gradleBuildArgsService: IGradleBuildArgsService, buildConfig: IAndroidBuildConfig) => gradleBuildArgsService.getBuildTaskArgs(buildConfig));
105+
executeTests(testCases, (gradleBuildArgsService: IGradleBuildArgsService, buildData: IAndroidBuildData) => gradleBuildArgsService.getBuildTaskArgs(buildData));
106106
});
107107

108108
describe("getCleanTaskArgs", () => {
@@ -157,6 +157,6 @@ describe("GradleBuildArgsService", () => {
157157
}
158158
];
159159

160-
executeTests(testCases, (gradleBuildArgsService: IGradleBuildArgsService, buildConfig: IAndroidBuildConfig) => gradleBuildArgsService.getCleanTaskArgs(buildConfig));
160+
executeTests(testCases, (gradleBuildArgsService: IGradleBuildArgsService, buildData: IAndroidBuildData) => gradleBuildArgsService.getCleanTaskArgs(buildData));
161161
});
162162
});

test/stubs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
453453
async stopServices(): Promise<ISpawnResult> {
454454
return Promise.resolve({ stderr: "", stdout: "", exitCode: 0 });
455455
}
456-
async cleanProject(projectRoot: string, projectData: IProjectData): Promise<void> {
456+
async cleanProject(projectRoot: string): Promise<void> {
457457
return Promise.resolve();
458458
}
459459
async checkForChanges(changesInfo: IProjectChangesInfo, options: any, projectData: IProjectData): Promise<void> {

0 commit comments

Comments
 (0)