oak-domain/lib/utils/lodash.js

76 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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) {
if (array.length === 0) {
return undefined;
}
return array.reduce((prev, current) => mergeConcatArray(prev, current));
}
exports.mergeConcatMany = mergeConcatMany;