Skip to content

Commit 233091b

Browse files
authored
feat: clean up legacy nsconfig if created for bw compat (#5380)
1 parent 8491b07 commit 233091b

File tree

7 files changed

+15
-6
lines changed

7 files changed

+15
-6
lines changed

lib/controllers/prepare-controller.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export class PrepareController extends EventEmitter {
133133
this.$logger.info("Preparing project...");
134134

135135
if (this.$mobileHelper.isAndroidPlatform(prepareData.platform)) {
136-
this.$projectConfigService.writeLegacyNSConfigIfNeeded(
136+
await this.$projectConfigService.writeLegacyNSConfigIfNeeded(
137137
projectData.projectDir,
138138
this.$projectDataService.getRuntimePackage(
139139
projectData.projectDir,

lib/definitions/project.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ interface IProjectConfigService {
375375
writeLegacyNSConfigIfNeeded(
376376
projectDir: string,
377377
runtimePackage: IBasePluginData
378-
): void;
378+
): Promise<void>;
379379
}
380380

381381
interface IAssetItem {

lib/services/project-config-service.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
import { cache } from "../common/decorators";
3131
import { IOptions } from "../declarations";
3232
import semver = require("semver/preload");
33+
import { ICleanupService } from "../definitions/cleanup-service";
3334

3435
export class ProjectConfigService implements IProjectConfigService {
3536
private forceUsingNewConfig: boolean = false;
@@ -39,7 +40,8 @@ export class ProjectConfigService implements IProjectConfigService {
3940
private $fs: IFileSystem,
4041
private $logger: ILogger,
4142
private $injector: IInjector,
42-
private $options: IOptions
43+
private $options: IOptions,
44+
private $cleanupService: ICleanupService
4345
) {}
4446

4547
public setForceUsingNewConfig(force: boolean) {
@@ -329,7 +331,7 @@ export default {
329331
// return Object.assign({}, ...additionalData, NSConfig);
330332
}
331333

332-
public writeLegacyNSConfigIfNeeded(
334+
public async writeLegacyNSConfigIfNeeded(
333335
projectDir: string,
334336
runtimePackage: IBasePluginData
335337
) {
@@ -370,6 +372,9 @@ You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as
370372
appPath: this.getValue("appPath"),
371373
appResourcesPath: this.getValue("appResourcesPath"),
372374
});
375+
376+
// mark the file for cleanup after the CLI exits
377+
await this.$cleanupService.addCleanupDeleteAction(nsConfigPath);
373378
}
374379

375380
// todo: move into config manipulation

test/project-service.ts

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ describe("projectService", () => {
5353
ensureValidName: async () => opts.projectName,
5454
});
5555
testInjector.register("projectConfigService", ProjectConfigService);
56+
testInjector.register("cleanupService", {});
5657
testInjector.register("projectTemplatesService", {
5758
prepareTemplate: async () => ({
5859
templateName: constants.RESERVED_TEMPLATE_NAMES["default"],
@@ -170,6 +171,7 @@ describe("projectService", () => {
170171
testInjector.register("projectData", {});
171172
testInjector.register("projectNameService", {});
172173
testInjector.register("projectConfigService", ProjectConfigService);
174+
testInjector.register("cleanupService", {});
173175
testInjector.register("projectTemplatesService", {});
174176
testInjector.register("staticConfig", {});
175177
testInjector.register("projectHelper", {});

test/services/project-config-service.ts

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ const createTestInjector = (
5858
testInjector.register("logger", LoggerStub);
5959
testInjector.register("injector", testInjector);
6060
testInjector.register("projectConfigService", ProjectConfigService);
61+
testInjector.register("cleanupService", {});
6162

6263
return testInjector;
6364
};

test/services/project-data-service.ts

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ const createTestInjector = (
133133
});
134134

135135
testInjector.register("options", {});
136+
testInjector.register("cleanupService", {});
136137

137138
return testInjector;
138139
};

test/stubs.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -636,10 +636,10 @@ export class ProjectConfigServiceStub implements IProjectConfigService {
636636
return true;
637637
}
638638

639-
writeLegacyNSConfigIfNeeded(
639+
async writeLegacyNSConfigIfNeeded(
640640
projectDir: string,
641641
runtimePackage: IBasePluginData
642-
): void {}
642+
): Promise<void> {}
643643
}
644644

645645
export class AndroidPluginBuildServiceStub

0 commit comments

Comments
 (0)