@brontosaurus/db
Version:
:ocean: Schema for brontosaurus
64 lines (63 loc) • 3.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validatePassword = exports.PASSWORD_VALIDATE_RESPONSE = exports.validateUsername = exports.USERNAME_VALIDATE_RESPONSE = void 0;
var USERNAME_VALIDATE_RESPONSE;
(function (USERNAME_VALIDATE_RESPONSE) {
USERNAME_VALIDATE_RESPONSE["TOO_SHORT"] = "TOO_SHORT";
USERNAME_VALIDATE_RESPONSE["NO_SPACE"] = "NO_SPACE";
USERNAME_VALIDATE_RESPONSE["MUST_START_WITH_LETTER"] = "MUST_START_WITH_LETTER";
USERNAME_VALIDATE_RESPONSE["ONLY_LETTERS_OR_NUMBERS"] = "ONLY_LETTERS_OR_NUMBERS";
USERNAME_VALIDATE_RESPONSE["OK"] = "OK";
})(USERNAME_VALIDATE_RESPONSE = exports.USERNAME_VALIDATE_RESPONSE || (exports.USERNAME_VALIDATE_RESPONSE = {}));
const validateUsername = (username, length = 2, startWithLetter = true) => {
if (username.length < length) {
return USERNAME_VALIDATE_RESPONSE.TOO_SHORT;
}
if (startWithLetter) {
if (!/^[A-Za-z]$/.test(username.substring(0, 1))) {
return USERNAME_VALIDATE_RESPONSE.MUST_START_WITH_LETTER;
}
}
if (username.includes(' ')) {
return USERNAME_VALIDATE_RESPONSE.NO_SPACE;
}
if (!/^([A-Za-z0-9]|-)+$/.test(username)) {
return USERNAME_VALIDATE_RESPONSE.ONLY_LETTERS_OR_NUMBERS;
}
return USERNAME_VALIDATE_RESPONSE.OK;
};
exports.validateUsername = validateUsername;
var PASSWORD_VALIDATE_RESPONSE;
(function (PASSWORD_VALIDATE_RESPONSE) {
PASSWORD_VALIDATE_RESPONSE["TOO_SHORT"] = "TOO_SHORT";
PASSWORD_VALIDATE_RESPONSE["ONLY_KEYBOARD_CHARACTER_AVAILABLE"] = "ONLY_KEYBOARD_CHARACTER_AVAILABLE";
PASSWORD_VALIDATE_RESPONSE["HAVE_TO_INCLUDE_LETTER"] = "HAVE_TO_INCLUDE_LETTER";
PASSWORD_VALIDATE_RESPONSE["HAVE_TO_INCLUDE_NUMBER"] = "HAVE_TO_INCLUDE_NUMBER";
PASSWORD_VALIDATE_RESPONSE["HAVE_TO_INCLUDE_SYMBOL"] = "HAVE_TO_INCLUDE_SYMBOL";
PASSWORD_VALIDATE_RESPONSE["OK"] = "OK";
})(PASSWORD_VALIDATE_RESPONSE = exports.PASSWORD_VALIDATE_RESPONSE || (exports.PASSWORD_VALIDATE_RESPONSE = {}));
const validatePassword = (password, length = 8, haveToIncludeLetter = true, haveToIncludeNumber = true, haveToIncludeSymbol = false) => {
if (password.length < length) {
return PASSWORD_VALIDATE_RESPONSE.TOO_SHORT;
}
if (!/^([A-Za-z0-9]|[!@#$%^&*()[\]{};:'",./<>?~`\-+_=\\| ])+$/.test(password)) {
return PASSWORD_VALIDATE_RESPONSE.ONLY_KEYBOARD_CHARACTER_AVAILABLE;
}
if (haveToIncludeLetter) {
if (!/^.*[A-Za-z].*$/.test(password)) {
return PASSWORD_VALIDATE_RESPONSE.HAVE_TO_INCLUDE_LETTER;
}
}
if (haveToIncludeNumber) {
if (!/^.*[0-9].*$/.test(password)) {
return PASSWORD_VALIDATE_RESPONSE.HAVE_TO_INCLUDE_NUMBER;
}
}
if (haveToIncludeSymbol) {
if (!/.+[!@#$%^&*()[\]{};:'",./<>?~`-+_=].+/.test(password)) {
return PASSWORD_VALIDATE_RESPONSE.HAVE_TO_INCLUDE_SYMBOL;
}
}
return PASSWORD_VALIDATE_RESPONSE.OK;
};
exports.validatePassword = validatePassword;