1 | import { default as isObject } from "./isObject";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | function validObject(obj) {
|
10 | if (typeof window === "undefined") return true;else return obj !== window && obj !== document;
|
11 | }
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | function assign() {
|
24 | var _arguments = arguments;
|
25 | var target = arguments.length <= 0 ? undefined : arguments[0];
|
26 |
|
27 | var _loop = function _loop(i) {
|
28 | var source = i < 0 || _arguments.length <= i ? undefined : _arguments[i];
|
29 | Object.keys(source).forEach(function (prop) {
|
30 | var value = source[prop];
|
31 |
|
32 | if (isObject(value) && validObject(value)) {
|
33 | if (target.hasOwnProperty(prop) && isObject(target[prop])) target[prop] = assign({}, target[prop], value);else target[prop] = assign({}, value);
|
34 | } else if (Array.isArray(value)) target[prop] = value.slice();else target[prop] = value;
|
35 | });
|
36 | };
|
37 |
|
38 | for (var i = 1; i < arguments.length; i++) {
|
39 | _loop(i);
|
40 | }
|
41 |
|
42 | return target;
|
43 | }
|
44 |
|
45 | export default assign; |
\ | No newline at end of file |