diff options
Diffstat (limited to 'node_modules/mixin-deep/index.js')
-rw-r--r-- | node_modules/mixin-deep/index.js | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/node_modules/mixin-deep/index.js b/node_modules/mixin-deep/index.js deleted file mode 100644 index 47face2..0000000 --- a/node_modules/mixin-deep/index.js +++ /dev/null @@ -1,64 +0,0 @@ -'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; |