diff --git a/components/projects/project.ts b/components/projects/project.ts index 0e2e892..5a2df6d 100644 --- a/components/projects/project.ts +++ b/components/projects/project.ts @@ -219,13 +219,45 @@ export default class Project { } } - public async select() { - const chosen = await this.choose() - if (chosen) { - this.helper.setProp("projectId", chosen.id); - this.helper.setProp("projectName", chosen.name); - console.log(colors.green(`Project "${ chosen.name }" (${ chosen.id }) is successfully selected`)); + public async select(projectName?: string) { + let chosen: any; + if (typeof projectName === "string") { + chosen = await this.getDataByName(projectName); + if (chosen !== undefined) { + // project name found + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + } else { + // project name not found, select through inquirer + console.log( + `Project with name ${colors.green(projectName)} is not found. ` + + `Please choose listed project name below:`); + chosen = await this.choose() + if (chosen) { + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + } + } + } else { + // projectName is empty + chosen = await this.choose() + if (chosen) { + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + } } + console.log(colors.green(`Project "${ chosen.name }" (${ chosen.id }) is successfully selected`)); + + if (!chosen || chosen === undefined) { + chosen = await this.choose() + if (chosen) { + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + console.log(colors.green(`Project "${ chosen.name }" (${ chosen.id }) is successfully selected`)); + } + } + + } public async delete(projectName?: string) { diff --git a/lib/components/projects/project.js b/lib/components/projects/project.js index 2c170ec..d16bd54 100644 --- a/lib/components/projects/project.js +++ b/lib/components/projects/project.js @@ -208,13 +208,43 @@ class Project { } }); } - select() { + select(projectName) { return __awaiter(this, void 0, void 0, function* () { - const chosen = yield this.choose(); - if (chosen) { - this.helper.setProp("projectId", chosen.id); - this.helper.setProp("projectName", chosen.name); - console.log(colors.green(`Project "${chosen.name}" (${chosen.id}) is successfully selected`)); + let chosen; + if (typeof projectName === "string") { + chosen = yield this.getDataByName(projectName); + if (chosen !== undefined) { + // project name found + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + } + else { + // project name not found, select through inquirer + console.log(`Project with name ${colors.green(projectName)} is not found. ` + + `Please choose listed project name below:`); + chosen = yield this.choose(); + if (chosen) { + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + } + } + } + else { + // projectName is empty + chosen = yield this.choose(); + if (chosen) { + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + } + } + console.log(colors.green(`Project "${chosen.name}" (${chosen.id}) is successfully selected`)); + if (!chosen || chosen === undefined) { + chosen = yield this.choose(); + if (chosen) { + this.helper.setProp("projectId", chosen.id); + this.helper.setProp("projectName", chosen.name); + console.log(colors.green(`Project "${chosen.name}" (${chosen.id}) is successfully selected`)); + } } }); }