UNPKG

pushinka

Version:

Pushinka: Transactional, Reactive, and Asynchronous State Management

33 lines 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Utils_1 = require("./Utils"); var XRecord = (function () { function XRecord(prev, tran, data) { this.prev = { record: prev, backup: prev }; this.tran = tran; this.data = data; this.edits = new Set(); this.conflicts = new Map(); this.observers = new Map(); this.overwritten = new Set(); } XRecord.prototype.seal = function (proxy) { var _this = this; Object.freeze(this.data); this.edits.forEach(function (prop) { var val = _this.data[prop]; if (Array.isArray(val) && !Object.isFrozen(val)) Utils_1.Utils.freezeArray(val, { object: proxy, prop: prop }); }); Utils_1.Utils.freezeSet(this.edits); Utils_1.Utils.freezeMap(this.conflicts); Object.freeze(this); }; XRecord.dismiss = function (r) { if (r) Utils_1.Utils.freezeMap(r.observers); }; return XRecord; }()); exports.XRecord = XRecord; //# sourceMappingURL=Record.js.map