Skip to content

Commit 767ad5c

Browse files
committed
✨ Show a preset prompt when a config connot be found
1 parent 5644274 commit 767ad5c

1 file changed

Lines changed: 30 additions & 6 deletions

File tree

bin/index.js

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@ function getStepPrompt(step) {
4545
}
4646
}
4747

48-
async function main(input, flags) {
49-
if (!flags.nowelcome) welcome();
50-
48+
function getPreset(flags) {
5149
const preset = flags.preset ? presets[flags.preset] : undefined;
5250

5351
if (!preset && flags.preset) {
@@ -56,11 +54,37 @@ async function main(input, flags) {
5654
"is not a valid preset."
5755
)} Available presets: ${Object.keys(presets).join(", ")}.\n`
5856
);
59-
60-
return 1;
6157
}
6258

63-
const config = preset ? preset : getConfig(flags.config);
59+
return preset;
60+
}
61+
62+
const getPresetPrompt = async () => {
63+
return await new AutoComplete({
64+
name: "presets",
65+
message: "Please choose a preset",
66+
choices: Object.keys(presets).map(key => presets[key].name)
67+
}).run();
68+
};
69+
70+
async function main(input, flags) {
71+
if (!flags.nowelcome) welcome();
72+
73+
let config = {};
74+
75+
try {
76+
const preset = getPreset(flags);
77+
config = preset ? preset : getConfig(flags.config);
78+
} catch (error) {
79+
console.log(error.message);
80+
81+
const preset = await getPresetPrompt();
82+
const presetKey = Object.keys(presets).find(
83+
key => presets[key].name === preset
84+
);
85+
86+
config = presets[presetKey];
87+
}
6488

6589
const message = await config.steps.reduce(async (accum, step) => {
6690
const message = await accum;

0 commit comments

Comments
 (0)