Server : nginx/1.20.1 System : Linux ccpf-production-2021 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 User : forge ( 1000) PHP Version : 7.4.21 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/node_modules/gulp/node_modules/mixin-deep/ |
'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;