| 90 | } |
| 91 | |
| 92 | function log(message: string, { art = pc.gray('\u2502'), prefix = '', print = eprintln }) { |
| 93 | let prefixLength = prefix.length |
| 94 | let padding = ' ' |
| 95 | let paddingLength = padding.length |
| 96 | let artLength = stripVTControlCharacters(art).length |
| 97 | let availableWidth = process.stderr.columns |
| 98 | let totalWidth = availableWidth - prefixLength - paddingLength * 2 - artLength |
| 99 | |
| 100 | wordWrap(message, totalWidth).map((line, idx) => { |
| 101 | return print( |
| 102 | `${art}${padding}${idx === 0 ? prefix : ' '.repeat(prefixLength)}${line}${padding}`, |
| 103 | ) |
| 104 | }) |
| 105 | print() |
| 106 | } |
| 107 | |
| 108 | export function success(message: string, { prefix = '', print = eprintln } = {}) { |
| 109 | log(message, { art: pc.green('\u2502'), prefix, print }) |