Feature/wrap logging * feat: change all logging to go through our own logger function so that we can control log levels * move packages/trpc to using our own logger * merge Approved-by: Linus Flood
29 lines
769 B
TypeScript
29 lines
769 B
TypeScript
import parsePhoneNumberFromString, { type CountryCode } from "libphonenumber-js"
|
|
|
|
import { logger } from "@scandic-hotels/common/logger"
|
|
|
|
export function formatPhoneNumber(
|
|
phoneNumber: string,
|
|
phoneNumberCC?: string | null
|
|
): string {
|
|
if (!phoneNumber) return ""
|
|
|
|
const normalized = phoneNumber.trim().replaceAll(/-|\s/g, "")
|
|
|
|
const parsedPhonenumber = phoneNumberCC?.length
|
|
? parsePhoneNumberFromString(
|
|
normalized,
|
|
phoneNumberCC.toUpperCase() as CountryCode
|
|
)
|
|
: parsePhoneNumberFromString(normalized)
|
|
|
|
if (!parsedPhonenumber?.isValid()) {
|
|
logger.warn(
|
|
`Invalid phone number: ${phoneNumber} with country code: ${phoneNumberCC}`,
|
|
parsedPhonenumber
|
|
)
|
|
}
|
|
|
|
return parsedPhonenumber?.number || normalized
|
|
}
|