blips
Version:
State management for the GraphQL heads
18 lines (14 loc) • 852 B
JavaScript
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; };
import { isEmpty } from './isEmpty';
import { isNil } from './isNil';
import { isType } from './isType';
import { when } from './when';
export function mergeErrorList(errors) {
var merged = errors.reduce(function (obj, err) {
var _extends2;
if (isNil(err) || isEmpty(err)) return obj;
var operationName = err.path ? err.path[0] : isType('object', err) ? err.constructor.name : 'Errors';
return _extends({}, obj, (_extends2 = {}, _extends2[operationName] = [].concat(obj[operationName] || [], [err]), _extends2));
}, {});
return when(isEmpty, function () {}, merged);
}