|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const ansi = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + |
|
'\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g'); |
|
export function stripAnsi(str) { |
|
return str.replace(ansi, ''); |
|
} |
|
export function wrap(str, width) { |
|
const [start, end] = str.match(ansi) || ['', '']; |
|
str = stripAnsi(str); |
|
let wrapped = ''; |
|
for (let i = 0; i < str.length; i++) { |
|
if (i !== 0 && (i % width) === 0) { |
|
wrapped += '\n'; |
|
} |
|
wrapped += str.charAt(i); |
|
} |
|
if (start && end) { |
|
wrapped = `${start}${wrapped}${end}`; |
|
} |
|
return wrapped; |
|
} |
|
|