Rust implementation of NextGraph, a Decentralized and local-first web 3.0 ecosystem
https://nextgraph.org
byzantine-fault-tolerancecrdtsdappsdecentralizede2eeeventual-consistencyjson-ldlocal-firstmarkdownocapoffline-firstp2pp2p-networkprivacy-protectionrdfrich-text-editorself-hostedsemantic-websparqlweb3collaboration
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
673 B
22 lines
673 B
import * as shapeManager from "./shapeManager";
|
|
import type { WasmConnection, Diff } from "./types";
|
|
|
|
export default async function updateShape(
|
|
connectionId: WasmConnection["id"],
|
|
diff: Diff,
|
|
) {
|
|
const connection = shapeManager.connections.get(connectionId);
|
|
if (!connection) throw new Error("No Connection found.");
|
|
|
|
console.log("BACKEND: Received update request from ", connectionId);
|
|
|
|
const newState = shapeManager.applyDiff(connection.state, diff);
|
|
connection.state = newState;
|
|
|
|
shapeManager.connections.forEach((con) => {
|
|
// if (con.shape == connection.shape) {
|
|
// con.state = newState;
|
|
// con.callback(diff, con.id);
|
|
// }
|
|
});
|
|
}
|
|
|