File size: 528 Bytes
fc93158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
export function trimMessagingTarget(raw: string): string | undefined {
  const trimmed = raw.trim();
  return trimmed || undefined;
}

export function looksLikeHandleOrPhoneTarget(params: {
  raw: string;
  prefixPattern: RegExp;
  phonePattern?: RegExp;
}): boolean {
  const trimmed = params.raw.trim();
  if (!trimmed) {
    return false;
  }
  if (params.prefixPattern.test(trimmed)) {
    return true;
  }
  if (trimmed.includes("@")) {
    return true;
  }
  return (params.phonePattern ?? /^\+?\d{3,}$/).test(trimmed);
}