It's christmas, everyone is on holiday, it's time to change every single file in the repository!
1.5 KiB
Architecture
The @automerge/automerge package is a set of
Proxy
objects which provide an idiomatic javascript interface built on top of the
lower level @automerge/automerge-wasm package (which is in turn built from the
Rust codebase and can be found in ~/automerge-wasm). I.e. the responsibility
of this codebase is
- To map from the javascript data model to the underlying
set,make,insert, anddeleteoperations of Automerge. - To expose a more convenient interface to functions in
automerge-wasmwhich generate messages to send over the network or compressed file formats to store on disk
Building and testing
Much of the functionality of this package depends on the
@automerge/automerge-wasm package and frequently you will be working on both
of them at the same time. It would be frustrating to have to push
automerge-wasm to NPM every time you want to test a change but I (Alex) also
don't trust yarn link to do the right thing here. Therefore, the ./e2e
folder contains a little yarn package which spins up a local NPM registry. See
./e2e/README for details. In brief though:
To build automerge-wasm and install it in the local node_modules
cd e2e && yarn install && yarn run e2e buildjs
NOw that you've done this you can run the tests
yarn test
If you make changes to the automerge-wasm package you will need to re-run
yarn e2e buildjs