Skip to content

Commit 58d57fd

Browse files
committed
chore: unify interfaces
1 parent 1860059 commit 58d57fd

10 files changed

+39
-41
lines changed

lib/commands/plugin/build-plugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class BuildPluginCommand implements ICommand {
3232
temp.track();
3333
const tempAndroidProject = temp.mkdirSync("android-project");
3434

35-
const options: IBuildOptions = {
35+
const options: IPluginBuildOptions = {
3636
aarOutputDir: platformsAndroidPath,
3737
platformsAndroidDirPath: platformsAndroidPath,
3838
pluginName: pluginName,

lib/definitions/android-plugin-migrator.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
interface IBuildOptions extends IAndroidBuildOptions{
2+
interface IPluginBuildOptions extends IAndroidBuildOptions{
33
projectDir?: string
44
}
55

@@ -11,8 +11,8 @@ interface IAndroidBuildOptions {
1111
}
1212

1313
interface IAndroidPluginBuildService {
14-
buildAar(options: IBuildOptions): Promise<boolean>;
15-
migrateIncludeGradle(options: IBuildOptions): boolean;
14+
buildAar(options: IPluginBuildOptions): Promise<boolean>;
15+
migrateIncludeGradle(options: IPluginBuildOptions): boolean;
1616
}
1717

1818
/**

lib/definitions/platform.d.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,10 +286,7 @@ interface IValidBuildOutputData {
286286
regexes?: RegExp[];
287287
}
288288

289-
interface IBuildOutputOptions extends IAndroidBundle {
290-
isReleaseBuild?: boolean;
291-
isForDevice?: boolean;
292-
}
289+
interface IBuildOutputOptions extends Partial<IBuildForDevice>, IRelease, IAndroidBundle {}
293290

294291
interface IPlatformsData {
295292
availablePlatforms: any;

lib/definitions/project.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ interface IPlatformProjectService extends NodeJS.EventEmitter, IPlatformProjectS
437437
/**
438438
* Build native part of a nativescript plugins if necessary
439439
*/
440-
prebuildNativePlugin(buildOptions: IBuildOptions): Promise<void>;
440+
prebuildNativePlugin(buildOptions: IPluginBuildOptions): Promise<void>;
441441

442442
/**
443443
* Traverse through the production dependencies and find plugins that need build/rebuild

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
169169
* @param {string} options.aarOutputDir - The path where the aar should be copied after a successful build.
170170
* @param {string} options.tempPluginDirPath - The path where the android plugin will be built.
171171
*/
172-
public async buildAar(options: IBuildOptions): Promise<boolean> {
172+
public async buildAar(options: IPluginBuildOptions): Promise<boolean> {
173173
this.validateOptions(options);
174174
const manifestFilePath = this.getManifest(options.platformsAndroidDirPath);
175175
const androidSourceDirectories = this.getAndroidSourceDirectories(options.platformsAndroidDirPath);
@@ -381,7 +381,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
381381
* @param {Object} options
382382
* @param {string} options.platformsAndroidDirPath - The path to the 'plugin/src/platforms/android' directory.
383383
*/
384-
public migrateIncludeGradle(options: IBuildOptions): boolean {
384+
public migrateIncludeGradle(options: IPluginBuildOptions): boolean {
385385
this.validatePlatformsAndroidDirPathOption(options);
386386

387387
const includeGradleFilePath = path.join(options.platformsAndroidDirPath, INCLUDE_GRADLE_NAME);
@@ -435,7 +435,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
435435
}
436436
}
437437

438-
private validateOptions(options: IBuildOptions): void {
438+
private validateOptions(options: IPluginBuildOptions): void {
439439
if (!options) {
440440
this.$errors.failWithoutHelp("Android plugin cannot be built without passing an 'options' object.");
441441
}
@@ -455,7 +455,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
455455
this.validatePlatformsAndroidDirPathOption(options);
456456
}
457457

458-
private validatePlatformsAndroidDirPathOption(options: IBuildOptions): void {
458+
private validatePlatformsAndroidDirPathOption(options: IPluginBuildOptions): void {
459459
if (!options) {
460460
this.$errors.failWithoutHelp("Android plugin cannot be built without passing an 'options' object.");
461461
}

lib/services/android-project-service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
7676
deviceBuildOutputPath: path.join(...deviceBuildOutputArr),
7777
bundleBuildOutputPath: path.join(projectRoot, constants.APP_FOLDER_NAME, constants.BUILD_DIR, constants.OUTPUTS_DIR, constants.BUNDLE_DIR),
7878
getValidBuildOutputData: (buildOptions: IBuildOutputOptions): IValidBuildOutputData => {
79-
const buildMode = buildOptions.isReleaseBuild ? Configurations.Release.toLowerCase() : Configurations.Debug.toLowerCase();
79+
const buildMode = buildOptions.release ? Configurations.Release.toLowerCase() : Configurations.Debug.toLowerCase();
8080

8181
if(buildOptions.androidBundle) {
8282
return {
@@ -445,7 +445,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
445445
// build Android plugins which contain AndroidManifest.xml and/or resources
446446
const pluginPlatformsFolderPath = this.getPluginPlatformsFolderPath(pluginData, AndroidProjectService.ANDROID_PLATFORM_NAME);
447447
if (this.$fs.exists(pluginPlatformsFolderPath)) {
448-
const options: IBuildOptions = {
448+
const options: IPluginBuildOptions = {
449449
projectDir: projectData.projectDir,
450450
pluginName: pluginData.name,
451451
platformsAndroidDirPath: pluginPlatformsFolderPath,
@@ -514,7 +514,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
514514
return item.endsWith(constants.MANIFEST_FILE_NAME) || item.endsWith(constants.RESOURCES_DIR);
515515
}
516516

517-
public async prebuildNativePlugin(options: IBuildOptions): Promise<void> {
517+
public async prebuildNativePlugin(options: IPluginBuildOptions): Promise<void> {
518518
if (await this.$androidPluginBuildService.buildAar(options)) {
519519
this.$logger.info(`Built aar for ${options.pluginName}`);
520520
}

lib/services/ios-project-service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
7070
deviceBuildOutputPath: path.join(projectRoot, constants.BUILD_DIR, "device"),
7171
emulatorBuildOutputPath: path.join(projectRoot, constants.BUILD_DIR, "emulator"),
7272
getValidBuildOutputData: (buildOptions: IBuildOutputOptions): IValidBuildOutputData => {
73-
if (buildOptions.isForDevice) {
73+
const forDevice = !buildOptions || !!buildOptions.buildForDevice;
74+
if (forDevice) {
7475
return {
7576
packageNames: [`${projectData.projectName}.ipa`]
7677
};
@@ -1024,7 +1025,7 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f
10241025
}
10251026
}
10261027

1027-
public async prebuildNativePlugin(options: IBuildOptions): Promise<void> { /** */ }
1028+
public async prebuildNativePlugin(options: IPluginBuildOptions): Promise<void> { /** */ }
10281029

10291030
public async checkIfPluginsNeedBuild(projectData: IProjectData): Promise<Array<any>> {
10301031
return [];

lib/services/platform-service.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ export class PlatformService extends EventEmitter implements IPlatformService {
373373
return true;
374374
}
375375

376-
const validBuildOutputData = platformData.getValidBuildOutputData({ isForDevice: forDevice, isReleaseBuild: buildConfig.release });
376+
const validBuildOutputData = platformData.getValidBuildOutputData(buildConfig);
377377
const packages = this.getApplicationPackages(outputPath, validBuildOutputData);
378378
if (packages.length === 0) {
379379
return true;
@@ -449,7 +449,7 @@ export class PlatformService extends EventEmitter implements IPlatformService {
449449

450450
await attachAwaitDetach(constants.BUILD_OUTPUT_EVENT_NAME, platformData.platformProjectService, handler, platformData.platformProjectService.buildProject(platformData.projectRoot, projectData, buildConfig));
451451

452-
const buildInfoFilePath = this.getBuildOutputPath(platform, platformData, { isForDevice: buildConfig.buildForDevice, isReleaseBuild: buildConfig.release, androidBundle: buildConfig.androidBundle });
452+
const buildInfoFilePath = this.getBuildOutputPath(platform, platformData, buildConfig);
453453
this.saveBuildInfoFile(platform, projectData.projectDir, buildInfoFilePath);
454454

455455
this.$logger.out("Project successfully built.");
@@ -476,7 +476,7 @@ export class PlatformService extends EventEmitter implements IPlatformService {
476476

477477
const platformData = this.$platformsData.getPlatformData(platform, projectData);
478478
const deviceBuildInfo: IBuildInfo = await this.getDeviceBuildInfo(device, projectData);
479-
const localBuildInfo = this.getBuildInfo(platform, platformData, { isForDevice: !device.isEmulator, isReleaseBuild: release.release }, outputPath);
479+
const localBuildInfo = this.getBuildInfo(platform, platformData, { buildForDevice: !device.isEmulator, release: release.release }, outputPath);
480480
return !localBuildInfo || !deviceBuildInfo || deviceBuildInfo.buildTime !== localBuildInfo.buildTime;
481481
}
482482

@@ -514,7 +514,7 @@ export class PlatformService extends EventEmitter implements IPlatformService {
514514
const deviceFilePath = await this.getDeviceBuildInfoFilePath(device, projectData);
515515
const options = buildConfig;
516516
options.buildForDevice = !device.isEmulator;
517-
const buildInfoFilePath = outputFilePath || this.getBuildOutputPath(device.deviceInfo.platform, platformData, { isForDevice: buildConfig.buildForDevice, isReleaseBuild: buildConfig.release, androidBundle: buildConfig.androidBundle });
517+
const buildInfoFilePath = outputFilePath || this.getBuildOutputPath(device.deviceInfo.platform, platformData, buildConfig);
518518
const appIdentifier = projectData.projectIdentifiers[platform];
519519

520520
await device.fileSystem.putFile(path.join(buildInfoFilePath, buildInfoFileName), deviceFilePath, appIdentifier);
@@ -617,7 +617,7 @@ export class PlatformService extends EventEmitter implements IPlatformService {
617617
}
618618

619619
if (platform.toLowerCase() === this.$devicePlatformsConstants.iOS.toLowerCase()) {
620-
return options.isForDevice ? platformData.deviceBuildOutputPath : platformData.emulatorBuildOutputPath;
620+
return options.buildForDevice ? platformData.deviceBuildOutputPath : platformData.emulatorBuildOutputPath;
621621
}
622622

623623
return platformData.deviceBuildOutputPath;
@@ -903,11 +903,11 @@ export class PlatformService extends EventEmitter implements IPlatformService {
903903
}
904904

905905
public getLatestApplicationPackageForDevice(platformData: IPlatformData, buildConfig: IBuildConfig, outputPath?: string): IApplicationPackage {
906-
return this.getLatestApplicationPackage(outputPath || platformData.deviceBuildOutputPath, platformData.getValidBuildOutputData({ isForDevice: true, isReleaseBuild: buildConfig.release, androidBundle: buildConfig.androidBundle }));
906+
return this.getLatestApplicationPackage(outputPath || platformData.deviceBuildOutputPath, platformData.getValidBuildOutputData({ buildForDevice: true, release: buildConfig.release, androidBundle: buildConfig.androidBundle }));
907907
}
908908

909909
public getLatestApplicationPackageForEmulator(platformData: IPlatformData, buildConfig: IBuildConfig, outputPath?: string): IApplicationPackage {
910-
const buildOutputOptions: IBuildOutputOptions = { isForDevice: false, isReleaseBuild: buildConfig.release, androidBundle: buildConfig.androidBundle };
910+
const buildOutputOptions: IBuildOutputOptions = { buildForDevice: false, release: buildConfig.release, androidBundle: buildConfig.androidBundle };
911911
outputPath = outputPath || this.getBuildOutputPath(platformData.normalizedPlatformName.toLowerCase(), platformData, buildOutputOptions);
912912
return this.getLatestApplicationPackage(outputPath || platformData.emulatorBuildOutputPath || platformData.deviceBuildOutputPath, platformData.getValidBuildOutputData(buildOutputOptions));
913913
}

test/services/android-plugin-build-service.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ describe('androidPluginBuildService', () => {
3232
projectRuntimeGradleAndroidVersion?: string,
3333
addPreviousBuildInfo?: boolean,
3434
hasChangesInShasums?: boolean,
35-
}): IBuildOptions {
35+
}): IPluginBuildOptions {
3636
options = options || {};
3737
spawnFromEventCalled = false;
3838
tempFolder = temp.mkdirSync("androidPluginBuildService-temp");
@@ -182,7 +182,7 @@ dependencies {
182182
describe('buildAar', () => {
183183

184184
it('builds aar when all supported files are in the plugin', async () => {
185-
const config: IBuildOptions = setup({
185+
const config: IPluginBuildOptions = setup({
186186
addManifest: true,
187187
addResFolder: true,
188188
addAssetsFolder: true
@@ -194,15 +194,15 @@ dependencies {
194194
});
195195

196196
it('does not build aar when there are no supported files in the plugin', async () => {
197-
const config: IBuildOptions = setup();
197+
const config: IPluginBuildOptions = setup();
198198

199199
await androidBuildPluginService.buildAar(config);
200200

201201
assert.isFalse(spawnFromEventCalled);
202202
});
203203

204204
it('builds aar when there are res and assets folders', async () => {
205-
const config: IBuildOptions = setup({
205+
const config: IPluginBuildOptions = setup({
206206
addResFolder: true,
207207
addAssetsFolder: true
208208
});
@@ -213,7 +213,7 @@ dependencies {
213213
});
214214

215215
it('builds aar when there is an android manifest', async () => {
216-
const config: IBuildOptions = setup({
216+
const config: IPluginBuildOptions = setup({
217217
addManifest: true
218218
});
219219

@@ -223,7 +223,7 @@ dependencies {
223223
});
224224

225225
it('builds aar when plugin is already build and source files have changed since last buid', async () => {
226-
const config: IBuildOptions = setup({
226+
const config: IPluginBuildOptions = setup({
227227
addManifest: true,
228228
addPreviousBuildInfo: true,
229229
hasChangesInShasums: true
@@ -235,7 +235,7 @@ dependencies {
235235
});
236236

237237
it('does not build aar when plugin is already build and source files have not changed', async () => {
238-
const config: IBuildOptions = setup({
238+
const config: IPluginBuildOptions = setup({
239239
addManifest: true,
240240
addPreviousBuildInfo: true
241241
});
@@ -248,7 +248,7 @@ dependencies {
248248
it('builds aar with the latest runtime gradle versions when no project dir is specified', async () => {
249249
const expectedGradleVersion = "1.2.3";
250250
const expectedAndroidVersion = "4.5.6";
251-
const config: IBuildOptions = setup({
251+
const config: IPluginBuildOptions = setup({
252252
addManifest: true,
253253
latestRuntimeGradleVersion: expectedGradleVersion,
254254
latestRuntimeGradleAndroidVersion: expectedAndroidVersion
@@ -266,7 +266,7 @@ dependencies {
266266
it('builds aar with the latest runtime gradle versions when a project dir without runtime versions is specified', async () => {
267267
const expectedGradleVersion = "4.4.4";
268268
const expectedAndroidVersion = "5.5.5";
269-
const config: IBuildOptions = setup({
269+
const config: IPluginBuildOptions = setup({
270270
addManifest: true,
271271
addProjectDir: true,
272272
latestRuntimeGradleVersion: expectedGradleVersion,
@@ -288,7 +288,7 @@ dependencies {
288288
it('builds aar with the specified runtime gradle versions when the project runtime has gradle versions', async () => {
289289
const expectedGradleVersion = "2.2.2";
290290
const expectedAndroidVersion = "3.3";
291-
const config: IBuildOptions = setup({
291+
const config: IPluginBuildOptions = setup({
292292
addManifest: true,
293293
addProjectDir: true,
294294
latestRuntimeGradleVersion: "4.4.4",
@@ -308,7 +308,7 @@ dependencies {
308308
});
309309

310310
it('builds aar with the hardcoded gradle versions when the project runtime and the latest runtime do not have versions specified', async () => {
311-
const config: IBuildOptions = setup({
311+
const config: IPluginBuildOptions = setup({
312312
addManifest: true,
313313
addProjectDir: true,
314314
latestRuntimeGradleVersion: null,
@@ -330,7 +330,7 @@ dependencies {
330330

331331
describe('migrateIncludeGradle', () => {
332332
it('if there is a legacy include.gradle file', async () => {
333-
const config: IBuildOptions = setup({
333+
const config: IPluginBuildOptions = setup({
334334
addLegacyIncludeGradle: true
335335
});
336336

@@ -343,7 +343,7 @@ dependencies {
343343
});
344344

345345
it('if there is an already migrated include.gradle file', async () => {
346-
const config: IBuildOptions = setup({
346+
const config: IPluginBuildOptions = setup({
347347
addIncludeGradle: true
348348
});
349349

test/stubs.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,10 @@ export class ProjectDataStub implements IProjectData {
305305
}
306306

307307
export class AndroidPluginBuildServiceStub implements IAndroidPluginBuildService {
308-
buildAar(options: IBuildOptions): Promise<boolean> {
308+
buildAar(options: IPluginBuildOptions): Promise<boolean> {
309309
return Promise.resolve(true);
310310
}
311-
migrateIncludeGradle(options: IBuildOptions): boolean {
311+
migrateIncludeGradle(options: IPluginBuildOptions): boolean {
312312
return true;
313313
}
314314
}
@@ -328,7 +328,7 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
328328
fastLivesyncFileExtensions: []
329329
};
330330
}
331-
prebuildNativePlugin(options: IBuildOptions): Promise<void> {
331+
prebuildNativePlugin(options: IPluginBuildOptions): Promise<void> {
332332
return Promise.resolve();
333333
}
334334

0 commit comments

Comments
 (0)