/
githubmirror
/
novu
Обзор
Документация
Войти
/
githubmirror
/
novu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
next
libs/application-generic/src/utils/email-normalization.ts
48 строк
1 KB
Sokratis Vidros
chore(root): Move @novu/application generic under libs (#5612)
21 май 2024, 16:56
Не верифицирован
21 май 2024, 16:56
d5bb034
Код
Авторство
О чём код?
const PLUS_ONLY = /\+.*$/; const PLUS_AND_DOT = /\.|\+.*$/g; const normalizableProviders = { 'gmail.com': { cut: PLUS_AND_DOT, }, 'googlemail.com': { cut: PLUS_AND_DOT, aliasOf: 'gmail.com', }, 'hotmail.com': { cut: PLUS_ONLY, }, 'live.com': { cut: PLUS_AND_DOT, }, 'outlook.com': { cut: PLUS_ONLY, }, }; export function normalizeEmail(email: string): string { if (typeof email !== 'string') { throw new TypeError('normalize-email expects a string'); } const lowerCasedEmail = email.toLowerCase(); const emailParts = lowerCasedEmail.split(/@/); if (emailParts.length !== 2) { return email; } let username = emailParts[0]; let domain = emailParts[1]; if (normalizableProviders.hasOwnProperty(domain)) { if (normalizableProviders[domain].hasOwnProperty('cut')) { username = username.replace(normalizableProviders[domain].cut, ''); } if (normalizableProviders[domain].hasOwnProperty('aliasOf')) { domain = normalizableProviders[domain].aliasOf; } } return `${username}@${domain}`; }