diff --git a/src/Utils/CRDTWrapper.ts b/src/Utils/CRDTWrapper.ts index 3e720663e17cf73cf846c2355ad25cbab2042b13..32bd3d46f6381542bba453cf64f472ab645de443 100644 --- a/src/Utils/CRDTWrapper.ts +++ b/src/Utils/CRDTWrapper.ts @@ -23,34 +23,13 @@ */ import { crdtlib } from "@concordant/c-crdtlib"; -export default class CRDTWrapper<T> { - public static wrap<T>(crdt: any): CRDTWrapper<T> { +export default class CRDTWrapper { + public static wrap(crdt: any): CRDTWrapper { return new CRDTWrapper(crdt.toJson()); } - public static unwrap<T>(wrapper: CRDTWrapper<T>): any { - const crdtType = JSON.parse(wrapper.crdtJson)["_type"]; - switch (crdtType) { - case "PNCounter": - return crdtlib.crdt.PNCounter.Companion.fromJson(wrapper.crdtJson); - case "MVRegister": - return crdtlib.crdt.MVRegister.Companion.fromJson(wrapper.crdtJson); - case "LWWRegister": - return crdtlib.crdt.LWWRegister.Companion.fromJson(wrapper.crdtJson); - case "Ratchet": - return crdtlib.crdt.Ratchet.Companion.fromJson(wrapper.crdtJson); - case "RGA": - return crdtlib.crdt.RGA.Companion.fromJson(wrapper.crdtJson); - case "LWWMap": - return crdtlib.crdt.LWWMap.Companion.fromJson(wrapper.crdtJson); - case "MVMap": - return crdtlib.crdt.MVMap.Companion.fromJson(wrapper.crdtJson); - case "Map": - return crdtlib.crdt.Map.Companion.fromJson(wrapper.crdtJson); - default: - break; - } - throw new Error("Unknown CRDT type"); + public static unwrap(wrapper: CRDTWrapper): any { + return crdtlib.crdt.DeltaCRDT.Companion.fromJson(wrapper.crdtJson); } constructor(public crdtJson: string) {