aboutsummaryrefslogtreecommitdiff
path: root/src/server/websocket.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-10-07 13:02:15 -0400
committerbobzel <zzzman@gmail.com>2024-10-07 13:02:15 -0400
commit34fdaf6f1405c59dbf18d03cc489a50715a7e4e9 (patch)
tree40a8457803341eba952ff8011d0eae39b018ba83 /src/server/websocket.ts
parentcd7e213e7e0b9b6606ae068c29412bb64cdf6f2d (diff)
lint fixes
Diffstat (limited to 'src/server/websocket.ts')
-rw-r--r--src/server/websocket.ts42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/server/websocket.ts b/src/server/websocket.ts
index 1e25a8a27..effe94219 100644
--- a/src/server/websocket.ts
+++ b/src/server/websocket.ts
@@ -61,27 +61,6 @@ export namespace WebSocket {
Database.Instance.getDocuments(ids, callback);
}
- const pendingOps = new Map<string, { diff: Diff; socket: Socket }[]>();
-
- function dispatchNextOp(id: string): unknown {
- const next = pendingOps.get(id)?.shift();
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- const nextOp = (res: boolean) => dispatchNextOp(id);
- if (next) {
- const { diff, socket } = next;
- // ideally, we'd call the Database update method for all actions, but for now we handle list insertion/removal on our own
- switch (diff.diff.$addToSet ? 'add' : diff.diff.$remFromSet ? 'rem' : 'set') {
- case 'add': return GetRefFieldLocal(id, (result) => addToListField(socket, diff, result, nextOp)); // prettier-ignore
- case 'rem': return GetRefFieldLocal(id, (result) => remFromListField(socket, diff, result, nextOp)); // prettier-ignore
- default: return Database.Instance.update(id, diff.diff,
- () => nextOp(socket.broadcast.emit(MessageStore.UpdateField.Message, diff)),
- false
- ); // prettier-ignore
- }
- }
- return !pendingOps.get(id)?.length && pendingOps.delete(id);
- }
-
function addToListField(socket: Socket, diff: Diff, listDoc: serializedDoctype | undefined, cb: (res: boolean) => void): void {
const $addToSet = diff.diff.$addToSet as serializedFieldsType;
const updatefield = Array.from(Object.keys($addToSet ?? {}))[0];
@@ -181,6 +160,27 @@ export namespace WebSocket {
} else cb(false);
}
+ const pendingOps = new Map<string, { diff: Diff; socket: Socket }[]>();
+
+ function dispatchNextOp(id: string): unknown {
+ const next = pendingOps.get(id)?.shift();
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const nextOp = (res: boolean) => dispatchNextOp(id);
+ if (next) {
+ const { diff, socket } = next;
+ // ideally, we'd call the Database update method for all actions, but for now we handle list insertion/removal on our own
+ switch (diff.diff.$addToSet ? 'add' : diff.diff.$remFromSet ? 'rem' : 'set') {
+ case 'add': return GetRefFieldLocal(id, (result) => addToListField(socket, diff, result, nextOp)); // prettier-ignore
+ case 'rem': return GetRefFieldLocal(id, (result) => remFromListField(socket, diff, result, nextOp)); // prettier-ignore
+ default: return Database.Instance.update(id, diff.diff,
+ () => nextOp(socket.broadcast.emit(MessageStore.UpdateField.Message, diff)),
+ false
+ ); // prettier-ignore
+ }
+ }
+ return !pendingOps.get(id)?.length && pendingOps.delete(id);
+ }
+
function UpdateField(socket: Socket, diff: Diff) {
const curUser = socketMap.get(socket);
if (curUser) {