normalizeEmail method
Canonicalizes an email address. Options include lowercase and specific provider rules.
Implementation
String normalizeEmail([Map<String, Object>? options]) {
Map<String, Object> defaultNormalizeEmailOptions = {'lowercase': true};
options = options?.merge(defaultNormalizeEmailOptions) ?? defaultNormalizeEmailOptions;
if (isEmail == false) {
return '';
}
final parts = split('@');
parts[1] = parts[1].toLowerCase();
if (options['lowercase'] == true) {
parts[0] = parts[0].toLowerCase();
}
if (parts[1] == 'gmail.com' || parts[1] == 'googlemail.com') {
if (options['lowercase'] == false) {
parts[0] = parts[0].toLowerCase();
}
parts[0] = parts[0].replaceAll('.', '').split('+')[0];
parts[1] = 'gmail.com';
}
return parts.join('@');
}