@@ -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