Rocky_Mountain_Vending/lib/phone-normalization.ts

41 lines
802 B
TypeScript

export function normalizePhoneE164(input?: string | null) {
const digits = String(input || "").replace(/\D/g, "")
if (!digits) {
return ""
}
if (digits.length === 10) {
return `+1${digits}`
}
if (digits.length === 11 && digits.startsWith("1")) {
return `+${digits}`
}
if (digits.length >= 11) {
return `+${digits}`
}
return ""
}
export function splitDisplayName(name?: string | null) {
const trimmed = String(name || "").trim()
if (!trimmed) {
return {
firstName: "",
lastName: "",
displayName: "",
}
}
const parts = trimmed.split(/\s+/)
const firstName = parts.shift() || ""
const lastName = parts.join(" ")
return {
firstName,
lastName,
displayName: [firstName, lastName].filter(Boolean).join(" "),
}
}