payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
50 lines (49 loc) • 5.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _flatley = require("flatley");
const _reduceFieldsToValues = /*#__PURE__*/ _interop_require_default(require("./reduceFieldsToValues"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const getSiblingData = (fields, path)=>{
if (path.indexOf('.') === -1) {
return (0, _reduceFieldsToValues.default)(fields, true);
}
const siblingFields = {};
// Determine if the last segment of the path is an array-based row
const pathSegments = path.split('.');
const lastSegment = pathSegments[pathSegments.length - 1];
const lastSegmentIsRowIndex = !Number.isNaN(Number(lastSegment));
let parentFieldPath;
if (lastSegmentIsRowIndex) {
// If the last segment is a row index,
// the sibling data is that row's contents
// so create a parent field path that will
// retrieve all contents of that row index only
parentFieldPath = `${path}.`;
} else {
// Otherwise, the last path segment is a field name
// and it should be removed
parentFieldPath = path.substring(0, path.lastIndexOf('.') + 1);
}
Object.keys(fields).forEach((fieldKey)=>{
if (!fields[fieldKey].disableFormData && fieldKey.indexOf(parentFieldPath) === 0) {
siblingFields[fieldKey.replace(parentFieldPath, '')] = fields[fieldKey].value;
}
});
return (0, _flatley.unflatten)(siblingFields, {
safe: true
});
};
const _default = getSiblingData;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vZ2V0U2libGluZ0RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW5mbGF0dGVuIH0gZnJvbSAnZmxhdGxleSdcblxuaW1wb3J0IHR5cGUgeyBEYXRhLCBGaWVsZHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcblxuY29uc3QgZ2V0U2libGluZ0RhdGEgPSAoZmllbGRzOiBGaWVsZHMsIHBhdGg6IHN0cmluZyk6IERhdGEgPT4ge1xuICBpZiAocGF0aC5pbmRleE9mKCcuJykgPT09IC0xKSB7XG4gICAgcmV0dXJuIHJlZHVjZUZpZWxkc1RvVmFsdWVzKGZpZWxkcywgdHJ1ZSlcbiAgfVxuICBjb25zdCBzaWJsaW5nRmllbGRzID0ge31cblxuICAvLyBEZXRlcm1pbmUgaWYgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgcGF0aCBpcyBhbiBhcnJheS1iYXNlZCByb3dcbiAgY29uc3QgcGF0aFNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLicpXG4gIGNvbnN0IGxhc3RTZWdtZW50ID0gcGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAxXVxuICBjb25zdCBsYXN0U2VnbWVudElzUm93SW5kZXggPSAhTnVtYmVyLmlzTmFOKE51bWJlcihsYXN0U2VnbWVudCkpXG5cbiAgbGV0IHBhcmVudEZpZWxkUGF0aDogc3RyaW5nXG5cbiAgaWYgKGxhc3RTZWdtZW50SXNSb3dJbmRleCkge1xuICAgIC8vIElmIHRoZSBsYXN0IHNlZ21lbnQgaXMgYSByb3cgaW5kZXgsXG4gICAgLy8gdGhlIHNpYmxpbmcgZGF0YSBpcyB0aGF0IHJvdydzIGNvbnRlbnRzXG4gICAgLy8gc28gY3JlYXRlIGEgcGFyZW50IGZpZWxkIHBhdGggdGhhdCB3aWxsXG4gICAgLy8gcmV0cmlldmUgYWxsIGNvbnRlbnRzIG9mIHRoYXQgcm93IGluZGV4IG9ubHlcbiAgICBwYXJlbnRGaWVsZFBhdGggPSBgJHtwYXRofS5gXG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlLCB0aGUgbGFzdCBwYXRoIHNlZ21lbnQgaXMgYSBmaWVsZCBuYW1lXG4gICAgLy8gYW5kIGl0IHNob3VsZCBiZSByZW1vdmVkXG4gICAgcGFyZW50RmllbGRQYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgcGF0aC5sYXN0SW5kZXhPZignLicpICsgMSlcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGZpZWxkcykuZm9yRWFjaCgoZmllbGRLZXkpID0+IHtcbiAgICBpZiAoIWZpZWxkc1tmaWVsZEtleV0uZGlzYWJsZUZvcm1EYXRhICYmIGZpZWxkS2V5LmluZGV4T2YocGFyZW50RmllbGRQYXRoKSA9PT0gMCkge1xuICAgICAgc2libGluZ0ZpZWxkc1tmaWVsZEtleS5yZXBsYWNlKHBhcmVudEZpZWxkUGF0aCwgJycpXSA9IGZpZWxkc1tmaWVsZEtleV0udmFsdWVcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHVuZmxhdHRlbihzaWJsaW5nRmllbGRzLCB7IHNhZmU6IHRydWUgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0U2libGluZ0RhdGFcbiJdLCJuYW1lcyI6WyJnZXRTaWJsaW5nRGF0YSIsImZpZWxkcyIsInBhdGgiLCJpbmRleE9mIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJzaWJsaW5nRmllbGRzIiwicGF0aFNlZ21lbnRzIiwic3BsaXQiLCJsYXN0U2VnbWVudCIsImxlbmd0aCIsImxhc3RTZWdtZW50SXNSb3dJbmRleCIsIk51bWJlciIsImlzTmFOIiwicGFyZW50RmllbGRQYXRoIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImZpZWxkS2V5IiwiZGlzYWJsZUZvcm1EYXRhIiwicmVwbGFjZSIsInZhbHVlIiwidW5mbGF0dGVuIiwic2FmZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF3Q0E7OztlQUFBOzs7eUJBeEMwQjs2RUFJTzs7Ozs7O0FBRWpDLE1BQU1BLGlCQUFpQixDQUFDQyxRQUFnQkM7SUFDdEMsSUFBSUEsS0FBS0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQzVCLE9BQU9DLElBQUFBLDZCQUFvQixFQUFDSCxRQUFRO0lBQ3RDO0lBQ0EsTUFBTUksZ0JBQWdCLENBQUM7SUFFdkIsa0VBQWtFO0lBQ2xFLE1BQU1DLGVBQWVKLEtBQUtLLEtBQUssQ0FBQztJQUNoQyxNQUFNQyxjQUFjRixZQUFZLENBQUNBLGFBQWFHLE1BQU0sR0FBRyxFQUFFO0lBQ3pELE1BQU1DLHdCQUF3QixDQUFDQyxPQUFPQyxLQUFLLENBQUNELE9BQU9IO0lBRW5ELElBQUlLO0lBRUosSUFBSUgsdUJBQXVCO1FBQ3pCLHNDQUFzQztRQUN0QywwQ0FBMEM7UUFDMUMsMENBQTBDO1FBQzFDLCtDQUErQztRQUMvQ0csa0JBQWtCLENBQUMsRUFBRVgsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTztRQUNMLG1EQUFtRDtRQUNuRCwyQkFBMkI7UUFDM0JXLGtCQUFrQlgsS0FBS1ksU0FBUyxDQUFDLEdBQUdaLEtBQUthLFdBQVcsQ0FBQyxPQUFPO0lBQzlEO0lBRUFDLE9BQU9DLElBQUksQ0FBQ2hCLFFBQVFpQixPQUFPLENBQUMsQ0FBQ0M7UUFDM0IsSUFBSSxDQUFDbEIsTUFBTSxDQUFDa0IsU0FBUyxDQUFDQyxlQUFlLElBQUlELFNBQVNoQixPQUFPLENBQUNVLHFCQUFxQixHQUFHO1lBQ2hGUixhQUFhLENBQUNjLFNBQVNFLE9BQU8sQ0FBQ1IsaUJBQWlCLElBQUksR0FBR1osTUFBTSxDQUFDa0IsU0FBUyxDQUFDRyxLQUFLO1FBQy9FO0lBQ0Y7SUFFQSxPQUFPQyxJQUFBQSxrQkFBUyxFQUFDbEIsZUFBZTtRQUFFbUIsTUFBTTtJQUFLO0FBQy9DO01BRUEsV0FBZXhCIn0=