Commit graph

106 commits

Author SHA1 Message Date
Alex Good
dbf438f7cb
Track whether a transaction is observed in types
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`
2022-10-06 22:38:37 +01:00
Peter van Hardenberg
846f7bb181 this crept back in somehow... the child of a document is not a document 2022-10-04 16:01:57 -07:00
Orion Henry
4e17d798be
move automerge-js onto the applyPatches model 2022-10-04 18:17:03 +01:00
Alex Good
d6a8d41e0a Update JS README 2022-10-04 17:23:37 +01:00
Alex Good
b6c375efb9 Fix a few small typescript complaints 2022-10-04 17:23:37 +01:00
Alex Good
16f2272b5b Generate index.d.ts from source
The JS package is now written in typescript so we don't need to manually
maintain an index.d.ts file. Generate the index.d.ts file from source
and ship it with the JS package.
2022-10-04 17:23:37 +01:00
Alex Good
4f03cd2a37 Add an e2e testing tool for the JS packaging
JS packaging is complicated and testing it manually is irritating. Add a
tool in `automerge-js/e2e` which stands up a local NPM registry and
publishes the various packages to that registry for use in automated and
manual tests. Update the test script in `scripts/ci/js_tests` to run the
tests using this tool
2022-10-04 17:23:37 +01:00
Alex Good
7825da3ab9 Add examples of using automerge with bundlers 2022-10-04 17:23:37 +01:00
Alex Good
8557ce0b69 Rename automerge-js to automerge
Now that automerge-js is ready to go we rename it to `automerge-js` and
set the version to `2.0.0-alpha.1`
2022-10-04 17:23:37 +01:00
Alex Good
a9e23308ce Remove async automerge-wasm wrapper
By moving to wasm-bindgens `bundler` target rather than using the `web`
target we remove the need for an async initialization step on the
automerge-wasm package. This means that the automerge-js package can now
depend directly on automerge-wasm and perform initialization itself,
thus making automerge-js a drop in replacement for the `automerge` JS
package (hopefully).

We bump the versions of automerge-wasm
2022-10-04 17:23:37 +01:00
Orion Henry
9879fd9342 copy pasta typo fix 2022-08-26 14:19:28 -05:00
Orion Henry
59bde120ee automerge-js adding trace to out of date errors 2022-08-26 14:17:56 -05:00
Orion Henry
e6cd366aa0 automerge-js 0.1.12 2022-08-24 19:12:47 -05:00
Orion Henry
6d05cbd9e3 fix indexOf 2022-08-23 12:13:32 -05:00
Peter van Hardenberg
43bdd60904 the fields in a doc are not docs themselves 2022-08-23 09:31:09 -07:00
Orion Henry
363ad7d59a automerge-js ts fixes 2022-08-23 11:12:22 -05:00
Orion Henry
d28767e689 automerge-js v0.1.10 2022-08-22 15:13:08 -05:00
Orion Henry
88f8976d0a automerge-js 0.1.9 2022-08-22 14:58:13 -05:00
Orion Henry
d1a926bcbe fix ownKeys bug in automerge-js 2022-08-11 18:49:42 -05:00
Orion Henry
1a955e1f0d fix some typescript errors - depricate default export of the wasm package 2022-08-11 18:24:21 -05:00
Andrew Jeffery
c49ba5ea98 Fixup js edit-trace script and documentation bits 2022-07-07 09:25:45 +01:00
Orion Henry
d5ca0947c0 minor update on js wrapper 2022-06-21 13:40:15 -04:00
Orion Henry
f5e9e3537d v0.1.4 2022-06-16 17:50:46 -04:00
Orion Henry
44b6709a60 add getBackend to automerge-js 2022-06-16 17:49:32 -04:00
Orion Henry
27dfa4ca27 missed some bugs related to the wasm api change 2022-06-01 16:31:18 -04:00
Orion Henry
8ce10dab69 some api changes/tweaks - basic js package 2022-05-31 13:49:18 -04:00
Orion Henry
210c6d2045 move types to their own package 2022-05-27 10:23:51 -07:00
Orion Henry
df8cae8a2b README 2022-05-23 19:25:23 +02:00
Orion Henry
3a44ccd52d clean up lint, simplify package, hand write an index.d.ts 2022-05-23 19:04:31 +02:00
Orion Henry
bd35361354 fixed typescript errors, pull wasm dep (mostly) out 2022-05-22 13:53:11 -04:00
Scott Trinh
d2fba6bf04 Use an UnknownObject type alias 2022-05-22 13:53:11 -04:00
Orion Henry
fd02585d2a removed a bunch of lint errors 2022-05-22 13:53:11 -04:00
Orion Henry
515a2eb94b removing some ts errors 2022-05-22 13:53:11 -04:00
Orion Henry
5e1bdb79ed eslint --fix 2022-05-22 13:53:11 -04:00
Orion Henry
1cf8f80ba4 pull wasm out of deps 2022-05-22 13:53:11 -04:00
Orion Henry
226bbeb023 tslint to eslint 2022-05-22 13:53:11 -04:00
Orion Henry
1eec70f116 example webpack for js 2022-05-22 13:53:11 -04:00
Orion Henry
4f898b67b3 able to build npm package 2022-05-22 13:53:11 -04:00
Orion Henry
551f6e1343 convert automerge-js to typescript 2022-05-22 13:53:11 -04:00
Orion Henry
965240d8f6 Merge remote-tracking branch 'origin/experiment' into wasm_readme 2022-04-08 18:07:44 -04:00
Andrew Jeffery
07553195fa Update wasm and js with new names 2022-04-08 18:23:56 +01:00
Orion Henry
9f3ae61b91 use doc.text() in js toString() 2022-04-07 14:24:12 -04:00
Orion Henry
9fe8447d21 loadDoc -> load() and forkAt() 2022-04-07 01:19:27 -04:00
Orion Henry
4edb034a64 adding readme tests 2022-04-04 12:50:08 -04:00
Andrew Jeffery
d331ceb6d4 Rename set to put and set_object to put_object 2022-04-01 13:40:58 +01:00
Andrew Jeffery
632857a4e6 Rename del and inc in wasm and js 2022-04-01 13:36:26 +01:00
Andrew Jeffery
3631ddfd55 Fix js side 2022-04-01 11:48:04 +01:00
Andrew Jeffery
535d2eb92f Fix js proxy api 2022-03-04 11:46:03 +00:00
Orion Henry
2fc0705907 change MAP,LIST,TEXT to be {},[],'' - allow recursion 2022-02-23 19:43:13 -05:00
Orion Henry
836e6ba510 fix return types 2022-01-31 17:21:16 -05:00