UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

51 lines (50 loc) 4.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _deepmerge = /*#__PURE__*/ _interop_require_default(require("deepmerge")); const _types = require("./config/types"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const mergeBaseFields = (fields, baseFields)=>{ const mergedFields = [ ...fields || [] ]; baseFields.forEach((baseField)=>{ let matchedIndex = null; if ((0, _types.fieldAffectsData)(baseField)) { const match = mergedFields.find((field, i)=>{ if ((0, _types.fieldAffectsData)(field) && field.name === baseField.name) { matchedIndex = i; return true; } return false; }); if (match) { const matchCopy = { ...match }; mergedFields.splice(matchedIndex, 1); const mergedField = (0, _deepmerge.default)(baseField, matchCopy); if ((0, _types.fieldHasSubFields)(baseField) && (0, _types.fieldHasSubFields)(matchCopy)) { mergedField.fields = mergeBaseFields(matchCopy.fields, baseField.fields); } mergedFields.push(mergedField); } else { mergedFields.push(baseField); } } }); return mergedFields; }; const _default = mergeBaseFields; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvbWVyZ2VCYXNlRmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgRmllbGQsIEZpZWxkV2l0aFN1YkZpZWxkcyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBmaWVsZEhhc1N1YkZpZWxkcyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5jb25zdCBtZXJnZUJhc2VGaWVsZHMgPSAoZmllbGRzOiBGaWVsZFtdLCBiYXNlRmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSA9PiB7XG4gIGNvbnN0IG1lcmdlZEZpZWxkcyA9IFsuLi4oZmllbGRzIHx8IFtdKV1cblxuICBiYXNlRmllbGRzLmZvckVhY2goKGJhc2VGaWVsZCkgPT4ge1xuICAgIGxldCBtYXRjaGVkSW5kZXggPSBudWxsXG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShiYXNlRmllbGQpKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IG1lcmdlZEZpZWxkcy5maW5kKChmaWVsZCwgaSkgPT4ge1xuICAgICAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gYmFzZUZpZWxkLm5hbWUpIHtcbiAgICAgICAgICBtYXRjaGVkSW5kZXggPSBpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfSlcblxuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoQ29weTogRmllbGQgPSB7IC4uLm1hdGNoIH1cbiAgICAgICAgbWVyZ2VkRmllbGRzLnNwbGljZShtYXRjaGVkSW5kZXgsIDEpXG5cbiAgICAgICAgY29uc3QgbWVyZ2VkRmllbGQgPSBtZXJnZTxGaWVsZD4oYmFzZUZpZWxkLCBtYXRjaENvcHkpXG5cbiAgICAgICAgaWYgKGZpZWxkSGFzU3ViRmllbGRzKGJhc2VGaWVsZCkgJiYgZmllbGRIYXNTdWJGaWVsZHMobWF0Y2hDb3B5KSkge1xuICAgICAgICAgIDsobWVyZ2VkRmllbGQgYXMgRmllbGRXaXRoU3ViRmllbGRzKS5maWVsZHMgPSBtZXJnZUJhc2VGaWVsZHMoXG4gICAgICAgICAgICBtYXRjaENvcHkuZmllbGRzLFxuICAgICAgICAgICAgYmFzZUZpZWxkLmZpZWxkcyxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBtZXJnZWRGaWVsZHMucHVzaChtZXJnZWRGaWVsZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lcmdlZEZpZWxkcy5wdXNoKGJhc2VGaWVsZClcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG1lcmdlZEZpZWxkc1xufVxuXG5leHBvcnQgZGVmYXVsdCBtZXJnZUJhc2VGaWVsZHNcbiJdLCJuYW1lcyI6WyJtZXJnZUJhc2VGaWVsZHMiLCJmaWVsZHMiLCJiYXNlRmllbGRzIiwibWVyZ2VkRmllbGRzIiwiZm9yRWFjaCIsImJhc2VGaWVsZCIsIm1hdGNoZWRJbmRleCIsImZpZWxkQWZmZWN0c0RhdGEiLCJtYXRjaCIsImZpbmQiLCJmaWVsZCIsImkiLCJuYW1lIiwibWF0Y2hDb3B5Iiwic3BsaWNlIiwibWVyZ2VkRmllbGQiLCJtZXJnZSIsImZpZWxkSGFzU3ViRmllbGRzIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE2Q0E7OztlQUFBOzs7a0VBN0NrQjt1QkFJa0M7Ozs7OztBQUVwRCxNQUFNQSxrQkFBa0IsQ0FBQ0MsUUFBaUJDO0lBQ3hDLE1BQU1DLGVBQWU7V0FBS0YsVUFBVSxFQUFFO0tBQUU7SUFFeENDLFdBQVdFLE9BQU8sQ0FBQyxDQUFDQztRQUNsQixJQUFJQyxlQUFlO1FBRW5CLElBQUlDLElBQUFBLHVCQUFnQixFQUFDRixZQUFZO1lBQy9CLE1BQU1HLFFBQVFMLGFBQWFNLElBQUksQ0FBQyxDQUFDQyxPQUFPQztnQkFDdEMsSUFBSUosSUFBQUEsdUJBQWdCLEVBQUNHLFVBQVVBLE1BQU1FLElBQUksS0FBS1AsVUFBVU8sSUFBSSxFQUFFO29CQUM1RE4sZUFBZUs7b0JBQ2YsT0FBTztnQkFDVDtnQkFFQSxPQUFPO1lBQ1Q7WUFFQSxJQUFJSCxPQUFPO2dCQUNULE1BQU1LLFlBQW1CO29CQUFFLEdBQUdMLEtBQUs7Z0JBQUM7Z0JBQ3BDTCxhQUFhVyxNQUFNLENBQUNSLGNBQWM7Z0JBRWxDLE1BQU1TLGNBQWNDLElBQUFBLGtCQUFLLEVBQVFYLFdBQVdRO2dCQUU1QyxJQUFJSSxJQUFBQSx3QkFBaUIsRUFBQ1osY0FBY1ksSUFBQUEsd0JBQWlCLEVBQUNKLFlBQVk7b0JBQzlERSxZQUFtQ2QsTUFBTSxHQUFHRCxnQkFDNUNhLFVBQVVaLE1BQU0sRUFDaEJJLFVBQVVKLE1BQU07Z0JBRXBCO2dCQUVBRSxhQUFhZSxJQUFJLENBQUNIO1lBQ3BCLE9BQU87Z0JBQ0xaLGFBQWFlLElBQUksQ0FBQ2I7WUFDcEI7UUFDRjtJQUNGO0lBRUEsT0FBT0Y7QUFDVDtNQUVBLFdBQWVIIn0=