Files
payload/src/fields/validations.js

36 lines
1.1 KiB
JavaScript

const fieldToValidatorMap = {
number: (field, value) => {
const parsedValue = parseInt(value, 10);
if (typeof parsedValue !== 'number') return false;
if (field.max && parsedValue > field.max) return false;
if (field.min && parsedValue < field.min) return false;
return true;
},
text: (field, value) => {
if (field.maxLength && value.length > field.maxLength) return false;
if (field.minLength && value.length < field.minLength) return false;
return true;
},
email: value => /\S+@\S+\.\S+/.test(value),
textarea: (field, value) => {
if (field.maxLength && value.length > field.maxLength) return false;
if (field.minLength && value.length < field.minLength) return false;
return true;
},
wysiwyg: value => (!!value),
code: value => (!!value),
checkbox: value => Boolean(value),
date: value => value instanceof Date,
upload: value => (!!value),
relationship: value => (!!value),
repeater: value => (!!value),
select: value => (!!value),
flexible: value => (!!value),
};
module.exports = fieldToValidatorMap;