@slate-sheikah/backend
Version:
slate-sheikah backend: Backend components for slate-sheikah. Slate + Automerge + Sockets
50 lines • 1.56 kB
TypeScript
import * as Automerge from 'automerge';
import { Node } from 'slate';
import { SyncDoc, CollabAction } from '@slate-sheikah/bridge';
export interface Connections {
[key: string]: Automerge.Connection<SyncDoc>;
}
/**
* AutomergeBackend contains collaboration with Automerge
*/
declare class AutomergeBackend {
connections: Connections;
docSet: Automerge.DocSet<SyncDoc>;
/**
* Create Autmorge Connection
*/
createConnection: (id: string, send: any) => void;
/**
* Start Automerge Connection
*/
openConnection: (id: string) => void;
/**
* Close Automerge Connection and remove it from connections
*/
closeConnection(id: string): void;
/**
* Receive and apply operation to Automerge Connection
*/
receiveOperation: (id: string, data: CollabAction) => void;
/**
* Get document from Automerge DocSet
*/
getDocument: (docId: string) => Automerge.FreezeObject<Automerge.FreezeObject<{
children: import("../../bridge/lib").SyncValue;
cursors: import("../../bridge/lib").Cursors;
}>>;
/**
* Append document to Automerge DocSet
*/
appendDocument: (docId: string, data: Node[]) => void;
/**
* Remove document from Automerge DocSet
*/
removeDocument: (docId: string) => void;
/**
* Remove client cursor data
*/
garbageCursor: (docId: string, id: string) => void;
}
export default AutomergeBackend;
//# sourceMappingURL=AutomergeBackend.d.ts.map