Repository URL to install this package:
|
Version:
3.12.2 ▾
|
/**
* Check is metadata field value valid
* @param {(string|number|array)} value
* @param {regexp} [validation]
* @param {boolean} [required]
* @returns {(boolean|string)} - If TRUE field is valid, if FALSE or message field is not valid.
* @param {boolean} [canEdit=true]
*/
function checkFieldValidation(value, validation, required) {
var canEdit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
if (required && canEdit && !value && !(value || []).length) {
return 'Field is required!';
}
/**
* When field is required but current user can't edit the field, we have to set that current value is valid to unlock other fields save.
*/
if (required && !canEdit) {
return true;
}
if (!validation) {
// If no validation rules return TRUE (field valid)
return true;
}
if (typeof validation !== 'string') {
console.warn('Metadata field validation: support string only!', {
value: value,
validation: validation
});
return true;
}
return new RegExp(validation).test(value) ? true : "String \"".concat(value, "\" not match regexp ").concat(validation);
}
export default checkFieldValidation;