UNPKG

1.23 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.deepAssign = deepAssign;
7function isObject(x) {
8 if (Array.isArray(x)) {
9 return false;
10 }
11 const type = typeof x;
12 return type === "object" || type === "function";
13}
14function assignKey(target, from, key) {
15 const value = from[key];
16 // https://github.com/electron-userland/electron-builder/pull/562
17 if (value === undefined) {
18 return;
19 }
20 const prevValue = target[key];
21 if (prevValue == null || value == null || !isObject(prevValue) || !isObject(value)) {
22 target[key] = value;
23 } else {
24 target[key] = assign(prevValue, value);
25 }
26}
27function assign(to, from) {
28 if (to !== from) {
29 for (const key of Object.getOwnPropertyNames(from)) {
30 assignKey(to, from, key);
31 }
32 }
33 return to;
34}
35function deepAssign(target) {
36 for (var _len = arguments.length, objects = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
37 objects[_key - 1] = arguments[_key];
38 }
39
40 for (const o of objects) {
41 if (o != null) {
42 assign(target, o);
43 }
44 }
45 return target;
46}
47//# sourceMappingURL=deepAssign.js.map
\No newline at end of file