UNPKG

react-blips

Version:
48 lines (31 loc) 2.01 kB
'use strict'; exports.__esModule = true; 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; }; exports.computeNextState = computeNextState; var _isNil = require('./isNil'); var _when = require('./when'); var _isEmpty = require('./isEmpty'); var _omit = require('./omit'); var _removeEmptyOrNilProps = require('./removeEmptyOrNilProps'); var _mergeErrors = require('./mergeErrors'); 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; } 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 = (0, _mergeErrors.mergeErrors)(errors)(errorsObject)); return _extends({}, acc, (_extends2 = {}, _extends2[dataKey] = _extends({}, acc[dataKey] || {}, (0, _when.when)(_isNil.isNil, {}, data)), _extends2[mutationsKey] = _extends({}, acc[mutationsKey] || {}, (0, _when.when)(_isNil.isNil, {}, res[mutationsKey])), _extends2[queriesKey] = _extends({}, acc[queriesKey] || {}, (0, _when.when)(_isNil.isNil, {}, res[queriesKey])), _extends2)); }, base); if (!(0, _isEmpty.isEmpty)(errorsObject)) { update[dataKey] = (0, _omit.omit)(Object.keys(errorsObject), update[dataKey]); update[dataKey]['errors'] = errorsObject; } return (0, _removeEmptyOrNilProps.removeEmptyOrNilProps)(update); }