23 lines
528 B
TypeScript
23 lines
528 B
TypeScript
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);
|
|
}
|