@corvina/oci-validations
Version:
OCI Validation functions
35 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateTagName = exports.validateCorvinaArRepositoryName = exports.validateRepositoryName = exports.validateProjectName = void 0;
const SPECIAL_CHARACTERS = ".-_";
const ENABLE_CHARACTERS = "abcdefghijklmnopqrstuvwxyz0123456789" + SPECIAL_CHARACTERS;
const containsValidCharacters = (input) => {
return input.split("").every((char) => ENABLE_CHARACTERS.includes(char));
};
const getCommonValidationFn = (maxLength) => (name) => {
if (!name || name.length > maxLength || name.length < 2) {
return false;
}
if (name.startsWith("-") ||
name.endsWith("-") ||
name.startsWith("_") ||
name.endsWith("_") ||
name.startsWith(".") ||
name.endsWith(".")) {
return false;
}
for (let i = 0; i < name.length - 1; i++) {
if (SPECIAL_CHARACTERS.includes(name[i]) && SPECIAL_CHARACTERS.includes(name[i + 1])) {
return false;
}
}
if (!containsValidCharacters(name)) {
return false;
}
return true;
};
exports.validateProjectName = getCommonValidationFn(255);
exports.validateRepositoryName = getCommonValidationFn(255);
exports.validateCorvinaArRepositoryName = getCommonValidationFn(180);
exports.validateTagName = getCommonValidationFn(128);
//# sourceMappingURL=index.js.map