prostgles-server 4.2.535 → 4.2.537
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.
- package/dist/DboBuilder/DboBuilder.d.ts +1 -1
- package/dist/DboBuilder/DboBuilderTypes.d.ts +3 -1
- package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts +3 -1
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +20 -6
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/runSql/runSqlUtils.d.ts +1 -1
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.js +0 -4
- package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts +1 -1
- package/dist/Logging.d.ts +4 -1
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +5 -4
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +4 -2
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/SyncReplication/fetchSyncServerData.d.ts +11 -0
- package/dist/PubSubManager/SyncReplication/fetchSyncServerData.d.ts.map +1 -0
- package/dist/PubSubManager/SyncReplication/fetchSyncServerData.js +25 -0
- package/dist/PubSubManager/SyncReplication/fetchSyncServerData.js.map +1 -0
- package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.d.ts +14 -0
- package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.d.ts.map +1 -0
- package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.js +19 -0
- package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.js.map +1 -0
- package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.d.ts +8 -0
- package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.d.ts.map +1 -0
- package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.js +9 -0
- package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.js.map +1 -0
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.d.ts +40 -0
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.d.ts.map +1 -0
- package/dist/{SyncReplication.js → PubSubManager/SyncReplication/getSyncUtilFunctions.js} +84 -214
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.js.map +1 -0
- package/dist/{SyncReplication.d.ts → PubSubManager/SyncReplication/syncData.d.ts} +4 -4
- package/dist/PubSubManager/SyncReplication/syncData.d.ts.map +1 -0
- package/dist/PubSubManager/SyncReplication/syncData.js +131 -0
- package/dist/PubSubManager/SyncReplication/syncData.js.map +1 -0
- package/dist/PubSubManager/addSync.d.ts.map +1 -1
- package/dist/PubSubManager/addSync.js +10 -9
- package/dist/PubSubManager/addSync.js.map +1 -1
- package/lib/DboBuilder/DboBuilderTypes.ts +2 -1
- package/lib/DboBuilder/TableHandler/TableHandler.ts +26 -8
- package/lib/DboBuilder/schema/getTablesForSchemaPostgresSQL.ts +0 -4
- package/lib/Logging.ts +13 -1
- package/lib/PubSubManager/PubSubManager.ts +7 -5
- package/lib/PubSubManager/SyncReplication/fetchSyncServerData.ts +55 -0
- package/lib/PubSubManager/SyncReplication/getSyncBatchOptions.ts +31 -0
- package/lib/PubSubManager/SyncReplication/getSyncOrderByAndFields.ts +11 -0
- package/lib/{SyncReplication.ts → PubSubManager/SyncReplication/getSyncUtilFunctions.ts} +144 -310
- package/lib/PubSubManager/SyncReplication/syncData.ts +194 -0
- package/lib/PubSubManager/addSync.ts +13 -18
- package/package.json +2 -2
- package/dist/SyncReplication.d.ts.map +0 -1
- package/dist/SyncReplication.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSyncOrderByAndFields.js","sourceRoot":"","sources":["../../../lib/PubSubManager/SyncReplication/getSyncOrderByAndFields.ts"],"names":[],"mappings":";;;AAGO,MAAM,uBAAuB,GAAG,CAAC,EACtC,YAAY,EACZ,SAAS,GACsC,EAAE,EAAE;IACnD,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,EACrD,UAAU,GAAY,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC,CAAC;AAPW,QAAA,uBAAuB,2BAOlC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type AnyObject, type SyncBatchParams } from "prostgles-types";
|
|
2
|
+
import type { PRGLIOSocket } from "../../DboBuilder/DboBuilder";
|
|
3
|
+
import type { TableHandler } from "../../DboBuilder/TableHandler/TableHandler";
|
|
4
|
+
import type { PubSubManager, SyncParams } from "../PubSubManager";
|
|
5
|
+
import type { ClientSyncInfo, ServerSyncInfo, SyncBatchInfo } from "./syncData";
|
|
6
|
+
type Args = {
|
|
7
|
+
socket: PRGLIOSocket;
|
|
8
|
+
tableHandler: TableHandler;
|
|
9
|
+
sync: SyncParams;
|
|
10
|
+
pubSubManager: PubSubManager;
|
|
11
|
+
};
|
|
12
|
+
export declare const getSyncUtilFunctions: ({ socket, tableHandler, sync, pubSubManager }: Args) => {
|
|
13
|
+
rowsIdsMatch: (a?: AnyObject, b?: AnyObject) => boolean | undefined;
|
|
14
|
+
rowsFullyMatch: (a?: AnyObject, b?: AnyObject) => boolean | undefined;
|
|
15
|
+
getServerRowInfo: (args?: SyncBatchParams) => Promise<ServerSyncInfo>;
|
|
16
|
+
getClientRowInfo: (args?: SyncBatchInfo) => Promise<Partial<{
|
|
17
|
+
c_fr: AnyObject;
|
|
18
|
+
c_lr: AnyObject;
|
|
19
|
+
c_count: number | string;
|
|
20
|
+
}>>;
|
|
21
|
+
getClientData: (from_synced?: number, offset?: number) => Promise<AnyObject[]>;
|
|
22
|
+
getServerData: (from_synced?: number, offset?: number) => Promise<AnyObject[]>;
|
|
23
|
+
deleteData: (deleted: AnyObject[]) => Promise<void>;
|
|
24
|
+
upsertData: (data: AnyObject[]) => Promise<{
|
|
25
|
+
inserted: number;
|
|
26
|
+
updated: number;
|
|
27
|
+
total: number;
|
|
28
|
+
}>;
|
|
29
|
+
pushData: (data: AnyObject[], isSynced?: boolean) => Promise<{
|
|
30
|
+
pushed: number;
|
|
31
|
+
resp: {
|
|
32
|
+
ok: boolean;
|
|
33
|
+
};
|
|
34
|
+
}>;
|
|
35
|
+
getLastSynced: (clientSyncInfo?: ClientSyncInfo) => Promise<number | null>;
|
|
36
|
+
updateSyncLR: (data: AnyObject[]) => void;
|
|
37
|
+
syncBatch: (from_synced: SyncBatchInfo["from_synced"]) => Promise<boolean>;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=getSyncUtilFunctions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSyncUtilFunctions.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/SyncReplication/getSyncUtilFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/E,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,+CAA+C,IAAI;uBAchE,SAAS,MAAM,SAAS;yBAGtB,SAAS,MAAM,SAAS;8BAGd,eAAe,KAAQ,OAAO,CAAC,cAAc,CAAC;8BA6BpD,aAAa;;;;;8DAoBQ,OAAO,CAAC,SAAS,EAAE,CAAC;8DAmCd,OAAO,CAAC,SAAS,EAAE,CAAC;0BAM5C,SAAS,EAAE;uBA4Bd,SAAS,EAAE;;;;;qBA8Fb,SAAS,EAAE;gBAGvB,MAAM;cACR;YACJ,EAAE,EAAE,OAAO,CAAC;SACb;;qCAiCmC,cAAc,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;yBA4EzD,SAAS,EAAE;6BAmBD,aAAa,CAAC,aAAa,CAAC;CA8F/D,CAAC"}
|
|
@@ -1,57 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getSyncUtilFunctions = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
async function syncData(sync, clientData, source) {
|
|
13
|
-
await this._log({
|
|
14
|
-
type: "sync",
|
|
15
|
-
command: "syncData",
|
|
16
|
-
tableName: sync.table_name,
|
|
17
|
-
sid: sync.sid,
|
|
18
|
-
source,
|
|
19
|
-
...(0, prostgles_types_1.pickKeys)(sync, ["socket_id", "condition", "last_synced", "is_syncing"]),
|
|
20
|
-
lr: JSON.stringify(sync.lr),
|
|
21
|
-
connectedSocketIds: this.dboBuilder.prostgles.connectedSockets.map((s) => s.id),
|
|
22
|
-
localParams: undefined,
|
|
23
|
-
duration: -1,
|
|
24
|
-
socketId: sync.socket_id,
|
|
25
|
-
});
|
|
26
|
-
const { socket_id, channel_name, table_name, filter, table_rules, params, synced_field, id_fields = [], batch_size, wal, throttle = 0, } = sync;
|
|
27
|
-
const socket = this.sockets[socket_id];
|
|
28
|
-
if (!socket) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const tableHandler = this.dbo[table_name];
|
|
32
|
-
if (!tableHandler?.find) {
|
|
33
|
-
throw `dbo.${table_name}.find missing or not allowed`;
|
|
34
|
-
}
|
|
35
|
-
const sync_fields = [synced_field, ...id_fields.sort()], orderByAsc = sync_fields.reduce((a, v) => ({ ...a, [v]: true }), {}), rowsIdsMatch = (a, b) => {
|
|
5
|
+
const getSyncOrderByAndFields_1 = require("./getSyncOrderByAndFields");
|
|
6
|
+
const fetchSyncServerData_1 = require("./fetchSyncServerData");
|
|
7
|
+
const PubSubManagerUtils_1 = require("../PubSubManagerUtils");
|
|
8
|
+
const getSyncUtilFunctions = ({ socket, tableHandler, sync, pubSubManager }) => {
|
|
9
|
+
const { synced_field, socket_id, id_fields, filter, table_rules, batch_size, channel_name, table_name, params, } = sync;
|
|
10
|
+
const { orderByAsc, sync_fields } = (0, getSyncOrderByAndFields_1.getSyncOrderByAndFields)({ synced_field, id_fields }), rowsIdsMatch = (a, b) => {
|
|
36
11
|
return a && b && !id_fields.find((key) => a[key].toString() !== b[key].toString());
|
|
37
12
|
}, rowsFullyMatch = (a, b) => {
|
|
38
13
|
return rowsIdsMatch(a, b) && a?.[synced_field].toString() === b?.[synced_field].toString();
|
|
39
14
|
}, getServerRowInfo = async (args = {}) => {
|
|
40
|
-
const { from_synced
|
|
41
|
-
const
|
|
42
|
-
if (from_synced || to_synced) {
|
|
43
|
-
|
|
44
|
-
...(from_synced ? { $gte: from_synced } : {}),
|
|
45
|
-
...(to_synced ? { $lte: to_synced } : {}),
|
|
15
|
+
const { from_synced, to_synced, offset = 0, limit } = args;
|
|
16
|
+
const batchFilter = { ...filter };
|
|
17
|
+
if ((0, prostgles_types_1.isDefined)(from_synced) || (0, prostgles_types_1.isDefined)(to_synced)) {
|
|
18
|
+
batchFilter[synced_field] = {
|
|
19
|
+
...((0, prostgles_types_1.isDefined)(from_synced) ? { $gte: from_synced } : {}),
|
|
20
|
+
...((0, prostgles_types_1.isDefined)(to_synced) ? { $lte: to_synced } : {}),
|
|
46
21
|
};
|
|
47
22
|
}
|
|
48
|
-
const first_rows = await tableHandler.find(
|
|
23
|
+
const first_rows = (await tableHandler.find(batchFilter, { orderBy: orderByAsc, select: sync_fields, limit, offset }, undefined, table_rules, { clientReq: { socket } }));
|
|
49
24
|
const last_rows = first_rows.slice(-1); // Why not logic below?
|
|
50
25
|
// const last_rows = await _this?.dbo[table_name]?.find?.(_filter, { orderBy: (orderByDesc as OrderBy), select: sync_fields, limit: 1, offset: -offset || 0 }, null, table_rules);
|
|
51
|
-
const count = await tableHandler.count(
|
|
26
|
+
const count = await tableHandler.count(batchFilter, undefined, undefined, table_rules);
|
|
52
27
|
return {
|
|
53
|
-
s_fr: first_rows[0]
|
|
54
|
-
s_lr: last_rows[0]
|
|
28
|
+
s_fr: first_rows[0],
|
|
29
|
+
s_lr: last_rows[0],
|
|
55
30
|
s_count: count,
|
|
56
31
|
};
|
|
57
32
|
}, getClientRowInfo = (args = {}) => {
|
|
@@ -101,23 +76,7 @@ async function syncData(sync, clientData, source) {
|
|
|
101
76
|
});
|
|
102
77
|
}
|
|
103
78
|
}, getServerData = async (from_synced = 0, offset = 0) => {
|
|
104
|
-
|
|
105
|
-
...filter,
|
|
106
|
-
[synced_field]: { $gte: from_synced || 0 },
|
|
107
|
-
};
|
|
108
|
-
try {
|
|
109
|
-
const res = await tableHandler.find(_filter, {
|
|
110
|
-
select: params.select,
|
|
111
|
-
orderBy: orderByAsc,
|
|
112
|
-
offset: offset || 0,
|
|
113
|
-
limit: batch_size,
|
|
114
|
-
}, undefined, table_rules, { clientReq: { socket } });
|
|
115
|
-
return res;
|
|
116
|
-
}
|
|
117
|
-
catch (e) {
|
|
118
|
-
console.error("Sync getServerData failed: ", e);
|
|
119
|
-
throw "INTERNAL ERROR";
|
|
120
|
-
}
|
|
79
|
+
return (0, fetchSyncServerData_1.fetchSyncServerData)({ tableHandler, socket, from_synced, offset }, { filter, id_fields, params, synced_field, batch_size, table_rules });
|
|
121
80
|
}, deleteData = async (deleted) => {
|
|
122
81
|
// console.log("deleteData deleteData deleteData " + deleted.length);
|
|
123
82
|
// if (allow_delete) {
|
|
@@ -125,7 +84,7 @@ async function syncData(sync, clientData, source) {
|
|
|
125
84
|
// deleted.map(async (d) => {
|
|
126
85
|
// const id_filter = pickKeys(d, id_fields);
|
|
127
86
|
// try {
|
|
128
|
-
// await (
|
|
87
|
+
// await (pubSubManager.dbo[table_name] as TableHandler).delete(
|
|
129
88
|
// id_filter,
|
|
130
89
|
// undefined,
|
|
131
90
|
// undefined,
|
|
@@ -148,44 +107,35 @@ async function syncData(sync, clientData, source) {
|
|
|
148
107
|
*/
|
|
149
108
|
upsertData = async (data) => {
|
|
150
109
|
const start = Date.now();
|
|
151
|
-
const result = await
|
|
110
|
+
const result = await pubSubManager.dboBuilder
|
|
152
111
|
.getTX(async (dbTX) => {
|
|
153
112
|
const tableHandlerTx = dbTX[table_name];
|
|
154
113
|
const existingData = await tableHandlerTx.find({ $or: data.map((d) => (0, prostgles_types_1.pickKeys)(d, id_fields)) }, {
|
|
155
114
|
select: [synced_field, ...id_fields],
|
|
156
115
|
orderBy: orderByAsc,
|
|
157
116
|
}, undefined, table_rules, { clientReq: { socket } });
|
|
158
|
-
let
|
|
159
|
-
let
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
};
|
|
170
|
-
updateData.push([syncSafeFilter, (0, prostgles_types_1.omitKeys)(upd, id_fields)]);
|
|
171
|
-
}));
|
|
172
|
-
await tableHandlerTx.updateBatch(updateData, { removeDisallowedFields: true }, undefined, table_rules, { clientReq: { socket } });
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
updates = [];
|
|
176
|
-
}
|
|
177
|
-
if (table_rules.insert && inserts.length) {
|
|
178
|
-
await tableHandlerTx.insert(inserts, { removeDisallowedFields: true }, undefined, table_rules, { clientReq: { socket } });
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
inserts = [];
|
|
182
|
-
}
|
|
183
|
-
return { inserts, updates };
|
|
117
|
+
let rowsToInsert = data.filter((d) => !existingData.find((ed) => rowsIdsMatch(ed, d)));
|
|
118
|
+
let rowsToUpdate = data.filter((d) => existingData.find((ed) => rowsIdsMatch(ed, d) && Number(ed[synced_field]) < Number(d[synced_field])));
|
|
119
|
+
if (table_rules.update && rowsToUpdate.length) {
|
|
120
|
+
const batchUpdates = rowsToUpdate.map((rowToUpdate) => {
|
|
121
|
+
const id_filter = (0, prostgles_types_1.pickKeys)(rowToUpdate, id_fields);
|
|
122
|
+
const syncSafeFilter = {
|
|
123
|
+
$and: [id_filter, { [synced_field]: { "<": rowToUpdate[synced_field] } }],
|
|
124
|
+
};
|
|
125
|
+
return [syncSafeFilter, (0, prostgles_types_1.omitKeys)(rowToUpdate, id_fields)];
|
|
126
|
+
});
|
|
127
|
+
await tableHandlerTx.updateBatch(batchUpdates, { removeDisallowedFields: true }, undefined, table_rules, { clientReq: { socket } });
|
|
184
128
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
129
|
+
else {
|
|
130
|
+
rowsToUpdate = [];
|
|
131
|
+
}
|
|
132
|
+
if (table_rules.insert && rowsToInsert.length) {
|
|
133
|
+
await tableHandlerTx.insert(rowsToInsert, { removeDisallowedFields: true }, undefined, table_rules, { clientReq: { socket } });
|
|
188
134
|
}
|
|
135
|
+
else {
|
|
136
|
+
rowsToInsert = [];
|
|
137
|
+
}
|
|
138
|
+
return { inserts: rowsToInsert, updates: rowsToUpdate };
|
|
189
139
|
})
|
|
190
140
|
.then(({ inserts, updates }) => {
|
|
191
141
|
(0, PubSubManagerUtils_1.log)(`upsertData: inserted( ${inserts.length} ) updated( ${updates.length} ) total( ${data.length} ) \n last insert ${JSON.stringify(inserts.at(-1))} \n last update ${JSON.stringify(updates.at(-1))}`);
|
|
@@ -199,15 +149,17 @@ async function syncData(sync, clientData, source) {
|
|
|
199
149
|
console.trace("Something went wrong with syncing to server: " + err.message, data.length, id_fields);
|
|
200
150
|
return Promise.reject(new Error("Something went wrong with syncing to server: "));
|
|
201
151
|
});
|
|
202
|
-
await
|
|
152
|
+
await pubSubManager._log({
|
|
203
153
|
type: "sync",
|
|
204
154
|
command: "upsertData",
|
|
155
|
+
channelName: channel_name,
|
|
205
156
|
tableName: sync.table_name,
|
|
206
157
|
rows: data.length,
|
|
207
158
|
socketId: socket_id,
|
|
208
159
|
sid: sync.sid,
|
|
209
160
|
duration: Date.now() - start,
|
|
210
|
-
connectedSocketIds:
|
|
161
|
+
connectedSocketIds: pubSubManager.dboBuilder.prostgles.connectedSockets.map((s) => s.id),
|
|
162
|
+
syncParams: sync,
|
|
211
163
|
});
|
|
212
164
|
return result;
|
|
213
165
|
},
|
|
@@ -215,13 +167,13 @@ async function syncData(sync, clientData, source) {
|
|
|
215
167
|
* Pushes the given data to client
|
|
216
168
|
* @param isSynced = true if
|
|
217
169
|
*/
|
|
218
|
-
pushData = async (data, isSynced = false
|
|
170
|
+
pushData = async (data, isSynced = false) => {
|
|
219
171
|
const start = Date.now();
|
|
220
172
|
const result = await new Promise((resolve, reject) => {
|
|
221
173
|
socket.emit(channel_name, { data, isSynced }, (resp) => {
|
|
222
174
|
if (resp && resp.ok) {
|
|
223
175
|
// console.log("PUSHED to client: fr/lr", data[0], data[data.length - 1]);
|
|
224
|
-
resolve({ pushed: data
|
|
176
|
+
resolve({ pushed: data.length, resp });
|
|
225
177
|
}
|
|
226
178
|
else {
|
|
227
179
|
reject(resp);
|
|
@@ -229,15 +181,17 @@ async function syncData(sync, clientData, source) {
|
|
|
229
181
|
}
|
|
230
182
|
});
|
|
231
183
|
});
|
|
232
|
-
await
|
|
184
|
+
await pubSubManager._log({
|
|
233
185
|
type: "sync",
|
|
234
186
|
command: "pushData",
|
|
235
187
|
tableName: sync.table_name,
|
|
236
|
-
rows: data
|
|
188
|
+
rows: data.length,
|
|
237
189
|
socketId: socket_id,
|
|
238
190
|
duration: Date.now() - start,
|
|
239
191
|
sid: sync.sid,
|
|
240
|
-
connectedSocketIds:
|
|
192
|
+
connectedSocketIds: pubSubManager.dboBuilder.prostgles.connectedSockets.map((s) => s.id),
|
|
193
|
+
channelName: channel_name,
|
|
194
|
+
syncParams: sync,
|
|
241
195
|
});
|
|
242
196
|
return result;
|
|
243
197
|
},
|
|
@@ -291,7 +245,7 @@ async function syncData(sync, clientData, source) {
|
|
|
291
245
|
sync_fields.map((key) => {
|
|
292
246
|
_filter[key] = c_lr[key];
|
|
293
247
|
});
|
|
294
|
-
server_row = await
|
|
248
|
+
server_row = await tableHandler.find(_filter, { select: sync_fields, limit: 1 }, undefined, table_rules, { clientReq: { socket } });
|
|
295
249
|
}
|
|
296
250
|
// if(rowsFullyMatch(c_lr, s_lr)){ //c_count === s_count &&
|
|
297
251
|
if (server_row && server_row.length) {
|
|
@@ -309,23 +263,24 @@ async function syncData(sync, clientData, source) {
|
|
|
309
263
|
}
|
|
310
264
|
return result;
|
|
311
265
|
}, updateSyncLR = (data) => {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
sync.
|
|
320
|
-
sync.last_synced = +sync.lr?.[synced_field];
|
|
266
|
+
const lastRow = data.at(-1);
|
|
267
|
+
if (!lastRow) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
if (sync.lr?.[synced_field] && +sync.lr[synced_field] > +lastRow[synced_field]) {
|
|
271
|
+
console.error({
|
|
272
|
+
syncIssue: "sync.lr[synced_field] is greater than lastRow[synced_field]",
|
|
273
|
+
}, sync.table_name);
|
|
321
274
|
}
|
|
275
|
+
sync.lr = lastRow;
|
|
276
|
+
sync.last_synced = +sync.lr[synced_field];
|
|
322
277
|
},
|
|
323
278
|
/**
|
|
324
279
|
* Will push pull sync between client and server from a given from_synced value
|
|
325
280
|
*/
|
|
326
281
|
syncBatch = async (from_synced) => {
|
|
327
282
|
let offset = 0, canContinue = true;
|
|
328
|
-
const limit = batch_size, min_synced = from_synced || 0
|
|
283
|
+
const limit = batch_size, min_synced = from_synced || 0;
|
|
329
284
|
let inserted = 0, updated = 0, pushed = 0, total = 0;
|
|
330
285
|
const deleted = 0;
|
|
331
286
|
// console.log("syncBatch", from_synced)
|
|
@@ -342,7 +297,7 @@ async function syncData(sync, clientData, source) {
|
|
|
342
297
|
}
|
|
343
298
|
catch (e) {
|
|
344
299
|
console.trace("sync getServerData err", e);
|
|
345
|
-
await pushData(undefined, undefined, "Internal error. Check server logs");
|
|
300
|
+
// await pushData(undefined, undefined, "Internal error. Check server logs");
|
|
346
301
|
throw " d";
|
|
347
302
|
}
|
|
348
303
|
// TODO: Implement delete ensuring:
|
|
@@ -354,7 +309,7 @@ async function syncData(sync, clientData, source) {
|
|
|
354
309
|
// await Promise.all(
|
|
355
310
|
// to_delete.map((d) => {
|
|
356
311
|
// deleted++;
|
|
357
|
-
// return (
|
|
312
|
+
// return (pubSubManager.dbo[table_name] as TableHandler).delete(
|
|
358
313
|
// pickKeys(d, id_fields),
|
|
359
314
|
// {},
|
|
360
315
|
// undefined,
|
|
@@ -376,113 +331,28 @@ async function syncData(sync, clientData, source) {
|
|
|
376
331
|
total += serverData.length;
|
|
377
332
|
}
|
|
378
333
|
offset += serverData.length;
|
|
379
|
-
// canContinue = offset >= limit;
|
|
380
334
|
canContinue = serverData.length >= limit;
|
|
381
|
-
// console.log(`sData ${sData.length} limit ${limit}`);
|
|
382
335
|
}
|
|
383
336
|
(0, PubSubManagerUtils_1.log)(`server.syncBatch ${table_name}: inserted( ${inserted} ) updated( ${updated} ) deleted( ${deleted} ) pushed to client( ${pushed} ) total( ${total} )`, socket._user);
|
|
384
337
|
return true;
|
|
385
338
|
};
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
// console.log("WAL upsertData END")
|
|
405
|
-
/******** */
|
|
406
|
-
/* TO DO -> Store and push patch updates instead of full data if and where possible */
|
|
407
|
-
/******** */
|
|
408
|
-
// 1. Store successfully upserted wal items for a couple of seconds
|
|
409
|
-
// 2. When pushing data to clients check if any matching wal items exist
|
|
410
|
-
// 3. Replace text fields with matching patched data
|
|
411
|
-
return res;
|
|
412
|
-
},
|
|
413
|
-
onSendEnd: (batch) => {
|
|
414
|
-
updateSyncLR(batch);
|
|
415
|
-
sync.is_syncing = false;
|
|
416
|
-
// console.log("syncData from WAL.onSendEnd")
|
|
417
|
-
/**
|
|
418
|
-
* After all data was inserted request SyncInfo from client and sync again if necessary
|
|
419
|
-
*/
|
|
420
|
-
void this.syncData(sync, undefined, source);
|
|
421
|
-
},
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
/* Debounce sync requests */
|
|
425
|
-
if (!sync.wal)
|
|
426
|
-
throw "sync.wal missing";
|
|
427
|
-
if (!sync.wal.isSending() && sync.is_syncing) {
|
|
428
|
-
if (!this.syncTimeout) {
|
|
429
|
-
this.syncTimeout = setTimeout(() => {
|
|
430
|
-
this.syncTimeout = undefined;
|
|
431
|
-
// console.log("SYNC FROM TIMEOUT")
|
|
432
|
-
void this.syncData(sync, undefined, source);
|
|
433
|
-
}, throttle);
|
|
434
|
-
}
|
|
435
|
-
// console.log("SYNC THROTTLE")
|
|
436
|
-
return;
|
|
437
|
-
}
|
|
438
|
-
// console.log("syncData", clientData)
|
|
439
|
-
/**
|
|
440
|
-
* Express data sent from a client that has already been synced
|
|
441
|
-
* Add to WAL manager which will sync at the end
|
|
442
|
-
*/
|
|
443
|
-
if (clientData) {
|
|
444
|
-
if (clientData.data && Array.isArray(clientData.data) && clientData.data.length) {
|
|
445
|
-
return sync.wal.addData(clientData.data.map((d) => ({ current: d })));
|
|
446
|
-
// await upsertData(clientData.data, true);
|
|
447
|
-
/* Not expecting this anymore. use normal db.table.delete channel */
|
|
448
|
-
}
|
|
449
|
-
else if (clientData.deleted &&
|
|
450
|
-
Array.isArray(clientData.deleted) &&
|
|
451
|
-
clientData.deleted.length) {
|
|
452
|
-
await deleteData(clientData.deleted);
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
456
|
-
// do nothing
|
|
457
|
-
}
|
|
458
|
-
if (sync.wal.isSending())
|
|
459
|
-
return;
|
|
460
|
-
sync.is_syncing = true;
|
|
461
|
-
// from synced does not make sense. It should be sync.lr only!!!
|
|
462
|
-
let from_synced = null;
|
|
463
|
-
/** Sync was already synced */
|
|
464
|
-
if (sync.lr) {
|
|
465
|
-
const { s_lr } = await getServerRowInfo();
|
|
466
|
-
/* Make sure trigger is not firing on freshly synced data */
|
|
467
|
-
if (!rowsFullyMatch(sync.lr, s_lr)) {
|
|
468
|
-
from_synced = sync.last_synced;
|
|
469
|
-
}
|
|
470
|
-
else {
|
|
471
|
-
// console.log("rowsFullyMatch")
|
|
472
|
-
}
|
|
473
|
-
// console.log(table_name, sync.lr[synced_field])
|
|
474
|
-
}
|
|
475
|
-
else {
|
|
476
|
-
from_synced = await getLastSynced(clientData);
|
|
477
|
-
}
|
|
478
|
-
if (from_synced !== null) {
|
|
479
|
-
await syncBatch(from_synced);
|
|
480
|
-
}
|
|
481
|
-
else {
|
|
482
|
-
// console.log("from_synced is null")
|
|
483
|
-
}
|
|
484
|
-
await pushData([], true);
|
|
485
|
-
sync.is_syncing = false;
|
|
486
|
-
// console.log(`Finished sync for ${table_name}`, socket._user);
|
|
339
|
+
return {
|
|
340
|
+
rowsIdsMatch,
|
|
341
|
+
rowsFullyMatch,
|
|
342
|
+
getServerRowInfo,
|
|
343
|
+
getClientRowInfo,
|
|
344
|
+
getClientData,
|
|
345
|
+
getServerData,
|
|
346
|
+
deleteData,
|
|
347
|
+
upsertData,
|
|
348
|
+
pushData,
|
|
349
|
+
getLastSynced,
|
|
350
|
+
updateSyncLR,
|
|
351
|
+
syncBatch,
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
exports.getSyncUtilFunctions = getSyncUtilFunctions;
|
|
355
|
+
function getNumbers(numberArr) {
|
|
356
|
+
return numberArr.filter((v) => v !== null && v !== undefined && Number.isFinite(+v));
|
|
487
357
|
}
|
|
488
|
-
//# sourceMappingURL=
|
|
358
|
+
//# sourceMappingURL=getSyncUtilFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSyncUtilFunctions.js","sourceRoot":"","sources":["../../../lib/PubSubManager/SyncReplication/getSyncUtilFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { AnyObject } from "prostgles-types";
|
|
2
|
-
import type { PubSubManager, SyncParams } from "
|
|
2
|
+
import type { PubSubManager, SyncParams } from "../PubSubManager";
|
|
3
3
|
export type ClientSyncInfo = Partial<{
|
|
4
4
|
c_fr: AnyObject;
|
|
5
5
|
c_lr: AnyObject;
|
|
6
6
|
/**
|
|
7
|
-
* PG count is
|
|
7
|
+
* PG count is usually string due to bigint
|
|
8
8
|
*/
|
|
9
9
|
c_count: number | string;
|
|
10
10
|
}>;
|
|
@@ -12,7 +12,7 @@ export type ServerSyncInfo = Partial<{
|
|
|
12
12
|
s_fr: AnyObject;
|
|
13
13
|
s_lr: AnyObject;
|
|
14
14
|
/**
|
|
15
|
-
* PG count is
|
|
15
|
+
* PG count is usually string due to bigint
|
|
16
16
|
*/
|
|
17
17
|
s_count: number | string;
|
|
18
18
|
}>;
|
|
@@ -34,4 +34,4 @@ export type ClientExpressData = ClientSyncInfo & {
|
|
|
34
34
|
* Server or client requested data sync
|
|
35
35
|
*/
|
|
36
36
|
export declare function syncData(this: PubSubManager, sync: SyncParams, clientData: ClientExpressData | undefined, source: "trigger" | "client"): Promise<void>;
|
|
37
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=syncData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncData.d.ts","sourceRoot":"","sources":["../../../lib/PubSubManager/SyncReplication/syncData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIlE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAC7B;IACE,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,GACD;IACE,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,MAAM,EAAE,SAAS,GAAG,QAAQ,iBA8I7B"}
|