prostgles-client 4.0.355 → 4.0.357

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,18 +18,18 @@ const getAuthHandler = ({ authData: authConfig, socket, onReload, endpoint, ...a
18
18
  if (onReload)
19
19
  onReload();
20
20
  else if (prostgles_1.isClientSide) {
21
- console.log("prostgles page reload due to authguard", res);
21
+ console.log("prostgles page reload due to auth guard", res);
22
22
  setTimeout(() => {
23
23
  window.location.reload();
24
24
  }, 200);
25
25
  }
26
26
  }
27
27
  };
28
- socket.emit(prostgles_types_1.CHANNELS.AUTHGUARD, JSON.stringify(window.location), (_err, res) => {
28
+ socket.emit(prostgles_types_1.CHANNELS.AUTH_GUARD, JSON.stringify(window.location), (_err, res) => {
29
29
  doReload(res);
30
30
  });
31
- socket.removeAllListeners(prostgles_types_1.CHANNELS.AUTHGUARD);
32
- socket.on(prostgles_types_1.CHANNELS.AUTHGUARD, (res) => {
31
+ socket.removeAllListeners(prostgles_types_1.CHANNELS.AUTH_GUARD);
32
+ socket.on(prostgles_types_1.CHANNELS.AUTH_GUARD, (res) => {
33
33
  doReload(res);
34
34
  });
35
35
  }
@@ -54,15 +54,15 @@ const getDB = ({ tableSchema, onDebug, syncedTable, syncHandler, subscriptionHan
54
54
  const upsertSyncTable = async (basicFilter = {}, options = {}, onError) => {
55
55
  var _a;
56
56
  const syncName = `${tableName}.${JSON.stringify(basicFilter)}.${JSON.stringify((0, prostgles_types_1.omitKeys)(options, ["handlesOnData"]))}`;
57
- const syncedTableHandler = (_a = syncHandler.syncedTables[syncName]) !== null && _a !== void 0 ? _a : (await syncedTable.create({
57
+ const syncedTableHandler = (_a = syncHandler.syncedTables.get(syncName)) !== null && _a !== void 0 ? _a : syncedTable.create({
58
58
  ...options,
59
- onDebug: onDebug,
59
+ onDebug,
60
60
  name: tableName,
61
61
  filter: basicFilter,
62
62
  db: db,
63
63
  onError,
64
- }));
65
- syncHandler.syncedTables[syncName] = syncedTableHandler;
64
+ });
65
+ syncHandler.syncedTables.set(syncName, syncedTableHandler);
66
66
  return syncedTableHandler;
67
67
  };
68
68
  const syncOne = (async (basicFilter, options = { handlesOnData: true }, onChange, onError) => {
@@ -1,9 +1,9 @@
1
1
  import { type ClientSyncHandles } from "prostgles-types";
2
2
  import type { CoreParams, InitOptions } from "./prostgles";
3
3
  import type { SyncedTable } from "./SyncedTable/SyncedTable";
4
- export declare const getSyncHandler: ({ socket }: Pick<InitOptions, "socket">) => {
4
+ export declare const getSyncHandler: ({ socket, onDebug }: Pick<InitOptions, "socket" | "onDebug">) => {
5
5
  destroySyncs: () => Promise<void>;
6
- syncedTables: Record<string, SyncedTable>;
6
+ syncedTables: Map<string, Promise<SyncedTable>>;
7
7
  addSync: (params: CoreParams, triggers: ClientSyncHandles) => Promise<any>;
8
8
  reAttachAll: () => Promise<void>;
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getSyncHandler.d.ts","sourceRoot":"","sources":["../lib/getSyncHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,KAAK,EAAe,UAAU,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAa1E,eAAO,MAAM,cAAc,GAAI,YAAY,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;;sBAyDrC,UAAU,YAAY,iBAAiB,KAAG,OAAO,CAAC,GAAG,CAAC;;CAoItF,CAAC"}
1
+ {"version":3,"file":"getSyncHandler.d.ts","sourceRoot":"","sources":["../lib/getSyncHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,KAAK,EAAe,UAAU,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQ1E,eAAO,MAAM,cAAc,GAAI,qBAAqB,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;;;sBA8D1D,UAAU,YAAY,iBAAiB,KAAG,OAAO,CAAC,GAAG,CAAC;;CA+ItF,CAAC"}
@@ -4,47 +4,47 @@ exports.getSyncHandler = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const FunctionQueuer_1 = require("./FunctionQueuer");
6
6
  const prostgles_1 = require("./prostgles");
7
- const preffix = prostgles_types_1.CHANNELS._preffix;
8
- const getSyncHandler = ({ socket }) => {
9
- let syncedTables = {};
10
- let syncs = {};
7
+ const getSyncHandler = ({ socket, onDebug }) => {
8
+ const syncedTables = new Map();
9
+ const syncs = new Map();
11
10
  const destroySyncs = async () => {
12
11
  (0, prostgles_1.debug)("destroySyncs", { syncedTables });
13
- syncs = {};
14
- Object.values(syncedTables).forEach((s) => {
15
- s.destroy();
12
+ syncs.clear();
13
+ Array.from(syncedTables.values()).forEach((s) => {
14
+ s.then((s) => s.destroy());
16
15
  });
17
- syncedTables = {};
16
+ syncedTables.clear();
18
17
  };
19
18
  function _unsync(channelName, triggers) {
20
19
  (0, prostgles_1.debug)("_unsync", { channelName, triggers });
21
20
  return new Promise((resolve, reject) => {
22
- if (syncs[channelName]) {
23
- syncs[channelName].triggers = syncs[channelName].triggers.filter((tr) => tr.onPullRequest !== triggers.onPullRequest &&
21
+ const sync = syncs.get(channelName);
22
+ if (sync) {
23
+ sync.clientSyncHandles = sync.clientSyncHandles.filter((tr) => tr.onPullRequest !== triggers.onPullRequest &&
24
24
  tr.onSyncRequest !== triggers.onSyncRequest &&
25
25
  tr.onUpdates !== triggers.onUpdates);
26
- if (!syncs[channelName].triggers.length) {
26
+ if (!sync.clientSyncHandles.length) {
27
27
  socket.emit(channelName + "unsync", {}, (err, res) => {
28
28
  if (err)
29
29
  reject(err);
30
30
  else
31
31
  resolve(res);
32
32
  });
33
- socket.removeListener(channelName, syncs[channelName].onCall);
34
- delete syncs[channelName];
33
+ socket.removeListener(channelName, sync.onCall);
34
+ syncs.delete(channelName);
35
35
  }
36
36
  }
37
37
  });
38
38
  }
39
39
  function addServerSync({ tableName, command, param1, param2 }, onSyncRequest) {
40
40
  return new Promise((resolve, reject) => {
41
- socket.emit(preffix, { tableName, command, param1, param2 }, (err, res) => {
41
+ socket.emit(prostgles_types_1.CHANNEL_PREFIX, { tableName, command, param1, param2 }, (err, syncInfo) => {
42
42
  if (err) {
43
43
  console.error(err);
44
44
  reject(err);
45
45
  }
46
- else if (res) {
47
- const { id_fields, synced_field, channelName } = res;
46
+ else if (syncInfo) {
47
+ const { id_fields, synced_field, channelName } = syncInfo;
48
48
  socket.emit(channelName, { onSyncRequest: onSyncRequest({}) }, (response) => {
49
49
  console.log(response);
50
50
  });
@@ -57,11 +57,11 @@ const getSyncHandler = ({ socket }) => {
57
57
  async function addSync(params, triggers) {
58
58
  return addSyncQueuer.run([params, triggers]);
59
59
  }
60
- async function _addSync({ tableName, command, param1, param2 }, triggers) {
61
- const { onSyncRequest } = triggers;
60
+ async function _addSync({ tableName, command, param1, param2 }, clientSyncHandlers) {
61
+ const { onSyncRequest } = clientSyncHandlers;
62
62
  function makeHandler(channelName) {
63
63
  const unsync = function () {
64
- _unsync(channelName, triggers);
64
+ _unsync(channelName, clientSyncHandlers);
65
65
  };
66
66
  const syncData = function (data, deleted, cb) {
67
67
  socket.emit(channelName, {
@@ -76,16 +76,15 @@ const getSyncHandler = ({ socket }) => {
76
76
  };
77
77
  return Object.freeze({ unsync, syncData });
78
78
  }
79
- const existingChannel = Object.keys(syncs).find((ch) => {
80
- const s = syncs[ch];
81
- return (s &&
82
- s.tableName === tableName &&
79
+ const matchingSync = Array.from(syncs.entries()).find(([ch, s]) => {
80
+ return (s.tableName === tableName &&
83
81
  s.command === command &&
84
82
  (0, prostgles_types_1.isEqual)(s.param1, param1) &&
85
83
  (0, prostgles_types_1.isEqual)(s.param2, param2));
86
84
  });
87
- if (existingChannel) {
88
- syncs[existingChannel].triggers.push(triggers);
85
+ if (matchingSync) {
86
+ const [existingChannel, existingSync] = matchingSync;
87
+ existingSync.clientSyncHandles.push(clientSyncHandlers);
89
88
  return makeHandler(existingChannel);
90
89
  }
91
90
  else {
@@ -101,9 +100,20 @@ const getSyncHandler = ({ socket }) => {
101
100
  */
102
101
  if (!data)
103
102
  return;
104
- if (!syncs[channelName])
103
+ const matchingSync = syncs.get(channelName);
104
+ if (!matchingSync)
105
105
  return;
106
- syncs[channelName].triggers.map(({ onUpdates, onSyncRequest, onPullRequest }) => {
106
+ matchingSync.clientSyncHandles.map(({ onUpdates, onSyncRequest, onPullRequest }) => {
107
+ onDebug === null || onDebug === void 0 ? void 0 : onDebug({
108
+ type: "sync",
109
+ command: data.data ? "onUpdates"
110
+ : data.onSyncRequest ? "onSyncRequest"
111
+ : "onPullRequest",
112
+ tableName,
113
+ channelName,
114
+ data,
115
+ syncedTable: syncedTables.get(channelName),
116
+ });
107
117
  if (data.data) {
108
118
  Promise.resolve(onUpdates(data))
109
119
  .then(() => {
@@ -134,23 +144,23 @@ const getSyncHandler = ({ socket }) => {
134
144
  }
135
145
  });
136
146
  };
137
- syncs[channelName] = {
147
+ syncs.set(channelName, {
138
148
  tableName,
139
149
  command,
140
150
  param1,
141
151
  param2,
142
- triggers: [triggers],
152
+ clientSyncHandles: [clientSyncHandlers],
143
153
  syncInfo: sync_info,
144
154
  onCall,
145
- };
155
+ });
146
156
  socket.on(channelName, onCall);
147
157
  return makeHandler(channelName);
148
158
  }
149
159
  }
150
160
  const reAttachAll = async () => {
151
161
  let reAttached = 0;
152
- Object.entries(syncs).forEach(async ([ch, s]) => {
153
- const firstTrigger = s.triggers[0];
162
+ Array.from(syncs.entries()).forEach(async ([ch, s]) => {
163
+ const firstTrigger = s.clientSyncHandles[0];
154
164
  if (firstTrigger) {
155
165
  try {
156
166
  await addServerSync(s, firstTrigger.onSyncRequest);