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