UNPKG

collaborative-ui

Version:

React component library for building real-time collaborative editing applications.

49 lines (48 loc) 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.log4 = exports.model4 = exports.log3 = exports.model3 = exports.log2 = exports.model2 = exports.log1 = exports.model1 = exports.model0 = exports.schema0 = void 0; const json_crdt_1 = require("json-joy/lib/json-crdt"); const Log_1 = require("json-joy/lib/json-crdt/log/Log"); const decode_1 = require("json-joy/lib/json-crdt-patch/codec/compact/decode"); const schema_1 = require("../examples/Blogpost/schema"); exports.schema0 = json_crdt_1.s.obj({ id: json_crdt_1.s.con(''), name: json_crdt_1.s.str('John Doe'), age: json_crdt_1.s.val(json_crdt_1.s.con(42)), tags: json_crdt_1.s.arr([json_crdt_1.s.str('tag1'), json_crdt_1.s.str('tag2')]), }); exports.model0 = json_crdt_1.Model.create(exports.schema0); exports.model1 = json_crdt_1.Model.create(exports.schema0); exports.log1 = Log_1.Log.fromNewModel(exports.model1); exports.log1.end.s.toApi().set({ id: json_crdt_1.s.con('xyz') }); exports.log1.end.api.flush(); exports.log1.end.s.age.toApi().set(35); exports.log1.end.api.flush(); exports.log1.end.s.tags.toApi().del(0, 1); exports.log1.end.api.flush(); exports.log1.end.s.name.toApi().del(0, 8); exports.log1.end.s.name.toApi().ins(0, 'Va Da'); exports.log1.end.api.flush(); exports.log1.end.s.tags[0].toApi().del(0, 4); exports.log1.end.s.tags[0].toApi().ins(0, 'retired'); exports.log1.end.api.flush(); exports.log1.end.api.onLocalChange.listen(() => { exports.log1.end.api.flush(); }); exports.model2 = json_crdt_1.Model.create(); exports.log2 = Log_1.Log.fromNewModel(exports.model2); exports.log2.end.api.autoFlush(); const patches = require('./friendsforever.log.json'); for (const encoded of patches) { const patch = (0, decode_1.decode)(encoded); exports.log2.end.applyPatch(patch); } const schema3 = json_crdt_1.s.obj({ list: json_crdt_1.s.arr([]), }); exports.model3 = json_crdt_1.Model.create(schema3); exports.log3 = Log_1.Log.fromNewModel(exports.model3); exports.log3.end.api.autoFlush(); exports.model4 = json_crdt_1.Model.create(schema_1.BlogpostSchema); exports.log4 = Log_1.Log.fromNewModel(exports.model4); exports.log4.end.api.autoFlush();