xref: /expo/packages/@expo/cli/src/utils/ansi.ts (revision bb5069cd)
1/** Remove ansi characters from a string and return the sanitized results. */
2export function stripAnsi(str?: string) {
3  if (!str) {
4    return str;
5  }
6  const pattern = [
7    '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
8    '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))',
9  ].join('|');
10
11  return str.replace(new RegExp(pattern, 'g'), '');
12}
13