Rename to hkt.sh
This commit is contained in:
51
node_modules/clone-deep/index.js
generated
vendored
Normal file
51
node_modules/clone-deep/index.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependenices
|
||||
*/
|
||||
|
||||
var utils = require('./utils');
|
||||
|
||||
/**
|
||||
* Recursively clone native types.
|
||||
*/
|
||||
|
||||
function cloneDeep(val, instanceClone) {
|
||||
switch (utils.typeOf(val)) {
|
||||
case 'object':
|
||||
return cloneObjectDeep(val, instanceClone);
|
||||
case 'array':
|
||||
return cloneArrayDeep(val, instanceClone);
|
||||
default:
|
||||
return utils.clone(val);
|
||||
}
|
||||
}
|
||||
|
||||
function cloneObjectDeep(obj, instanceClone) {
|
||||
if (utils.isObject(obj)) {
|
||||
var res = {};
|
||||
utils.forOwn(obj, function(obj, key) {
|
||||
this[key] = cloneDeep(obj, instanceClone);
|
||||
}, res);
|
||||
return res;
|
||||
} else if (instanceClone) {
|
||||
return instanceClone(obj);
|
||||
} else {
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
function cloneArrayDeep(arr, instanceClone) {
|
||||
var len = arr.length, res = [];
|
||||
var i = -1;
|
||||
while (++i < len) {
|
||||
res[i] = cloneDeep(arr[i], instanceClone);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Expose `cloneDeep`
|
||||
*/
|
||||
|
||||
module.exports = cloneDeep;
|
||||
Reference in New Issue
Block a user