mirror of
https://github.com/actions/setup-python.git
synced 2025-06-15 00:37:13 +02:00
Initial pass
This commit is contained in:
53
node_modules/mixin-deep/index.js
generated
vendored
Normal file
53
node_modules/mixin-deep/index.js
generated
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
'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 (key === '__proto__') {
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Expose `mixinDeep`
|
||||
*/
|
||||
|
||||
module.exports = mixinDeep;
|
Reference in New Issue
Block a user