UNPKG

vulpes

Version:
64 lines (56 loc) 2.03 kB
"use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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); } } function clone(obj) { return rebaseObjectDeep(obj); } function cloneJob(job) { var output = rebaseObject(job); if (output.predicate) { output.predicate = rebaseObject(output.predicate); } if (output.times) { output.times = rebaseObject(output.times); } if (output.data) { output.data = rebaseObjectDeep(output.data); } if (output.result) { output.result = rebaseObject(output.result); if (output.result.data) { output.result.data = rebaseObjectDeep(output.result.data); } } if (output.parents) { output.parents = [].concat(_toConsumableArray(output.parents)); } return output; } function rebaseArrayDeep(arr) { return arr.map(function (item) { if (Array.isArray(item)) { return rebaseArrayDeep(item); } else if (item && (typeof item === "undefined" ? "undefined" : _typeof(item)) === "object") { return rebaseObjectDeep(item); } return item; }); } function rebaseObject(obj) { return Object.assign({}, obj); } function rebaseObjectDeep(obj) { var output = rebaseObject(obj); Object.keys(output).forEach(function (key) { if (Array.isArray(output[key])) { output[key] = rebaseArrayDeep(output[key]); } else if (output[key] && _typeof(output[key]) === "object") { output[key] = rebaseObjectDeep(output[key]); } }); return output; } module.exports = { clone: clone, cloneJob: cloneJob };