UNPKG

@bigfishtv/cockpit

Version:

39 lines (31 loc) 976 B
'use strict'; exports.__esModule = true; exports.default = deepDuplicate; var _isArray = require('lodash/isArray'); var _isArray2 = _interopRequireDefault(_isArray); var _isPlainObject = require('lodash/isPlainObject'); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var count = 0; /** * Deep duplicates an array or object * @param {(Object|Array)} param - Object or array to deep duplicate * @return {(Object|Array)} - Returns deep duplicated object or array */ function deepDuplicate(param) { if ((0, _isArray2.default)(param)) { return param.map(deepDuplicate); } else if ((0, _isPlainObject2.default)(param)) { var obj = {}; for (var key in param) { if (key == 'id' && !('filename' in param)) { obj[key] = 'dup' + ++count; } else { obj[key] = deepDuplicate(param[key]); } } return obj; } else { return param; } }