Public
HTTP (deprecated)
Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { BrowserWebSocketClientAdapter } from "npm:@automerge/automerge-repo-network-websocket";
import { Repo } from "npm:@automerge/automerge-repo/slim";
import { automergeWasmBase64 } from "npm:@automerge/automerge/automerge.wasm.base64.js";
import * as automerge from "npm:@automerge/automerge/slim";
await automerge.next.initializeBase64Wasm(automergeWasmBase64);
export default async function(req: Request): Promise<Response> {
// from https://automerge.org/automerge/api-docs/js/
type DocType = { ideas: Array<automerge.Text> };
let doc1 = automerge.init<DocType>();
doc1 = automerge.change(doc1, d => {
d.ideas = [new automerge.Text("an immutable document")];
});
let doc2 = automerge.init<DocType>();
doc2 = automerge.merge(doc2, automerge.clone(doc1));
doc2 = automerge.change<DocType>(doc2, d => {
d.ideas.push(new automerge.Text("which records its history"));
});
// Note the `automerge.clone` call, see the "cloning" section of this readme for
// more detail
doc1 = automerge.merge(doc1, automerge.clone(doc2));
doc1 = automerge.change(doc1, d => {
d.ideas[0].deleteAt(13, 8);
d.ideas[0].insertAt(13, "object");
});
let doc3 = automerge.merge(doc1, doc2);
return Response.json({ doc1, doc2, doc3 });
}
stevekrouse-automergedemo.web.val.run
July 2, 2024