payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
51 lines (50 loc) • 4.72 kB
JavaScript
;
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=