"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pullAll = exports.unionBy = exports.groupBy = exports.differenceBy = exports.difference = exports.union = exports.isEqual = exports.pick = exports.cloneDeep = exports.mergeConcatMany = exports.mergeConcatArray = exports.mergeWith = exports.merge = exports.omit = exports.intersectionBy = exports.intersection = exports.set = exports.get = exports.uniqBy = exports.uniq = exports.pull = exports.unset = void 0; const tslib_1 = require("tslib"); /** * 避免lodash打包体积过大 * 像assign, keys尽量使用Object的函数 */ const unset_1 = tslib_1.__importDefault(require("lodash/unset")); exports.unset = unset_1.default; const uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy")); exports.uniqBy = uniqBy_1.default; const pull_1 = tslib_1.__importDefault(require("lodash/pull")); exports.pull = pull_1.default; const uniq_1 = tslib_1.__importDefault(require("lodash/uniq")); exports.uniq = uniq_1.default; const get_1 = tslib_1.__importDefault(require("lodash/get")); exports.get = get_1.default; const set_1 = tslib_1.__importDefault(require("lodash/set")); exports.set = set_1.default; const intersection_1 = tslib_1.__importDefault(require("lodash/intersection")); exports.intersection = intersection_1.default; const intersectionBy_1 = tslib_1.__importDefault(require("lodash/intersectionBy")); exports.intersectionBy = intersectionBy_1.default; const omit_1 = tslib_1.__importDefault(require("lodash/omit")); exports.omit = omit_1.default; const merge_1 = tslib_1.__importDefault(require("lodash/merge")); exports.merge = merge_1.default; const mergeWith_1 = tslib_1.__importDefault(require("lodash/mergeWith")); exports.mergeWith = mergeWith_1.default; const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep")); exports.cloneDeep = cloneDeep_1.default; const pick_1 = tslib_1.__importDefault(require("lodash/pick")); exports.pick = pick_1.default; const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual")); exports.isEqual = isEqual_1.default; const union_1 = tslib_1.__importDefault(require("lodash/union")); exports.union = union_1.default; const difference_1 = tslib_1.__importDefault(require("lodash/difference")); exports.difference = difference_1.default; const differenceBy_1 = tslib_1.__importDefault(require("lodash/differenceBy")); exports.differenceBy = differenceBy_1.default; const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy")); exports.groupBy = groupBy_1.default; const unionBy_1 = tslib_1.__importDefault(require("lodash/unionBy")); exports.unionBy = unionBy_1.default; const pullAll_1 = tslib_1.__importDefault(require("lodash/pullAll")); exports.pullAll = pullAll_1.default; const assert_1 = tslib_1.__importDefault(require("assert")); /** * merge两个对象,遇到array时使用连接合并 * @param object * @param source * @returns */ function mergeConcatArray(object, source) { if (object instanceof Array) { (0, assert_1.default)(source instanceof Array, '合并的对象必须结构一致'); return (0, uniq_1.default)(object.concat(source)); } return (0, mergeWith_1.default)(object, source, (objValue, srcValue) => { if (objValue instanceof Array) { (0, assert_1.default)(srcValue instanceof Array, '合并的对象必须结构一致'); return (0, uniq_1.default)(objValue.concat(srcValue)); } }); } exports.mergeConcatArray = mergeConcatArray; function mergeConcatMany(array) { return array.reduce((prev, current) => mergeConcatArray(prev, current)); } exports.mergeConcatMany = mergeConcatMany;