UNPKG

mosx

Version:

Multiview observable state management engine

41 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MPackSerializer = void 0; const patchpack_1 = require("patchpack"); const _1 = require("."); const mobx_1 = require("mobx"); class MPackSerializer extends _1.Serializer { encodeSnapshot(value) { return patchpack_1.PatchPack.encode(mobx_1.values); } decodeSnapshot(buffer) { return patchpack_1.PatchPack.decode(buffer); } encodePatch(patch, entry) { const op = ["add", "replace", "remove"].indexOf(patch.op); const patchArr = [op, patch.path]; if ("value" in patch) { patchArr.push(patch.value); } if ("oldValue" in patch) { patchArr.push(patch.oldValue); } return patchpack_1.PatchPack.encode(patchArr); } decodePatch(buffer) { const patchArr = patchpack_1.PatchPack.decode(buffer).reverse(); const patch = { op: ["add", "replace", "remove"][patchArr.pop()], path: patchArr.pop(), }; if (patchArr.length && patch.op !== "remove") { patch.value = patchArr.pop(); } if (patchArr.length && patch.op !== "add") { patch.oldValue = patchArr.pop(); } return patch; } } exports.MPackSerializer = MPackSerializer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXplci9tcGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBcUM7QUFHckMsd0JBQThCO0FBQzlCLCtCQUE2QjtBQUU3QixNQUFhLGVBQWdCLFNBQVEsYUFBVTtJQUV0QyxjQUFjLENBQUMsS0FBVTtRQUM5QixPQUFPLHFCQUFTLENBQUMsTUFBTSxDQUFDLGFBQU0sQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYztRQUNsQyxPQUFPLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFTSxXQUFXLENBQUUsS0FBMkIsRUFBRSxLQUFnQjtRQUUvRCxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFakMsSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQzNCO1FBRUQsSUFBSSxVQUFVLElBQUksS0FBSyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQzlCO1FBRUQsT0FBTyxxQkFBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRU0sV0FBVyxDQUFFLE1BQWM7UUFDaEMsTUFBTSxRQUFRLEdBQUcscUJBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFbkQsTUFBTSxLQUFLLEdBQXlCO1lBQ2xDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFRO1lBQ3ZELElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1NBQ3JCLENBQUE7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUU7WUFDNUMsS0FBSyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUE7U0FDN0I7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUU7WUFDekMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUE7U0FDaEM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRjtBQTVDRCwwQ0E0Q0MifQ==