Send incremental CRDT changes from package runtimes
This commit is contained in:
Vendored
+6
-2
@@ -4,7 +4,7 @@ import { randomUUID } from "node:crypto";
|
||||
import { create } from "@bufbuild/protobuf";
|
||||
import { createClient, } from "@connectrpc/connect";
|
||||
import * as Automerge from "@automerge/automerge";
|
||||
import { createAutomergeFieldValue, encodeAutomergeFieldWrite, loadAutomergeFieldDoc, } from "@quixos/camino-datatypes/crdt-automerge";
|
||||
import { createAutomergeFieldChanges, createAutomergeFieldValue, encodeAutomergeFieldWrite, loadAutomergeFieldDoc, } from "@quixos/camino-datatypes/crdt-automerge";
|
||||
import { connectNodeAdapter, createConnectTransport, } from "@connectrpc/connect-node";
|
||||
import { CaminoService, CrdtValueSchema, FieldValueSourceSchema, ListValueSchema, NullValueSchema, ObjectValueSchema, RefValueSchema, ValueSchema, ValueSourceSchema, } from "./camino/api_pb.js";
|
||||
import { DerivedDependencySchema, HandshakeResponseSchema, InvokeResponseSchema, PackageRuntime, WatchEventSchema, WatchRequestSchema, } from "./quixos/runtime_pb.js";
|
||||
@@ -537,7 +537,11 @@ export const createCrdtField = (camino, objectId, fieldName, fieldType) => {
|
||||
const next = Automerge.change(current, (doc) => {
|
||||
fn(doc);
|
||||
});
|
||||
await field.set(next);
|
||||
await camino.setField({
|
||||
objectId,
|
||||
fieldName,
|
||||
value: jsToProtoValue(createAutomergeFieldChanges(current, next, fieldType)),
|
||||
});
|
||||
return next;
|
||||
},
|
||||
async replaceFromJson(value) {
|
||||
|
||||
Reference in New Issue
Block a user