UNPKG

rxdeep

Version:
62 lines 1.94 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.reverse = void 0; var changes_1 = require("./types/changes"); function clean(l) { if (l[l.length - 1] === undefined) { l.length--; clean(l); } } function reverse(change) { if (changes_1.isLeaf(change.trace)) { return { value: change.trace.from, trace: { from: change.trace.to, to: change.trace.from, } }; } else { var revalue = Array.isArray(change.value) ? __spreadArrays(change.value) : __assign({}, change.value); var retrace = { subs: {} }; for (var key in change.trace.subs) { var reversed = reverse({ value: change.value ? change.value[key] : undefined, trace: change.trace.subs[key], }); revalue[key] = reversed.value; retrace.subs[key] = reversed.trace; } if (Array.isArray(revalue)) { clean(revalue); } return { value: revalue, trace: retrace, }; } } exports.reverse = reverse; //# sourceMappingURL=reverse.js.map