The context in use for the clone API.
The current and future status of a clone. This stream is hot and continuous, terminating when the clone closes (and can therefore be used to detect closure).
Shorthand method to test whether or not a query pattern has a solution. No information is returned about the possible query solutions, just whether or not a solution exists.
a query with a @where
pattern to test
resolves to true
if the query's @where
pattern matches data in the domain
Closes this clone engine gracefully. Using this method ensures that data has been fully flushed to storage and all transactions have been notified to the domain (if this clone is online).
used to notify a reason for the closure, for example an application failure, for problem diagnosis.
Shorthand method for deleting a single Subject by its @id
. This will also
remove references to the given Subject from other Subjects.
the Subject @id
Handle updates from the domain, from the moment this method is called. All
data changes are signalled through the handler, strictly ordered according
to the clone's logical clock. The updates can therefore be correctly used
to maintain some other view of data, for example in a user interface or
separate database. This will include the notification of 'rev-up' updates
after a connect to the domain. To change this behaviour, ignore updates
while the clone status is marked as outdated
.
This method is equivalent to calling read with a no-op procedure.
a procedure to run for every update
a subscription, allowing the caller to unsubscribe the handler
Shorthand method for retrieving a single Subject and its properties by
its @id
, if it exists.
the Subject @id
the properties to retrieve. If no properties are specified, all available properties of the subject will be returned.
a promise resolving to the requested Subject with the requested
properties, or undefined
if not found
Returns a stream that processes all quads matching the pattern.
The optional subject.
The optional predicate.
The optional object.
The optional graph.
The resulting quad stream.
Performs some read procedure on the current state, with notifications of subsequent updates.
The state passed to the procedure is immutable and is guaranteed to remain 'live' until the procedure's return Promise resolves or rejects.
a procedure to run for the current state
a procedure to run for every update that follows the state in the procedure
Actively reads data from the domain.
The query executes in response to either subscription to the returned
result, or calling .then
.
All results are guaranteed to derive from the current state; however since the observable results are delivered asynchronously, the current state is not guaranteed to be live in the subscriber. In order to keep this state alive during iteration (for example, to perform a consequential operation), perform the request in the scope of a read procedure instead.
the declarative read description
read subjects
Performs some write procedure on the current state.
The state passed to the procedure is immutable and is guaranteed to remain
'live' until its write
method is called, or the procedure's return
Promise resolves or rejects.
a procedure to run against the current state. This
procedure is able to modify the given state, incrementally using its
write
method
Actively writes data to the domain.
one of the Write types
the declarative write description
the next state of the domain, changed by this write operation only
Generated using TypeDoc. Delivered by Vercel. @m-ld/m-ld - v0.9.2-edge.2 Source code licensed MIT. Privacy policy
A m-ld clone represents domain data to an app.
The Javascript clone engine uses a database engine, for which in-memory, on-disk and in-browser persistence options are available (see Getting Started).
m-ld Specification