UNPKG

1.24 kBJavaScriptView Raw
1"use strict";
2/**
3 * Sigma.js Utils
4 * ===============
5 *
6 * Various helper functions & classes used throughout the library.
7 */
8exports.__esModule = true;
9exports.assign = exports.isPlainObject = void 0;
10/**
11 * Checks whether the given value is a plain object.
12 *
13 * @param {mixed} value - Target value.
14 * @return {boolean}
15 */
16function isPlainObject(value) {
17 return typeof value === "object" && value !== null && value.constructor === Object;
18}
19exports.isPlainObject = isPlainObject;
20/**
21 * Very simple recursive Object.assign-like function.
22 *
23 * @param {object} target - First object.
24 * @param {object} [...objects] - Objects to merge.
25 * @return {object}
26 */
27function assign(target) {
28 var objects = [];
29 for (var _i = 1; _i < arguments.length; _i++) {
30 objects[_i - 1] = arguments[_i];
31 }
32 target = target || {};
33 for (var i = 0, l = objects.length; i < l; i++) {
34 var o = objects[i];
35 if (!o)
36 continue;
37 for (var k in o) {
38 if (isPlainObject(o[k])) {
39 target[k] = assign(target[k], o[k]);
40 }
41 else {
42 target[k] = o[k];
43 }
44 }
45 }
46 return target;
47}
48exports.assign = assign;