@@ -27,13 +27,9 @@ class CLI {
2727 this . SPINNER_STATUS = SPINNER_STATUS ;
2828 }
2929
30- prompt ( question , defaultAnswer = true ) {
31- const option =
32- `[${ ( defaultAnswer ? 'Y' : 'y' ) } /${ ( defaultAnswer ? 'n' : 'N' ) } ]` ;
33- this . separator ( ) ;
34- const promptText = `${ chalk . bold . cyan ( '?' ) } ${ question } ${ option } ` ;
30+ promptForInput ( question ) {
3531 return new Promise ( ( resolve , reject ) => {
36- read ( { prompt : promptText } , ( err , answer ) => {
32+ read ( { prompt : question } , ( err , answer ) => {
3733 if ( err ) {
3834 this . log ( `\nCanceled: ${ err . message } ` ) ;
3935 reject ( new Error ( IGNORE ) ) ;
@@ -43,19 +39,27 @@ class CLI {
4339 reject ( new Error ( IGNORE ) ) ;
4440 return ;
4541 }
46- const trimmed = answer . toLowerCase ( ) . trim ( ) ;
47- if ( ! trimmed ) {
48- resolve ( defaultAnswer ) ;
49- return ;
50- } else if ( trimmed === 'y' ) {
51- resolve ( true ) ;
52- return ;
53- }
54- resolve ( false ) ;
42+ resolve ( answer ) ;
5543 } ) ;
5644 } ) ;
5745 }
5846
47+ async prompt ( question , defaultAnswer = true ) {
48+ const option =
49+ `[${ ( defaultAnswer ? 'Y' : 'y' ) } /${ ( defaultAnswer ? 'n' : 'N' ) } ]` ;
50+ this . separator ( ) ;
51+ const promptText = `${ chalk . bold . cyan ( '?' ) } ${ question } ${ option } ` ;
52+
53+ const answer = await this . promptForInput ( promptText ) ;
54+ const trimmed = answer . toLowerCase ( ) . trim ( ) ;
55+ if ( ! trimmed ) {
56+ return defaultAnswer ;
57+ } else if ( trimmed === 'y' ) {
58+ return true ;
59+ }
60+ return false ;
61+ }
62+
5963 startSpinner ( text ) {
6064 this . spinner . text = text ;
6165 this . spinner . start ( ) ;
0 commit comments