UNPKG

1.38 kBJavaScriptView Raw
1"use strict";
2exports.__esModule = true;
3var is_array_1 = require("./is-array");
4var is_plain_object_1 = require("./is-plain-object");
5var MAX_MIX_LEVEL = 5;
6function _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// todo 重写
34var 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};
44exports["default"] = deepMix;
45//# sourceMappingURL=deep-mix.js.map
\No newline at end of file