Capstone-backup / src /utils /email.js
MisbahKhan0009
all files added
6931883
Raw
History Blame Contribute Delete
932 Bytes
const HttpError = require('./httpError');
const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
function normalizeEmail(email) {
return String(email || '').trim().toLowerCase();
}
function validateEmail(email) {
const normalizedEmail = normalizeEmail(email);
if (!EMAIL_REGEX.test(normalizedEmail)) {
throw new HttpError(
400,
'A valid email address is required.',
'INVALID_EMAIL',
);
}
return normalizedEmail;
}
function maskEmail(email) {
const normalizedEmail = normalizeEmail(email);
const [localPart, domainPart] = normalizedEmail.split('@');
if (!localPart || !domainPart) {
return normalizedEmail;
}
if (localPart.length <= 2) {
return `${localPart[0] || '*'}*@${domainPart}`;
}
return `${localPart[0]}${'*'.repeat(Math.max(localPart.length - 2, 1))}${localPart.slice(-1)}@${domainPart}`;
}
module.exports = {
maskEmail,
normalizeEmail,
validateEmail,
};