clone.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. var __values = (this && this.__values) || function (o) {
  2. var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
  3. if (m) return m.call(o);
  4. return {
  5. next: function () {
  6. if (o && i >= o.length) o = void 0;
  7. return { value: o && o[i++], done: !o };
  8. }
  9. };
  10. };
  11. export function clone(obj) {
  12. var e_1, _a;
  13. if (obj === null || typeof (obj) !== 'object' || 'isActiveClone' in obj) {
  14. return obj;
  15. }
  16. var temp = obj instanceof Date ? new Date(obj) : (obj.constructor());
  17. try {
  18. for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {
  19. var key = _c.value;
  20. if (Object.prototype.hasOwnProperty.call(obj, key)) {
  21. obj['isActiveClone'] = null;
  22. temp[key] = clone(obj[key]);
  23. delete obj['isActiveClone'];
  24. }
  25. }
  26. }
  27. catch (e_1_1) { e_1 = { error: e_1_1 }; }
  28. finally {
  29. try {
  30. if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
  31. }
  32. finally { if (e_1) throw e_1.error; }
  33. }
  34. return temp;
  35. }
  36. //# sourceMappingURL=clone.js.map