generator-begcode
Version:
Spring Boot + Angular/React/Vue in one handy generator
32 lines (31 loc) • 1.24 kB
JavaScript
import Validator from './validator.js';
import { validations } from '../jhipster/index.js';
const { Validations: { exists, needsValue, MINLENGTH, MAXLENGTH, MAXBYTES, MINBYTES }, } = validations;
export default class ValidationValidator extends Validator {
constructor() {
super('validation', ['name']);
}
validate(jdlValidation) {
super.validate(jdlValidation);
checkForInvalidName(jdlValidation);
checkForRequiredValue(jdlValidation);
if ([MINLENGTH, MAXLENGTH, MAXBYTES, MINBYTES].includes(jdlValidation.name)) {
checkForInvalidNumericValue(jdlValidation);
}
}
}
function checkForInvalidName(jdlValidation) {
if (!exists(jdlValidation.name)) {
throw new Error(`The validation ${jdlValidation.name} doesn't exist.`);
}
}
function checkForRequiredValue(jdlValidation) {
if (jdlValidation.value == null && needsValue(jdlValidation.name)) {
throw new Error(`The validation ${jdlValidation.name} requires a value.`);
}
}
function checkForInvalidNumericValue(jdlValidation) {
if (jdlValidation.value.toString().includes('.')) {
throw new Error(`Decimal values are forbidden for the ${jdlValidation.name} validation.`);
}
}