1- import colors from 'yoctocolors-cjs' ;
21import { Answers , Question } from '../types.ts' ;
2+ import { makeTheme } from '@inquirer/core' ;
33
44type RendererFunction < A extends Answers = Answers > = ( question : Question < A > ) => string ;
55
@@ -22,33 +22,29 @@ type SkippedRendererType<A extends Answers = Answers> = {
2222 password : RendererFunction < A > ;
2323 default : RendererFunction < A > ;
2424} ;
25+ const theme = makeTheme ( ) ;
26+ const prefix = typeof theme . prefix === 'string' ? theme . prefix : theme . prefix . idle ;
2527
2628const SkippedRenderer : SkippedRendererType = {
2729 confirm : ( question : TypedQuestion ) => {
2830 const defaultVal = question . default ;
2931 const answerText = defaultVal === true ? 'Yes' : defaultVal === false ? 'No' : '' ;
30- const prefix = '?' ;
31- const line = `${ prefix } ${ question . message } ${ answerText } ` ;
32- return colors . dim ( line ) ;
32+ return renderLine ( question . message . toString ( ) , answerText ) ;
3333 } ,
3434
3535 select : ( question : TypedQuestion ) => {
3636 const defaultVal = question . default ;
37- const prefix = '?' ;
3837 let answerText = String ( defaultVal ) ;
3938
4039 if ( question . choices && defaultVal !== undefined ) {
4140 const selectedChoice = question . choices . find ( ( c ) => c . value === defaultVal ) ;
4241 answerText = selectedChoice ? selectedChoice . name : String ( defaultVal ) ;
4342 }
44-
45- const line = `${ prefix } ${ question . message } ${ answerText } ` ;
46- return colors . dim ( line ) ;
43+ return renderLine ( question . message . toString ( ) , answerText ) ;
4744 } ,
4845
4946 checkbox : ( question : TypedQuestion ) => {
5047 const defaultVal = question . default ;
51- const prefix = '?' ;
5248 let answerText = '' ;
5349
5450 if ( Array . isArray ( defaultVal ) && question . choices ) {
@@ -60,40 +56,36 @@ const SkippedRenderer: SkippedRendererType = {
6056 answerText = String ( defaultVal ) ;
6157 }
6258
63- const line = `${ prefix } ${ question . message } ${ answerText } ` ;
64- return colors . dim ( line ) ;
59+ return renderLine ( question . message . toString ( ) , answerText ) ;
6560 } ,
6661
6762 editor : ( question : TypedQuestion ) => {
68- const prefix = '?' ;
6963 const answerText = question . default !== undefined ? '[Default Content]' : '' ;
70- const line = `${ prefix } ${ question . message } ${ answerText } ` ;
71- return colors . dim ( line ) ;
64+ return renderLine ( question . message . toString ( ) , answerText ) ;
7265 } ,
7366
7467 password : ( question : TypedQuestion ) => {
7568 const defaultVal = question . default ;
76- const prefix = '?' ;
7769 let answerText = '' ;
7870
7971 if ( defaultVal !== undefined ) {
8072 answerText = '[PASSWORD SET]' ;
8173 }
82-
83- const line = `${ prefix } ${ question . message } ${ answerText } ` ;
84- return colors . dim ( line ) ;
74+ return renderLine ( question . message . toString ( ) , answerText ) ;
8575 } ,
8676
8777 default : ( question : TypedQuestion ) => {
88- const prefix = '?' ;
89- const answer = question . default !== undefined ? String ( question . default ) : '' ;
90- const line = `${ prefix } ${ question . message } ${ answer } ` ;
91- return colors . dim ( line ) ;
78+ const answerText = question . default !== undefined ? String ( question . default ) : '' ;
79+ return renderLine ( question . message . toString ( ) , answerText ) ;
9280 } ,
9381 list : ( question : TypedQuestion ) => SkippedRenderer . select ( question ) ,
9482 rawlist : ( question : TypedQuestion ) => SkippedRenderer . select ( question ) ,
9583 input : ( question : TypedQuestion ) => SkippedRenderer . default ( question ) ,
9684 number : ( question : TypedQuestion ) => SkippedRenderer . default ( question ) ,
9785} ;
9886
87+ function renderLine ( message : string , answerText : string ) {
88+ return theme . style . help ( `${ prefix } ${ message } ${ answerText } ` ) ;
89+ }
90+
9991export default SkippedRenderer ;
0 commit comments