( confirm: Doc.AnsiDoc, message: string, leadingSymbol: Doc.AnsiDoc, trailingSymbol: Doc.AnsiDoc )
| 109 | const NEWLINE_REGEX = /\r?\n/ |
| 110 | |
| 111 | function renderPrompt( |
| 112 | confirm: Doc.AnsiDoc, |
| 113 | message: string, |
| 114 | leadingSymbol: Doc.AnsiDoc, |
| 115 | trailingSymbol: Doc.AnsiDoc |
| 116 | ) { |
| 117 | const annotateLine = (line: string): Doc.AnsiDoc => Doc.annotate(Doc.text(line), Ansi.bold) |
| 118 | const prefix = Doc.cat(leadingSymbol, Doc.space) |
| 119 | return Arr.match(message.split(NEWLINE_REGEX), { |
| 120 | onEmpty: () => Doc.hsep([prefix, trailingSymbol, confirm]), |
| 121 | onNonEmpty: (promptLines) => { |
| 122 | const lines = Arr.map(promptLines, (line) => annotateLine(line)) |
| 123 | return prefix.pipe( |
| 124 | Doc.cat(Doc.nest(Doc.vsep(lines), 2)), |
| 125 | Doc.cat(Doc.space), |
| 126 | Doc.cat(trailingSymbol), |
| 127 | Doc.cat(Doc.space), |
| 128 | Doc.cat(confirm) |
| 129 | ) |
| 130 | } |
| 131 | }) |
| 132 | } |
| 133 | |
| 134 | function renderPrefix( |
| 135 | state: State, |
no test coverage detected
searching dependent graphs…