@yeepay/yeepay-cli
Version:
易宝前端脚手架
45 lines (43 loc) • 1.4 kB
JavaScript
import inquirer from 'inquirer';
import Log from './utils/log.js'
import {createProject, updateCli} from '../config/inquire.config.js'
export default class InitView {
currentStep = 0;
answers = [];
constructor() {
}
async askQuestion() {
try {
const keys = Object.keys(createProject)
for (let i = 0; i < keys.length; i++) {
const value = await inquirer.prompt([ createProject[keys[i]]])
this.answers.push(value)
if ((value.projectType || value.galaxyType) && (value.projectType === "Back..." || value.galaxyType === "Back...")) {
if (i > 0) {
i -= 2; // 回退到上一个问题
this.answers.splice(-2)
} else {
console.log("No previous question to go back to.");
i -= 1; // 如果是第一个问题,重新询问
}
}
if (value.projectType && value.projectType !== 'galaxy' && value.projectType !== 'Back...') {
i++
}
}
return this.answers;
} catch (error) {
if (error.isTtyError) {
Log.red('当前环境不支持 TTY,请直接从命令行输入参数');
} else {
Log.red('您已取消,再见 ' + error.message);
// Something else wnt wrong
}
process.exit(1);
}
}
async updateCli() {
const answers = await inquirer.prompt(updateCli)
return answers.update
}
}