🐛 Update: Added support for the 'find' command in settings.local.json. Enhanced logging for various modules, including initialization and performance metrics. Improved SQLite database optimization and ensured better tracking of user interactions and system processes. 📚
This commit is contained in:
64
network-visualization/node_modules/mixin-deep/index.js
generated
vendored
Normal file
64
network-visualization/node_modules/mixin-deep/index.js
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
'use strict';
|
||||
|
||||
var isExtendable = require('is-extendable');
|
||||
var forIn = require('for-in');
|
||||
|
||||
function mixinDeep(target, objects) {
|
||||
var len = arguments.length, i = 0;
|
||||
while (++i < len) {
|
||||
var obj = arguments[i];
|
||||
if (isObject(obj)) {
|
||||
forIn(obj, copy, target);
|
||||
}
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy properties from the source object to the
|
||||
* target object.
|
||||
*
|
||||
* @param {*} `val`
|
||||
* @param {String} `key`
|
||||
*/
|
||||
|
||||
function copy(val, key) {
|
||||
if (!isValidKey(key)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var obj = this[key];
|
||||
if (isObject(val) && isObject(obj)) {
|
||||
mixinDeep(obj, val);
|
||||
} else {
|
||||
this[key] = val;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if `val` is an object or function.
|
||||
*
|
||||
* @param {any} val
|
||||
* @return {Boolean}
|
||||
*/
|
||||
|
||||
function isObject(val) {
|
||||
return isExtendable(val) && !Array.isArray(val);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if `key` is a valid key to use when extending objects.
|
||||
*
|
||||
* @param {String} `key`
|
||||
* @return {Boolean}
|
||||
*/
|
||||
|
||||
function isValidKey(key) {
|
||||
return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';
|
||||
};
|
||||
|
||||
/**
|
||||
* Expose `mixinDeep`
|
||||
*/
|
||||
|
||||
module.exports = mixinDeep;
|
Reference in New Issue
Block a user