Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (
isEditing &&
attributeType === 'relation' &&
dataToValidate.target === currentSchema.uid
) {
targetAttributeAlreadyTakenValue = targetAttributeAlreadyTakenValue.filter(
attribute => attribute !== initialData.targetAttribute
);
}
// Common yup shape for most attributes
const commonShape = {
name: yup
.string()
.unique(errorsTrads.unique, alreadyTakenAttributes)
.matches(NAME_REGEX, errorsTrads.regex)
.required(errorsTrads.required),
type: yup.string().required(errorsTrads.required),
default: yup.string().nullable(),
unique: yup.boolean().nullable(),
required: yup.boolean(),
};
const numberTypeShape = {
max: yup.lazy(() => {
let schema = yup.number();
if (
attributeType === 'integer' ||
attributeType === 'biginteger' ||
attributeType === 'dynamiczone'
) {
schema = schema.integer();
defaultType = yup
.number()
.integer('component.Input.error.validation.integer');
}
return yup.object().shape({
...commonShape,
default: defaultType.nullable(),
...numberTypeShape,
});
}
case 'relation':
return yup.object().shape({
name: yup
.string()
.matches(NAME_REGEX, errorsTrads.regex)
.unique(errorsTrads.unique, alreadyTakenAttributes)
.required(errorsTrads.required),
targetAttribute: yup.lazy(() => {
let schema = yup.string();
if (!['oneWay', 'manyWay'].includes(dataToValidate.nature)) {
schema = schema.matches(NAME_REGEX, errorsTrads.regex);
}
return schema
.unique(errorsTrads.unique, targetAttributeAlreadyTakenValue)
.required(errorsTrads.required);
}),
target: yup.string().required(errorsTrads.required),
nature: yup.string().required(),
dominant: yup.boolean().nullable(),
unique: yup.boolean().nullable(),
schema = schema.required(errorsTrads.required);
break;
case 'max':
schema = schema.max(validationValue, errorsTrads.max);
break;
case 'maxLength':
schema = schema.max(validationValue, errorsTrads.maxLength);
break;
case 'min':
schema = schema.min(validationValue, errorsTrads.min);
break;
case 'minLength':
schema = schema.min(validationValue, errorsTrads.minLength);
break;
case 'regex':
schema = schema.matches(validationValue, errorsTrads.regex);
break;
case 'lowercase':
if (['text', 'textarea', 'email', 'string'].includes(type)) {
schema = schema.strict().lowercase();
}
break;
case 'uppercase':
if (['text', 'textarea', 'email', 'string'].includes(type)) {
schema = schema.strict().uppercase();
}
break;
case 'positive':
if (
['number', 'integer', 'bigint', 'float', 'decimal'].includes(type)
) {
schema = schema.positive();
case 'maxLength':
schema = schema.max(validationValue, errorsTrads.maxLength);
break;
case 'min': {
if (type === 'biginteger') {
schema = schema.isSuperior(errorsTrads.min, validationValue);
} else {
schema = schema.min(validationValue, errorsTrads.min);
}
break;
}
case 'minLength':
schema = schema.min(validationValue, errorsTrads.minLength);
break;
case 'regex':
schema = schema.matches(validationValue, errorsTrads.regex);
break;
case 'lowercase':
if (['text', 'textarea', 'email', 'string'].includes(type)) {
schema = schema.strict().lowercase();
}
break;
case 'uppercase':
if (['text', 'textarea', 'email', 'string'].includes(type)) {
schema = schema.strict().uppercase();
}
break;
case 'positive':
if (
['number', 'integer', 'bigint', 'float', 'decimal'].includes(type)
) {
schema = schema.positive();