UNPKG

graphql-compose

Version:

GraphQL schema builder from different data sources with middleware extensions.

66 lines (52 loc) 2.04 kB
'use strict'; var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _iterator = require('babel-runtime/core-js/symbol/iterator'); var _iterator2 = _interopRequireDefault(_iterator); var _symbol = require('babel-runtime/core-js/symbol'); var _symbol2 = _interopRequireDefault(_symbol); Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = deepmerge; /* eslint-disable prefer-template, no-param-reassign, no-lonely-if */ // https://github.com/KyleAMathews/deepmerge/blob/master/index.js function deepmerge(target, src) { var array = Array.isArray(src); var dst = array && [] || {}; if (array) { target = target || []; dst = dst.concat(target); src.forEach(function (e, i) { if (typeof dst[i] === 'undefined') { dst[i] = e; } else if ((typeof e === 'undefined' ? 'undefined' : _typeof(e)) === 'object') { dst[i] = deepmerge(target[i], e); } else { if (target.indexOf(e) === -1) { dst.push(e); } } }); } else { if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object') { (0, _keys2.default)(target).forEach(function (key) { dst[key] = target[key]; }); } (0, _keys2.default)(src).forEach(function (key) { if (_typeof(src[key]) !== 'object' || !src[key]) { dst[key] = src[key]; } else { if (!target[key]) { dst[key] = src[key]; } else { dst[key] = deepmerge(target[key], src[key]); } } }); } return dst; }