UNPKG

@reactant/context

Version:
106 lines (71 loc) 9.21 kB
"use strict"; require("core-js/modules/es.symbol"); require("core-js/modules/es.symbol.description"); require("core-js/modules/es.symbol.iterator"); require("core-js/modules/es.array.concat"); require("core-js/modules/es.array.filter"); require("core-js/modules/es.array.for-each"); require("core-js/modules/es.array.iterator"); require("core-js/modules/es.object.get-own-property-descriptor"); require("core-js/modules/es.object.get-own-property-descriptors"); require("core-js/modules/es.object.keys"); require("core-js/modules/es.object.to-string"); require("core-js/modules/es.string.iterator"); require("core-js/modules/web.dom-collections.for-each"); require("core-js/modules/web.dom-collections.iterator"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = merge; var _lodash = _interopRequireDefault(require("lodash.clone")); var _lodash2 = _interopRequireDefault(require("lodash.mergewith")); var _lodash3 = _interopRequireDefault(require("lodash.uniq")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function merge(config, modifier) { var partialOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { args[_key - 3] = arguments[_key]; } var options = _objectSpread({ _level: 0, concat: true, dedup: true, level: 1, mergeModifierFunction: false }, partialOptions); if (config === null) return modifier; if (modifier === null) return config; config = (0, _lodash.default)(config); if (typeof modifier === 'function') { if (options._level > options.level) return modifier; var modifiedConfig = modifier.apply(void 0, [config || {}].concat(args)); if (options.mergeModifierFunction) { return merge.apply(void 0, [config, modifiedConfig, options].concat(args)); } return modifiedConfig; } if (Array.isArray(config) || Array.isArray(modifier) ? Array.isArray(config) !== Array.isArray(modifier) : _typeof(config) !== _typeof(modifier)) { return modifier; } if (Array.isArray(config)) { if (options.concat) { var configArray = config.concat(modifier); if (options.dedup) return (0, _lodash3.default)(configArray); return configArray; } return modifier; } if (_typeof(config) === 'object') { return (0, _lodash2.default)(config, modifier, function (oldValue, newValue) { return merge.apply(void 0, [oldValue, newValue, _objectSpread(_objectSpread({}, options), {}, { _level: ++options._level })].concat(args)); }); } return modifier; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZS50cyJdLCJuYW1lcyI6WyJtZXJnZSIsImNvbmZpZyIsIm1vZGlmaWVyIiwicGFydGlhbE9wdGlvbnMiLCJhcmdzIiwib3B0aW9ucyIsIl9sZXZlbCIsImNvbmNhdCIsImRlZHVwIiwibGV2ZWwiLCJtZXJnZU1vZGlmaWVyRnVuY3Rpb24iLCJtb2RpZmllZENvbmZpZyIsIkFycmF5IiwiaXNBcnJheSIsImNvbmZpZ0FycmF5Iiwib2xkVmFsdWUiLCJuZXdWYWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBR2UsU0FBU0EsS0FBVCxDQUNiQyxNQURhLEVBRWJDLFFBRmEsRUFLTDtBQUFBLE1BRlJDLGNBRVEsdUVBRmdDLEVBRWhDOztBQUFBLG9DQURMQyxJQUNLO0FBRExBLElBQUFBLElBQ0s7QUFBQTs7QUFDUixNQUFNQyxPQUFxQjtBQUN6QkMsSUFBQUEsTUFBTSxFQUFFLENBRGlCO0FBRXpCQyxJQUFBQSxNQUFNLEVBQUUsSUFGaUI7QUFHekJDLElBQUFBLEtBQUssRUFBRSxJQUhrQjtBQUl6QkMsSUFBQUEsS0FBSyxFQUFFLENBSmtCO0FBS3pCQyxJQUFBQSxxQkFBcUIsRUFBRTtBQUxFLEtBTXRCUCxjQU5zQixDQUEzQjs7QUFRQSxNQUFJRixNQUFNLEtBQUssSUFBZixFQUFxQixPQUFRQyxRQUFSO0FBQ3JCLE1BQUlBLFFBQVEsS0FBSyxJQUFqQixFQUF1QixPQUFRRCxNQUFSO0FBQ3ZCQSxFQUFBQSxNQUFNLEdBQUcscUJBQU1BLE1BQU4sQ0FBVDs7QUFDQSxNQUFJLE9BQU9DLFFBQVAsS0FBb0IsVUFBeEIsRUFBb0M7QUFDbEMsUUFBSUcsT0FBTyxDQUFDQyxNQUFSLEdBQWlCRCxPQUFPLENBQUNJLEtBQTdCLEVBQW9DLE9BQVFQLFFBQVI7QUFDcEMsUUFBTVMsY0FBYyxHQUFHVCxRQUFRLE1BQVIsVUFBaUJELE1BQU0sSUFBSSxFQUEzQixTQUFrQ0csSUFBbEMsRUFBdkI7O0FBQ0EsUUFBSUMsT0FBTyxDQUFDSyxxQkFBWixFQUFtQztBQUNqQyxhQUFPVixLQUFLLE1BQUwsVUFBY0MsTUFBZCxFQUFzQlUsY0FBdEIsRUFBc0NOLE9BQXRDLFNBQWtERCxJQUFsRCxFQUFQO0FBQ0Q7O0FBQ0QsV0FBT08sY0FBUDtBQUNEOztBQUNELE1BQ0VDLEtBQUssQ0FBQ0MsT0FBTixDQUFjWixNQUFkLEtBQXlCVyxLQUFLLENBQUNDLE9BQU4sQ0FBY1gsUUFBZCxDQUF6QixHQUNJVSxLQUFLLENBQUNDLE9BQU4sQ0FBY1osTUFBZCxNQUEwQlcsS0FBSyxDQUFDQyxPQUFOLENBQWNYLFFBQWQsQ0FEOUIsR0FFSSxRQUFPRCxNQUFQLGNBQXlCQyxRQUF6QixDQUhOLEVBSUU7QUFDQSxXQUFRQSxRQUFSO0FBQ0Q7O0FBQ0QsTUFBSVUsS0FBSyxDQUFDQyxPQUFOLENBQWNaLE1BQWQsQ0FBSixFQUEyQjtBQUN6QixRQUFJSSxPQUFPLENBQUNFLE1BQVosRUFBb0I7QUFDbEIsVUFBTU8sV0FBVyxHQUFHYixNQUFNLENBQUNNLE1BQVAsQ0FBY0wsUUFBZCxDQUFwQjtBQUNBLFVBQUlHLE9BQU8sQ0FBQ0csS0FBWixFQUFtQixPQUFRLHNCQUFLTSxXQUFMLENBQVI7QUFDbkIsYUFBUUEsV0FBUjtBQUNEOztBQUNELFdBQVFaLFFBQVI7QUFDRDs7QUFDRCxNQUFJLFFBQU9ELE1BQVAsTUFBa0IsUUFBdEIsRUFBZ0M7QUFDOUIsV0FBTyxzQkFBVUEsTUFBVixFQUFrQkMsUUFBbEIsRUFBNEIsVUFBQ2EsUUFBRCxFQUFnQkMsUUFBaEIsRUFBdUM7QUFDeEUsYUFBT2hCLEtBQUssTUFBTCxVQUNMZSxRQURLLEVBRUxDLFFBRkssa0NBSUFYLE9BSkE7QUFLSEMsUUFBQUEsTUFBTSxFQUFFLEVBQUVELE9BQU8sQ0FBQ0M7QUFMZixpQkFPRkYsSUFQRSxFQUFQO0FBU0QsS0FWTSxDQUFQO0FBV0Q7O0FBQ0QsU0FBUUYsUUFBUjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lIGZyb20gJ2xvZGFzaC5jbG9uZSc7XG5pbXBvcnQgbWVyZ2VXaXRoIGZyb20gJ2xvZGFzaC5tZXJnZXdpdGgnO1xuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLnVuaXEnO1xuaW1wb3J0IHsgTWVyZ2VNb2RpZmllciwgTWVyZ2VPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlPENvbmZpZz4oXG4gIGNvbmZpZzogQ29uZmlnLFxuICBtb2RpZmllcjogUGFydGlhbDxDb25maWc+IHwgTWVyZ2VNb2RpZmllcixcbiAgcGFydGlhbE9wdGlvbnM6IFBhcnRpYWw8TWVyZ2VPcHRpb25zPiA9IHt9LFxuICAuLi5hcmdzOiBhbnlbXVxuKTogQ29uZmlnIHtcbiAgY29uc3Qgb3B0aW9uczogTWVyZ2VPcHRpb25zID0ge1xuICAgIF9sZXZlbDogMCxcbiAgICBjb25jYXQ6IHRydWUsXG4gICAgZGVkdXA6IHRydWUsXG4gICAgbGV2ZWw6IDEsXG4gICAgbWVyZ2VNb2RpZmllckZ1bmN0aW9uOiBmYWxzZSxcbiAgICAuLi5wYXJ0aWFsT3B0aW9uc1xuICB9O1xuICBpZiAoY29uZmlnID09PSBudWxsKSByZXR1cm4gKG1vZGlmaWVyIGFzIHVua25vd24pIGFzIENvbmZpZztcbiAgaWYgKG1vZGlmaWVyID09PSBudWxsKSByZXR1cm4gKGNvbmZpZyBhcyB1bmtub3duKSBhcyBDb25maWc7XG4gIGNvbmZpZyA9IGNsb25lKGNvbmZpZyk7XG4gIGlmICh0eXBlb2YgbW9kaWZpZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAob3B0aW9ucy5fbGV2ZWwgPiBvcHRpb25zLmxldmVsKSByZXR1cm4gKG1vZGlmaWVyIGFzIHVua25vd24pIGFzIENvbmZpZztcbiAgICBjb25zdCBtb2RpZmllZENvbmZpZyA9IG1vZGlmaWVyPENvbmZpZz4oY29uZmlnIHx8IHt9LCAuLi5hcmdzKTtcbiAgICBpZiAob3B0aW9ucy5tZXJnZU1vZGlmaWVyRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiBtZXJnZTxDb25maWc+KGNvbmZpZywgbW9kaWZpZWRDb25maWcsIG9wdGlvbnMsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kaWZpZWRDb25maWcgYXMgQ29uZmlnO1xuICB9XG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KGNvbmZpZykgfHwgQXJyYXkuaXNBcnJheShtb2RpZmllcilcbiAgICAgID8gQXJyYXkuaXNBcnJheShjb25maWcpICE9PSBBcnJheS5pc0FycmF5KG1vZGlmaWVyKVxuICAgICAgOiB0eXBlb2YgY29uZmlnICE9PSB0eXBlb2YgbW9kaWZpZXJcbiAgKSB7XG4gICAgcmV0dXJuIChtb2RpZmllciBhcyB1bmtub3duKSBhcyBDb25maWc7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnKSkge1xuICAgIGlmIChvcHRpb25zLmNvbmNhdCkge1xuICAgICAgY29uc3QgY29uZmlnQXJyYXkgPSBjb25maWcuY29uY2F0KG1vZGlmaWVyKTtcbiAgICAgIGlmIChvcHRpb25zLmRlZHVwKSByZXR1cm4gKHVuaXEoY29uZmlnQXJyYXkpIGFzIHVua25vd24pIGFzIENvbmZpZztcbiAgICAgIHJldHVybiAoY29uZmlnQXJyYXkgYXMgdW5rbm93bikgYXMgQ29uZmlnO1xuICAgIH1cbiAgICByZXR1cm4gKG1vZGlmaWVyIGFzIHVua25vd24pIGFzIENvbmZpZztcbiAgfVxuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbWVyZ2VXaXRoKGNvbmZpZywgbW9kaWZpZXIsIChvbGRWYWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KTogYW55ID0+IHtcbiAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgIG5ld1ZhbHVlLFxuICAgICAgICB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBfbGV2ZWw6ICsrb3B0aW9ucy5fbGV2ZWxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gKG1vZGlmaWVyIGFzIHVua25vd24pIGFzIENvbmZpZztcbn1cbiJdfQ==