@vielzeug/tavern
v26.10.5
Published
Table sessions over mesh: host-owned state replication with guest command forwarding
Readme
@vielzeug/tavern
Table sessions over mesh: host-owned state replication with guest command forwarding
Installation
pnpm add @vielzeug/tavern
npm install @vielzeug/tavern
yarn add @vielzeug/tavernQuick Start
import { hostTavern, joinTavern } from '@vielzeug/tavern';
const host = hostTavern({
commands: {
apply: (name, args) => myStore.apply(name, args),
has: (name) => name in myStore,
},
subjectId: 'doc-1',
subjects: {
onChanged: (listener) => myStore.onUpdated('doc-1', listener),
onRemoved: (listener) => myStore.onRemoved('doc-1', listener),
snapshot: () => myStore.read('doc-1'),
},
});
const invitation = await host.createInvitationText();
const { answerText, guest } = await joinTavern({
invitationText: invitation,
mount: (snapshot) => parseAndMount(snapshot),
name: 'Alex',
});
await host.acceptAnswerText(answerText);
guest.sendCommand('doc-1', 'rename', ['Quarterly report']);Documentation
License
MIT © Helmuth Saatkamp: part of the Vielzeug monorepo.
