Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@filerobot/utils / lib / metadata / updateValidationErrors.js
Size: Mime:
import checkFieldValidation from './checkFieldValidation';

/**
 * @param {object} errors
 * @param {string} key
 * @param {string} [regionalVariantFieldKey]
 * @param {any} fieldValue
 * @param {regexp} [fieldValidation]
 * @param {boolean} [isFieldRequired]
 * @param {(boolean|string[])} [canEdit=true]
 */
function updateValidationErrors(errors, key, regionalVariantFieldKey, fieldValue, fieldValidation, isFieldRequired) {
  var canEdit = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true;
  var errorsClone = JSON.parse(JSON.stringify(errors || {}));
  var editable = canEdit === true || regionalVariantFieldKey && Array.isArray(canEdit) && canEdit.indexOf(regionalVariantFieldKey) > -1;
  var isValid = checkFieldValidation(fieldValue, fieldValidation, isFieldRequired, editable);
  if (isValid === true) {
    // Valid, remove error
    if (regionalVariantFieldKey) {
      if (errorsClone[key] && Object.prototype.hasOwnProperty.call(errorsClone[key], regionalVariantFieldKey)) {
        delete errorsClone[key][regionalVariantFieldKey];
        if (!Object.keys(errorsClone[key]).length) {
          // Object empty, need to remove
          delete errorsClone[key];
        }
      }
    } else {
      if (Object.prototype.hasOwnProperty.call(errorsClone, key)) {
        delete errorsClone[key];
      }
    }
  } else {
    // Not valid, add error
    if (regionalVariantFieldKey) {
      errorsClone[key] = errorsClone[key] || {};
      errorsClone[key][regionalVariantFieldKey] = isValid || true;
    } else {
      errorsClone[key] = isValid || true;
    }
  }
  return errorsClone;
}
export default updateValidationErrors;