Skip to content

Commit 9bb0c15

Browse files
committed
Extract getProjectDir to common
1 parent 6053ed4 commit 9bb0c15

File tree

2 files changed

+9
-34
lines changed

2 files changed

+9
-34
lines changed

lib/services/project-service.ts

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ export class ProjectService implements IProjectService {
1313
public static APP_FOLDER_NAME = "app";
1414
public static PROJECT_FRAMEWORK_DIR = "framework";
1515

16-
private cachedProjectDir: string = null;
1716
public projectData: IProjectData = null;
1817

1918
constructor(private $logger: ILogger,
@@ -22,52 +21,28 @@ export class ProjectService implements IProjectService {
2221
private $projectTemplatesService: IProjectTemplatesService,
2322
private $androidProjectService: IPlatformProjectService,
2423
private $iOSProjectService: IPlatformProjectService,
24+
private $projectHelper: IProjectHelper,
2525
private $config) {
2626
this.projectData = this.getProjectData().wait();
2727
}
2828

29-
private get projectDir(): string {
30-
if(this.cachedProjectDir) {
31-
return this.cachedProjectDir;
32-
}
33-
34-
var projectDir = path.resolve(options.path || ".");
35-
while (true) {
36-
this.$logger.trace("Looking for project in '%s'", projectDir);
37-
38-
if (this.$fs.exists(path.join(projectDir, this.$config.PROJECT_FILE_NAME)).wait()) {
39-
this.$logger.debug("Project directory is '%s'.", projectDir);
40-
this.cachedProjectDir = projectDir;
41-
break;
42-
}
43-
44-
var dir = path.dirname(projectDir);
45-
if (dir === projectDir) {
46-
this.$logger.debug("No project found at or above '%s'.", path.resolve("."));
47-
break;
48-
}
49-
projectDir = dir;
50-
}
51-
52-
return this.cachedProjectDir;
53-
}
54-
5529
private getProjectData(): IFuture<IProjectData> {
5630
return(() => {
5731
var projectData: IProjectData = null;
32+
var projectDir = this.$projectHelper.projectDir;
5833

59-
if(this.projectDir) {
34+
if(projectDir) {
6035
projectData = {
61-
projectDir: this.projectDir,
62-
platformsDir: path.join(this.projectDir, "platforms"),
63-
projectFilePath: path.join(this.projectDir, this.$config.PROJECT_FILE_NAME)
36+
projectDir: projectDir,
37+
platformsDir: path.join(projectDir, "platforms"),
38+
projectFilePath: path.join(projectDir, this.$config.PROJECT_FILE_NAME)
6439
};
65-
var projectFilePath = path.join(this.projectDir, this.$config.PROJECT_FILE_NAME);
40+
var projectFilePath = path.join(projectDir, this.$config.PROJECT_FILE_NAME);
6641

6742
if (this.$fs.exists(projectFilePath).wait()) {
6843
var fileContent = this.$fs.readJson(projectFilePath).wait();
6944
projectData.projectId = fileContent.id;
70-
projectData.projectName = path.basename(this.projectDir);
45+
projectData.projectName = path.basename(projectDir);
7146
}
7247
}
7348

0 commit comments

Comments
 (0)