1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var is_array_1 = (0, tslib_1.__importDefault)(require("./is-array"));
|
5 | var is_plain_object_1 = (0, tslib_1.__importDefault)(require("./is-plain-object"));
|
6 | var MAX_MIX_LEVEL = 5;
|
7 | function _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 |
|
35 | var 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 | };
|
45 | exports.default = deepMix;
|
46 |
|
\ | No newline at end of file |