UNPKG

1.51 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var is_array_1 = (0, tslib_1.__importDefault)(require("./is-array"));
5var is_plain_object_1 = (0, tslib_1.__importDefault)(require("./is-plain-object"));
6var MAX_MIX_LEVEL = 5;
7function _deepMix(dist, src, level, maxLevel) {
8 level = level || 0;
9 maxLevel = maxLevel || MAX_MIX_LEVEL;
10 for (var key in src) {
11 if (src.hasOwnProperty(key)) {
12 var value = src[key];
13 if (value !== null && (0, is_plain_object_1.default)(value)) {
14 if (!(0, is_plain_object_1.default)(dist[key])) {
15 dist[key] = {};
16 }
17 if (level < maxLevel) {
18 _deepMix(dist[key], value, level + 1, maxLevel);
19 }
20 else {
21 dist[key] = src[key];
22 }
23 }
24 else if ((0, is_array_1.default)(value)) {
25 dist[key] = [];
26 dist[key] = dist[key].concat(value);
27 }
28 else if (value !== undefined) {
29 dist[key] = value;
30 }
31 }
32 }
33}
34// todo 重写
35var deepMix = function (rst) {
36 var args = [];
37 for (var _i = 1; _i < arguments.length; _i++) {
38 args[_i - 1] = arguments[_i];
39 }
40 for (var i = 0; i < args.length; i += 1) {
41 _deepMix(rst, args[i]);
42 }
43 return rst;
44};
45exports.default = deepMix;
46//# sourceMappingURL=deep-mix.js.map
\No newline at end of file