UNPKG

@sanity/document-store

Version:

Sanity / gradient document store

49 lines (36 loc) 1.22 kB
const createDocumentStore = require('../src') const mockServerConnection = require('./mock-db/mockServerConnection') const documentStore = createDocumentStore({serverConnection: mockServerConnection}) const wait = (ms, fn) => setTimeout(fn, ms) const buffered = documentStore.checkout(22) documentStore.byId(22).subscribe(event => { console.log('Got event from byId', event) }) const mutations = buffered.events.filter(event => event.type === 'mutate').subscribe(event => { console.log('Document was mutated:', event) }) wait(500, () => { const buffered2 = documentStore.checkout(22) buffered2.events.subscribe(event => { console.log('Doc event #22!', event) }) buffered2.patch([{set: {body: 'New body'}}]) buffered2.commit().subscribe(() => { console.log('Committed!') }) }) wait(1000, () => { buffered.patch([{set: {body: 'UPDATED2'}}]) buffered.commit() }) // simulate some other subscriber mutates wait(2000, () => { const doc = documentStore.checkout(22) doc.patch([{set: {body: 'UPDATED3'}}]) doc.commit().subscribe(res => { console.log('Committed') }) documentStore.byId(22).subscribe(event => { console.log('Got FINAL event from byId', event) }) })