clone.js 1.2 KB

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