dbf438f7cb
With the `OpObserver` moving to the transaction rather than being passed in to the `Transaction::commit` method we have needed to add a way to get the observer back out of the transaction (via `Transaction::observer` and `AutoCommit::observer`). This `Observer` type is then used to handle patch generation logic. However, there are cases where we might not want an `OpObserver` and in these cases we can execute various things fast - so we need to have something like an `Option<OpObserver>`. In order to track the presence or otherwise of the observer at the type level introduce `automerge::transaction::observation`, which is a type level `Option`. This allows us to efficiently choose the right code paths whilst maintaining correct types for `Transaction::observer` and `AutoCommit::observer` |
||
---|---|---|
.. | ||
config | ||
e2e | ||
examples | ||
src | ||
test | ||
.eslintignore | ||
.eslintrc.cjs | ||
.gitignore | ||
LICENSE | ||
package.json | ||
README.md | ||
tsconfig.json | ||
tslint.json |
Automerge
Automerge is a library of data structures for building collaborative applications, this package is the javascript implementation.
Please see automerge.org for documentation.
Setup
This package is a wrapper around a core library which is written in rust and
compiled to WASM. In node
this should be transparent to you, but in the
browser you will need a bundler to include the WASM blob as part of your module
hierarchy. There are examples of doing this with common bundlers in ./examples
.
Meta
Copyright 2017–2021, the Automerge contributors. Released under the terms of the
MIT license (see LICENSE
).