mosx
Version:
Multiview observable state management engine
41 lines • 3.1 kB
JavaScript
;
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==