interface ParsedEmailAddressType { originalValue: string; username: string; domain: string; isValid: boolean; } const emailRegex = /^[a-zA-Z0-9._%+-]+@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$/; export function parseEmailAddress(email: string): ParsedEmailAddressType { // Normalize the email to lowercase email = email?.toLowerCase() ?? ''; const isValid = emailRegex.test(email); if (!isValid) { return { originalValue: email, username: '', domain: '', isValid: false, }; } const [username, domain] = email.split('@'); return { originalValue: email, username, domain, isValid: true, }; }