Package Exports
- @lyra/document-store
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@lyra/document-store) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Document store
Lyra / saga document store
Example
// If you are interested in everything that happens with document `lol42`
const subscription = documents.byId('lol42').subscribe(event => {
console.log('Something happened with document lol42!', event)
})
// After a while, when you are no longer interested in updates fom document `lol42`:
subscription.unsubscribe()
How it works
When you add a subscriber to a document the first thing that happens is that the subscriber function is called with a snapshot of the document's current state. This happens as soon as the snapshot is retrieved. If there is a cached version of it on the client, the snapshot is received immediately (synchronously).
From that moment on, you will receive a new event every time something happens to the document, until you unsubscribe again.
API
createDocumentStore({serverConnection: ServerConnection}) : DocumentStore
ServerConnection must be an object with the following api:
byId(id : string) : Observable<DocumentEvent>
query(query : string) : Observable<QueryResultEvent>
(todo, add more)
DocumentStore
Query methods
byId(id : string) : Observable<DocumentEvent>
byIds(ids : Array<string>) : Observable<QueryResultEvent>
query(query : string) : Observable<QueryResultEvent>
Mutation methods
update(id : string, spec : UpdateSpec) : Observable<OperationEvent>
create(document : Document) : Observable<OperationEvent>
replace(documentId : string, document : Document) : Observable<OperationEvent>
createOrReplace(document : Document) : Observable<OperationEvent>
delete(documentId : string) : : Observable<OperationEvent>
Document
_id : string
_type : string
DocumentEventType
DocumentEvent
type : string
either one ofsnapshot
,update
snapshot : Document