UNPKG

react-blips

Version:
38 lines (28 loc) 1.79 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } import { isNil } from './isNil'; import { when } from './when'; import { isEmpty } from './isEmpty'; import { omit } from './omit'; import { removeEmptyOrNilProps } from './removeEmptyOrNilProps'; import { mergeErrors } from './mergeErrors'; export function computeNextState(list, _ref) { var dataKey = _ref.dataKey, queriesKey = _ref.queriesKey, mutationsKey = _ref.mutationsKey; var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var errorsObject = {}; var update = list.reduce(function (acc, _ref2) { var _extends2; var errors = _ref2.errors, data = _ref2.data, res = _objectWithoutProperties(_ref2, ['errors', 'data']); errors && (errorsObject = mergeErrors(errors)(errorsObject)); return _extends({}, acc, (_extends2 = {}, _extends2[dataKey] = _extends({}, acc[dataKey] || {}, when(isNil, {}, data)), _extends2[mutationsKey] = _extends({}, acc[mutationsKey] || {}, when(isNil, {}, res[mutationsKey])), _extends2[queriesKey] = _extends({}, acc[queriesKey] || {}, when(isNil, {}, res[queriesKey])), _extends2)); }, base); if (!isEmpty(errorsObject)) { update[dataKey] = omit(Object.keys(errorsObject), update[dataKey]); update[dataKey]['errors'] = errorsObject; } return removeEmptyOrNilProps(update); }