convex
Version:
Client for the Convex Cloud
72 lines (71 loc) • 1.78 kB
JavaScript
;
import { Base64 } from "../../values/index.js";
import { Long } from "../long.js";
export function u64ToLong(encoded) {
const integerBytes = Base64.toByteArray(encoded);
return Long.fromBytesLE(Array.from(integerBytes));
}
export function longToU64(raw) {
const integerBytes = new Uint8Array(raw.toBytesLE());
return Base64.fromByteArray(integerBytes);
}
export function parseServerMessage(encoded) {
switch (encoded.type) {
case "FatalError":
case "AuthError":
case "ActionResponse":
case "Ping": {
return { ...encoded };
}
case "MutationResponse": {
if (encoded.success) {
return { ...encoded, ts: u64ToLong(encoded.ts) };
} else {
return { ...encoded };
}
}
case "Transition": {
return {
...encoded,
startVersion: {
...encoded.startVersion,
ts: u64ToLong(encoded.startVersion.ts)
},
endVersion: {
...encoded.endVersion,
ts: u64ToLong(encoded.endVersion.ts)
}
};
}
default: {
const _exhaustivenessCheck = encoded;
}
}
return void 0;
}
export function encodeClientMessage(message) {
switch (message.type) {
case "Authenticate":
case "ModifyQuerySet":
case "Mutation":
case "Action":
case "Event": {
return { ...message };
}
case "Connect": {
if (message.maxObservedTimestamp !== void 0) {
return {
...message,
maxObservedTimestamp: longToU64(message.maxObservedTimestamp)
};
} else {
return { ...message, maxObservedTimestamp: void 0 };
}
}
default: {
const _exhaustivenessCheck = message;
}
}
return void 0;
}
//# sourceMappingURL=protocol.js.map