@brontosaurus/db
Version:
:ocean: Schema for brontosaurus
42 lines (41 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validatePhone = exports.PHONE_VALIDATE_RESPONSE = exports.validateEmail = exports.EMAIL_VALIDATE_RESPONSE = void 0;
var EMAIL_VALIDATE_RESPONSE;
(function (EMAIL_VALIDATE_RESPONSE) {
EMAIL_VALIDATE_RESPONSE["OK"] = "OK";
EMAIL_VALIDATE_RESPONSE["NO_AT_SIGN"] = "NO_AT_SIGN";
EMAIL_VALIDATE_RESPONSE["INVALID_USER"] = "INVALID_USER";
EMAIL_VALIDATE_RESPONSE["INVALID_DOMAIN"] = "INVALID_DOMAIN";
})(EMAIL_VALIDATE_RESPONSE = exports.EMAIL_VALIDATE_RESPONSE || (exports.EMAIL_VALIDATE_RESPONSE = {}));
const validateEmail = (email) => {
const splited = email.split('@');
if (splited.length !== 2) {
return EMAIL_VALIDATE_RESPONSE.NO_AT_SIGN;
}
const user = splited[0];
const domain = splited[1];
if (!/^[a-zA-Z0-9][a-zA-Z0-9-_]+(\.[0-9a-zA-Z]+)*\.[a-zA-Z]{2,11}?$/igm.test(domain)) {
return EMAIL_VALIDATE_RESPONSE.INVALID_DOMAIN;
}
if (user.length <= 2) {
if (!/^[a-zA-Z0-9]+$/igm.test(user)) {
return EMAIL_VALIDATE_RESPONSE.INVALID_USER;
}
}
else {
if (!/^[a-zA-Z0-9][a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+[a-zA-Z0-9]$/igm.test(user)) {
return EMAIL_VALIDATE_RESPONSE.INVALID_USER;
}
}
return EMAIL_VALIDATE_RESPONSE.OK;
};
exports.validateEmail = validateEmail;
var PHONE_VALIDATE_RESPONSE;
(function (PHONE_VALIDATE_RESPONSE) {
PHONE_VALIDATE_RESPONSE["OK"] = "OK";
})(PHONE_VALIDATE_RESPONSE = exports.PHONE_VALIDATE_RESPONSE || (exports.PHONE_VALIDATE_RESPONSE = {}));
const validatePhone = (phone) => {
return PHONE_VALIDATE_RESPONSE.OK;
};
exports.validatePhone = validatePhone;