Newer
Older
express-blog / src / utils / validateEmail.js
@Jason Jason on 13 Jul 759 bytes deleted: src/api/posts.js
const validator = require("validator");

const MESSAGES = {
  REQUIRED: "Email is required",
  TOO_LONG: "Email address is too long",
  INVALID: "Please enter a valid email address",
};

const MAX_EMAIL_LENGTH = 254;

const validateEmail = (email) => {
  if (!email || typeof email !== "string") {
    return { valid: false, message: MESSAGES.REQUIRED };
  }

  email = email.trim().toLowerCase();

  if (email.length > MAX_EMAIL_LENGTH) {
    return { valid: false, message: MESSAGES.TOO_LONG };
  }

  if (
    !validator.isEmail(email) ||
    email.includes("..") ||
    email.startsWith(".") ||
    email.endsWith(".")
  ) {
    return { valid: false, message: MESSAGES.INVALID };
  }

  return { valid: true, email };
};

module.exports = validateEmail;