32 lines
649 B
JavaScript
32 lines
649 B
JavaScript
|
'use strict';
|
||
|
|
||
|
/**
|
||
|
* Clone helper
|
||
|
*
|
||
|
* Clone an array or object
|
||
|
*
|
||
|
* @param items
|
||
|
* @returns {*}
|
||
|
*/
|
||
|
|
||
|
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||
|
|
||
|
module.exports = function clone(items) {
|
||
|
var cloned = void 0;
|
||
|
|
||
|
if (Array.isArray(items)) {
|
||
|
var _cloned;
|
||
|
|
||
|
cloned = [];
|
||
|
|
||
|
(_cloned = cloned).push.apply(_cloned, _toConsumableArray(items));
|
||
|
} else {
|
||
|
cloned = {};
|
||
|
|
||
|
Object.keys(items).forEach(function (prop) {
|
||
|
cloned[prop] = items[prop];
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return cloned;
|
||
|
};
|