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 / validateItemMetadata.js
Size: Mime:
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import getMetadataGroups from './getMetadataGroups';
import updateValidationErrors from './updateValidationErrors';
import { INVALID_FOLDER_OR_FILE_CHARS_REGEX, METADATA_MODEL_TYPE_IDS } from '../constants';
var validateItemMetadata = function validateItemMetadata(_ref) {
  var metadata = _ref.metadata,
    itemMeta = _ref.itemMeta,
    itemMetadataErrors = _ref.itemMetadataErrors,
    i18n = _ref.i18n,
    fileName = _ref.fileName;
  var model = metadata.model,
    regionalGroups = metadata.regionalGroups,
    _metadata$modelType = metadata.modelType,
    modelType = _metadata$modelType === void 0 ? METADATA_MODEL_TYPE_IDS.FILES : _metadata$modelType;
  var metaDataGroups = getMetadataGroups(model, modelType);
  var errors = _objectSpread({}, itemMetadataErrors || {});
  (metaDataGroups || []).forEach(function (group) {
    (group.fields || []).forEach(function (fieldItem) {
      var _regionalGroups$find;
      var fieldRegionalVariants = regionalGroups === null || regionalGroups === void 0 ? void 0 : (_regionalGroups$find = regionalGroups.find(function (group) {
        return group.uuid === (fieldItem === null || fieldItem === void 0 ? void 0 : fieldItem.regional_variants_group_uuid);
      })) === null || _regionalGroups$find === void 0 ? void 0 : _regionalGroups$find.variants;
      if (fieldRegionalVariants && Array.isArray(fieldRegionalVariants)) {
        fieldRegionalVariants.forEach(function (_ref2, index) {
          var _itemMeta$fieldItem$k;
          var regionalVariantKey = _ref2.api_value;
          // When field is required and has reg variants, for example ["en", "fr", "de"] we should check only first variant "en" and skip "fr" and "de"
          var shouldCheckIsRequired = index === 0;
          errors = updateValidationErrors(errors, fieldItem.key, regionalVariantKey, itemMeta === null || itemMeta === void 0 ? void 0 : (_itemMeta$fieldItem$k = itemMeta[fieldItem.key]) === null || _itemMeta$fieldItem$k === void 0 ? void 0 : _itemMeta$fieldItem$k[regionalVariantKey], fieldItem.validation, shouldCheckIsRequired ? fieldItem.required : false, fieldItem.can_edit);
        });
      } else {
        errors = updateValidationErrors(errors, fieldItem.key, null, itemMeta[fieldItem.key], fieldItem.validation, fieldItem.required, fieldItem.can_edit);
      }
    });
  });
  var allErrors = errors;
  if (fileName) {
    var newNameIsInvalid = INVALID_FOLDER_OR_FILE_CHARS_REGEX.test(fileName);
    if (newNameIsInvalid) {
      allErrors = _objectSpread({
        name: i18n('explorerFileRenameInvalidNameDesc')
      }, allErrors);
    }
  }
  return {
    isValid: Object.keys(errors).length === 0,
    errors: allErrors
  };
};
export default validateItemMetadata;