UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

50 lines (49 loc) 5.31 kB
"use strict"; 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=