109bb6093SEvan Bacon/** Remove ansi characters from a string and return the sanitized results. */ 2*e32ccf9fSEvan Baconexport function stripAnsi(str?: string | null) { 38d307f52SEvan Bacon if (!str) { 48d307f52SEvan Bacon return str; 58d307f52SEvan Bacon } 68d307f52SEvan Bacon const pattern = [ 78d307f52SEvan Bacon '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', 88d307f52SEvan Bacon '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))', 98d307f52SEvan Bacon ].join('|'); 108d307f52SEvan Bacon 118d307f52SEvan Bacon return str.replace(new RegExp(pattern, 'g'), ''); 128d307f52SEvan Bacon} 13