@mgarlik/datastore 0.1.16 → 0.1.18
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/index.cjs +7 -92
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -92
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -705,8 +705,8 @@ var buildUri = ({
|
|
|
705
705
|
return dataSource.uri || `${dataSource.model || ""}/`;
|
|
706
706
|
};
|
|
707
707
|
var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime }) => {
|
|
708
|
-
if (dataSource)
|
|
709
|
-
else
|
|
708
|
+
if (dataSource) console.error("[axios] GET Data Source: ", buildUri({ dataSource, method: "read" }));
|
|
709
|
+
else console.error("axios No DataSource for ", id);
|
|
710
710
|
let persistedData = [];
|
|
711
711
|
var params = { ...dataSource?.params };
|
|
712
712
|
if (dataSource?.filter) params.filter = dataSource.filter;
|
|
@@ -722,7 +722,7 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
|
|
|
722
722
|
if (changeTime) {
|
|
723
723
|
params.changeTime = changeTime;
|
|
724
724
|
} else if (isPersisting && SQLite) {
|
|
725
|
-
console.
|
|
725
|
+
console.error("[axios] Nacitani dat z SQLite pro ", id, " s parametrem changeTimeFrom: ", params.changeTimeFrom);
|
|
726
726
|
const qDatum = await SQLite.read(`SELECT * FROM documents WHERE model = '${id}' ORDER BY lastUpdate DESC`);
|
|
727
727
|
console.warn("[axios] SQLite.read Posledni datum update: ", qDatum[0]?.lastUpdate);
|
|
728
728
|
if (qDatum[0]?.lastUpdate) params.changeTimeFrom = qDatum[0].lastUpdate;
|
|
@@ -739,10 +739,9 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
|
|
|
739
739
|
return null;
|
|
740
740
|
}
|
|
741
741
|
}).filter((item) => item !== null);
|
|
742
|
-
console.timeEnd("Persisted Data");
|
|
743
742
|
}
|
|
744
743
|
if (dataSource) {
|
|
745
|
-
console.
|
|
744
|
+
console.error("[axios] Stahuji data z ", buildUri({ dataSource, method: "read" }), " s parametry ", params);
|
|
746
745
|
const axiosResponse = await import_axios.default.get(buildUri({ dataSource, method: "read" }), { params: serializeParams(params) });
|
|
747
746
|
if (schema && !dataSource.readAllFields) {
|
|
748
747
|
const mapBySchema = (element) => {
|
|
@@ -780,7 +779,7 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
|
|
|
780
779
|
newData = axiosResponse.data.data;
|
|
781
780
|
}
|
|
782
781
|
const dataCount = Array.isArray(newData) ? newData.length : "single";
|
|
783
|
-
console.
|
|
782
|
+
console.error(
|
|
784
783
|
`[axios](SERVER TIME: ${axiosResponse.data.queryTime}) Data:`,
|
|
785
784
|
dataCount,
|
|
786
785
|
"items, Size:",
|
|
@@ -793,7 +792,6 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
|
|
|
793
792
|
}
|
|
794
793
|
}
|
|
795
794
|
if (Array.isArray(newData)) {
|
|
796
|
-
console.time("Maping");
|
|
797
795
|
const map = /* @__PURE__ */ new Map();
|
|
798
796
|
persistedData.forEach((item) => map.set(item.id, item));
|
|
799
797
|
newData.forEach((item) => map.set(item.id, item));
|
|
@@ -802,17 +800,14 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
|
|
|
802
800
|
"axios",
|
|
803
801
|
`getData - Polozky ${id} persisted: ${persistedData.length}, newData: ${newData.length}, vysledek: ${updatedArray.length}`
|
|
804
802
|
);
|
|
805
|
-
console.
|
|
806
|
-
console.log("================== NEW DATA");
|
|
807
|
-
console.log(newData);
|
|
803
|
+
console.error("[axios] NEW DATA: ", newData);
|
|
808
804
|
return updatedArray;
|
|
809
805
|
} else {
|
|
810
806
|
return newData || [];
|
|
811
807
|
}
|
|
812
808
|
} catch (e) {
|
|
813
809
|
const msg = e instanceof Error ? e.message : String(e);
|
|
814
|
-
console.
|
|
815
|
-
console.error(`[AXIOS] CHYBABA PRI NACITANI DAT Z:`, JSON.stringify(dataSource, null, 2), "\nChyba:", msg);
|
|
810
|
+
console.error(`[AXIOS] CHYBACA PRI NACITANI DAT Z:`, JSON.stringify(dataSource, null, 2), "\nChyba:", msg);
|
|
816
811
|
throw e;
|
|
817
812
|
}
|
|
818
813
|
};
|
|
@@ -1007,34 +1002,27 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1007
1002
|
if (resolvedLocale) {
|
|
1008
1003
|
import_axios2.default.defaults.headers.common["Accept-Language"] = resolvedLocale;
|
|
1009
1004
|
}
|
|
1010
|
-
systemLog("dsp", "[INIT] Axios baseURL:", restServer);
|
|
1011
1005
|
async function checkServer() {
|
|
1012
1006
|
try {
|
|
1013
1007
|
const response = await import_axios2.default.head("/", {
|
|
1014
1008
|
timeout: 7e3,
|
|
1015
1009
|
validateStatus: () => true
|
|
1016
1010
|
});
|
|
1017
|
-
systemLog("dsp", "[INIT] Axios Success, status:", response.status);
|
|
1018
1011
|
} catch (e) {
|
|
1019
1012
|
if (import_axios2.default.isAxiosError(e)) {
|
|
1020
|
-
systemLog("dsp", "[INIT] Axios Error:", e.code ?? "UNKNOWN", e.message);
|
|
1021
1013
|
} else {
|
|
1022
|
-
systemLog("dsp", "[INIT] Axios Error:", String(e));
|
|
1023
1014
|
}
|
|
1024
1015
|
} finally {
|
|
1025
|
-
systemLog("dsp", "[INIT] Axios check done");
|
|
1026
1016
|
}
|
|
1027
1017
|
}
|
|
1028
1018
|
checkServer();
|
|
1029
1019
|
}, [locale, restServer]);
|
|
1030
1020
|
(0, import_react.useEffect)(() => {
|
|
1031
1021
|
if (usePersistentStorage && !storage) {
|
|
1032
|
-
systemLog("dsp", "[INIT] Persistence is enabled but no storage adapter was provided.");
|
|
1033
1022
|
}
|
|
1034
1023
|
}, [persistenceStorage, storage, usePersistentStorage]);
|
|
1035
1024
|
const socketRoomHandlersRef = (0, import_react.useRef)({});
|
|
1036
1025
|
const socketActionHandlersRef = (0, import_react.useRef)({});
|
|
1037
|
-
systemLog("dsp", "START");
|
|
1038
1026
|
const socket = (0, import_react.useMemo)(() => (0, import_socket.io)(socketServer?.url, socketServer?.params), [socketServer?.url, socketServer.params]);
|
|
1039
1027
|
const handleSocketConnect = (0, import_react.useCallback)(() => setIsLive(true), []);
|
|
1040
1028
|
const handleSocketDisconnect = (0, import_react.useCallback)(() => setIsLive(false), []);
|
|
@@ -1136,21 +1124,17 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1136
1124
|
}
|
|
1137
1125
|
} finally {
|
|
1138
1126
|
setIsSynchronizing(false);
|
|
1139
|
-
systemLog("dsp", "[synchronizeDataStore] Hotovo:", stats);
|
|
1140
1127
|
}
|
|
1141
1128
|
}, [providers]);
|
|
1142
1129
|
(0, import_react.useEffect)(() => {
|
|
1143
1130
|
if (isLive) {
|
|
1144
|
-
systemLog("dsp", "useEffect[isLive] Sockets: ", JSON.stringify(sockets, null, 2));
|
|
1145
1131
|
const roomsToJoin = Object.entries(sockets).flatMap(
|
|
1146
1132
|
([roomName, socketItem]) => socketItem.filters.map(({ filter }) => ({ room: roomName, filter }))
|
|
1147
1133
|
);
|
|
1148
1134
|
console.log("Sokety pro p\u0159ipojen\xED:", roomsToJoin);
|
|
1149
|
-
systemLog("dsp", "useEffect[isLive] registruji", roomsToJoin);
|
|
1150
1135
|
if (roomsToJoin.length > 0) socket.emit("joinRooms", roomsToJoin);
|
|
1151
1136
|
if (!didInitialLiveSyncRef.current) {
|
|
1152
1137
|
didInitialLiveSyncRef.current = true;
|
|
1153
|
-
systemLog("dsp", "useEffect[isLive] Zacinam synchronizovat");
|
|
1154
1138
|
synchronizeDataStore();
|
|
1155
1139
|
}
|
|
1156
1140
|
} else {
|
|
@@ -1185,7 +1169,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1185
1169
|
socket.connect();
|
|
1186
1170
|
}, [socket, socketServer?.params?.auth, getSocketAuthToken]);
|
|
1187
1171
|
const stopSockets = (0, import_react.useCallback)(() => {
|
|
1188
|
-
systemLog("dsp", "[DSP] ODPOJUJI LIVE SOCKETS");
|
|
1189
1172
|
socket.disconnect();
|
|
1190
1173
|
}, [socket]);
|
|
1191
1174
|
const resetDataStore = (0, import_react.useCallback)(async () => {
|
|
@@ -1221,7 +1204,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1221
1204
|
[persistenceStorage, presetProviders, usePersistentStorage]
|
|
1222
1205
|
);
|
|
1223
1206
|
const dispatch = (0, import_react.useCallback)((action, data, callback) => {
|
|
1224
|
-
systemLog("dsp", "[DSP] DISPATCH Ukladam akci", action, ",", data);
|
|
1225
1207
|
setDispatcher((prev) => ({
|
|
1226
1208
|
isBussy: prev.isBussy,
|
|
1227
1209
|
actions: [...prev.actions, { action, data, callback }]
|
|
@@ -1248,7 +1230,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1248
1230
|
async function processDispatcher() {
|
|
1249
1231
|
if (dispatcher.actions.length > 0) {
|
|
1250
1232
|
let result;
|
|
1251
|
-
systemLog("dsp", "[DSP] DISPATCHER Zpracovavam", dispatcher.actions[0].action);
|
|
1252
1233
|
const timeCode = uuid();
|
|
1253
1234
|
console.time(`Dispatcher ${dispatcher.actions[0].action} ${timeCode}`);
|
|
1254
1235
|
setDispatcher((prev) => ({ ...prev, isBussy: true }));
|
|
@@ -1304,10 +1285,8 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1304
1285
|
documents: uDocuments,
|
|
1305
1286
|
mode = "update"
|
|
1306
1287
|
}) => {
|
|
1307
|
-
systemLog("dsp", "[DSP] updateDocuments updatuji model:", model, "Documents:", Object.keys(uDocuments).length);
|
|
1308
1288
|
const modelProvider = providers[model];
|
|
1309
1289
|
if (!modelProvider) {
|
|
1310
|
-
systemLog("dsp", "[DSP] updateDocuments - provider neexistuje:", model);
|
|
1311
1290
|
return;
|
|
1312
1291
|
}
|
|
1313
1292
|
let data = [...modelProvider.data || []];
|
|
@@ -1321,7 +1300,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1321
1300
|
const { id, ...doc } = document;
|
|
1322
1301
|
switch (mode) {
|
|
1323
1302
|
case "replace":
|
|
1324
|
-
systemLog("dsp", "updateDocuments - replace", id);
|
|
1325
1303
|
newDocs[id] = doc;
|
|
1326
1304
|
if (doc._deleted) {
|
|
1327
1305
|
data = data.filter((d) => d !== id);
|
|
@@ -1335,17 +1313,14 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1335
1313
|
case "update":
|
|
1336
1314
|
default:
|
|
1337
1315
|
if (!newDocs[id]) {
|
|
1338
|
-
systemLog("dsp", "updateDocuments - vytvarim", id);
|
|
1339
1316
|
data.push(id);
|
|
1340
1317
|
newDocs[id] = mergeWithNullDeletion(void 0, doc);
|
|
1341
1318
|
documentsToPersist.push({ id, data: newDocs[id] });
|
|
1342
1319
|
} else if (doc._deleted) {
|
|
1343
|
-
systemLog("dsp", "updateDocuments - mazu", id);
|
|
1344
1320
|
data = data.filter((d) => d !== id);
|
|
1345
1321
|
documentIdsToDelete.push(id);
|
|
1346
1322
|
delete newDocs[id];
|
|
1347
1323
|
} else {
|
|
1348
|
-
systemLog("dsp", "updateDocuments - updatuji", id);
|
|
1349
1324
|
newDocs[id] = mergeWithNullDeletion(newDocs[id], doc);
|
|
1350
1325
|
documentsToPersist.push({ id, data: newDocs[id] });
|
|
1351
1326
|
}
|
|
@@ -1412,15 +1387,11 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1412
1387
|
);
|
|
1413
1388
|
const updateDocument = (0, import_react.useCallback)(
|
|
1414
1389
|
async ({ documentId, model, fields, data: pData }) => {
|
|
1415
|
-
systemLog("dsp", "[updateDocument]:", documentId, ", model:", model);
|
|
1416
1390
|
let data = pData;
|
|
1417
1391
|
if (typeof pData === "function") data = pData(documents[documentId]);
|
|
1418
1392
|
const dataWithDocumentId = data && typeof data === "object" && !Array.isArray(data) ? { ...data, id: data.id ?? documentId } : { id: documentId };
|
|
1419
1393
|
if (fields) {
|
|
1420
|
-
systemLog("dsp", "[updateDocument] Stahovani ", model, ", document: ", documentId, ", fields: ", fields);
|
|
1421
|
-
systemLog("dsp", "[updateDocument] Providers: ", Object.keys(providers));
|
|
1422
1394
|
const provider = presetProviders[model];
|
|
1423
|
-
systemLog("dsp", "[updateDocument]", provider);
|
|
1424
1395
|
let dP = renderJSONTemplate(presetProviders[model], buildDocumentTemplateParams(model, documentId));
|
|
1425
1396
|
if (dP) {
|
|
1426
1397
|
const dataFromSource = await getData({
|
|
@@ -1430,7 +1401,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1430
1401
|
schema: dP.schema,
|
|
1431
1402
|
SQLite: persistenceStorage || void 0
|
|
1432
1403
|
});
|
|
1433
|
-
systemLog("dsp", "[updateDocument] DATA: ", dataFromSource);
|
|
1434
1404
|
data = dataFromSource;
|
|
1435
1405
|
}
|
|
1436
1406
|
}
|
|
@@ -1441,7 +1411,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1441
1411
|
var isProvidersUpdated = false;
|
|
1442
1412
|
const rand = uuid();
|
|
1443
1413
|
setProviders((prev) => {
|
|
1444
|
-
systemLog("dsp", "[updateDocument] setProviders", rand);
|
|
1445
1414
|
console.time("[DSP UPDATE PROVIDERS INSIDE]");
|
|
1446
1415
|
var newProviders = { ...prev };
|
|
1447
1416
|
Object.keys(newProviders).forEach((key) => {
|
|
@@ -1454,7 +1423,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1454
1423
|
if (socketListeners.length === 0) {
|
|
1455
1424
|
if (providerNext.data.includes(documentId)) {
|
|
1456
1425
|
if (!providerNext.dataSource?.filter || filterDocuments(documentForFilter, providerNext.dataSource?.filter)) {
|
|
1457
|
-
systemLog("dsp", "[updateDocument] - zustava v Provider bez Listeners:", key);
|
|
1458
1426
|
listeningProviders++;
|
|
1459
1427
|
providerNext.lastUpdate = {
|
|
1460
1428
|
id: uuid(),
|
|
@@ -1486,7 +1454,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1486
1454
|
}
|
|
1487
1455
|
} else {
|
|
1488
1456
|
if (providerNext.data.includes(documentId)) {
|
|
1489
|
-
systemLog("dsp", "[updateDocument] - mazu:", key);
|
|
1490
1457
|
providerNext.data = providerNext.data.filter((item) => item !== documentId);
|
|
1491
1458
|
isProvidersUpdated = true;
|
|
1492
1459
|
providerNext.lastUpdate = {
|
|
@@ -1524,12 +1491,9 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1524
1491
|
return prev2;
|
|
1525
1492
|
});
|
|
1526
1493
|
console.timeEnd("[DSP UPDATE DOCUMENTS OUTSIDE]");
|
|
1527
|
-
systemLog("dsp", "OUTSIDE", documentId);
|
|
1528
1494
|
return newProviders;
|
|
1529
1495
|
});
|
|
1530
|
-
systemLog("dsp", "updateDocument - meni se pocet naslouchajicich Provideru ?", isProvidersUpdated ? "true" : "false");
|
|
1531
1496
|
if (isProvidersUpdated) {
|
|
1532
|
-
systemLog("dsp", "updateDocument - menim counterDocuments pro", listeningProviders, "Providers");
|
|
1533
1497
|
setCounterDocuments((prev) => {
|
|
1534
1498
|
if (listeningProviders === 0) {
|
|
1535
1499
|
const newD = { ...prev };
|
|
@@ -1540,7 +1504,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1540
1504
|
}
|
|
1541
1505
|
});
|
|
1542
1506
|
} else {
|
|
1543
|
-
systemLog("dsp", "updateDocument - nemenim counterDocuments. Dokument zustava v", listeningProviders, "Providers");
|
|
1544
1507
|
}
|
|
1545
1508
|
if (providers[model]?.isPersisting && persistenceStorage) {
|
|
1546
1509
|
if (listeningProviders > 0) {
|
|
@@ -1570,7 +1533,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1570
1533
|
const updateDataStore = (0, import_react.useCallback)(
|
|
1571
1534
|
async ({ id, documentId, params, variant, data }) => {
|
|
1572
1535
|
if (!providers[id]) {
|
|
1573
|
-
systemLog("dsp", "[updateDataStore] Provider neexistuje:", id);
|
|
1574
1536
|
return;
|
|
1575
1537
|
}
|
|
1576
1538
|
if (!providers[id].dataSource?.uri && !providers[id].dataSource?.crud) {
|
|
@@ -1579,15 +1541,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1579
1541
|
} else updateDocument({ documentId, model: id, data });
|
|
1580
1542
|
return true;
|
|
1581
1543
|
}
|
|
1582
|
-
systemLog(
|
|
1583
|
-
"dsp",
|
|
1584
|
-
"[updateDataStore] Posilam patchData: ",
|
|
1585
|
-
id,
|
|
1586
|
-
",\n params: ",
|
|
1587
|
-
JSON.stringify(params, null, 2),
|
|
1588
|
-
"\n data: ",
|
|
1589
|
-
JSON.stringify(data, null, 2)
|
|
1590
|
-
);
|
|
1591
1544
|
const result = await patchData({
|
|
1592
1545
|
dataSource: renderJSONTemplate(providers[id].dataSource, params),
|
|
1593
1546
|
variant,
|
|
@@ -1596,10 +1549,8 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1596
1549
|
if (typeof result === "object") {
|
|
1597
1550
|
const { id: rDocumentId, ...document } = result;
|
|
1598
1551
|
if (!isLive) {
|
|
1599
|
-
systemLog("dsp", "[updateDataStore] UPDATE DATA STORE RESULT: ", result);
|
|
1600
1552
|
updateDocument({ documentId: rDocumentId, model: id, data: document });
|
|
1601
1553
|
} else {
|
|
1602
|
-
systemLog("dsp", "[updateDataStore] Updatuje Socket");
|
|
1603
1554
|
}
|
|
1604
1555
|
}
|
|
1605
1556
|
return result;
|
|
@@ -1661,13 +1612,10 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1661
1612
|
const deleteDocument = (0, import_react.useCallback)(
|
|
1662
1613
|
async ({ documentId }) => {
|
|
1663
1614
|
console.log("Mazani dokumentu ", documentId);
|
|
1664
|
-
systemLog("dsp", `[deleteDocument] Mazu document ${documentId}}`);
|
|
1665
1615
|
await removePersistedDocument(documentId);
|
|
1666
1616
|
setDocuments((prev) => {
|
|
1667
1617
|
const newDocs = { ...prev };
|
|
1668
|
-
systemLog("dsp", "[deleteDocument] MAZU ", documentId, " z ", newDocs);
|
|
1669
1618
|
delete newDocs[documentId];
|
|
1670
|
-
systemLog("dsp", "[deleteDocument] NEW DOCS: ", newDocs);
|
|
1671
1619
|
return newDocs;
|
|
1672
1620
|
});
|
|
1673
1621
|
setCounterDocuments((prev) => {
|
|
@@ -1683,7 +1631,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1683
1631
|
updatedDataObj[key].data = updatedDataObj[key].data.filter((element) => element !== documentId);
|
|
1684
1632
|
updatedDataObj[key].lastUpdate = { id: uuid(), time: /* @__PURE__ */ new Date() };
|
|
1685
1633
|
deletedCount += initialLength - updatedDataObj[key].data.length;
|
|
1686
|
-
if (initialLength - updatedDataObj[key].data.length > 0) systemLog("dsp", "[deleteDocument] Smazan zaznam...", deletedCount);
|
|
1687
1634
|
}
|
|
1688
1635
|
return updatedDataObj;
|
|
1689
1636
|
});
|
|
@@ -1693,7 +1640,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1693
1640
|
const createProviderItem = (0, import_react.useCallback)(
|
|
1694
1641
|
async ({ id, data, variant }) => {
|
|
1695
1642
|
if (!providers[id]) {
|
|
1696
|
-
systemLog("dsp", "[createProviderItem] Provider neexistuje:", id);
|
|
1697
1643
|
return;
|
|
1698
1644
|
}
|
|
1699
1645
|
if (!providers[id].dataSource) {
|
|
@@ -1715,7 +1661,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1715
1661
|
const deleteProviderItem = (0, import_react.useCallback)(
|
|
1716
1662
|
async ({ providerId, data, params }) => {
|
|
1717
1663
|
if (!providers[providerId]) {
|
|
1718
|
-
systemLog("dsp", "[deleteProviderItem] Provider neexistuje:", providerId);
|
|
1719
1664
|
return;
|
|
1720
1665
|
}
|
|
1721
1666
|
const response = await deleteData({
|
|
@@ -1731,7 +1676,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1731
1676
|
(sockets2, filter) => {
|
|
1732
1677
|
if (!sockets2) return;
|
|
1733
1678
|
const normalizedFilter = filter ?? {};
|
|
1734
|
-
systemLog("dsp", "[registerProviderSockets]", sockets2, `filter: ${JSON.stringify(normalizedFilter)}`);
|
|
1735
1679
|
const d = Array.isArray(sockets2) ? sockets2 : [sockets2];
|
|
1736
1680
|
setSockets((prev) => {
|
|
1737
1681
|
const newS = { ...prev };
|
|
@@ -1740,14 +1684,9 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1740
1684
|
const existingFilter = newS[item].filters.find((f) => (0, import_isEqual.default)(f.filter, normalizedFilter));
|
|
1741
1685
|
if (existingFilter) {
|
|
1742
1686
|
existingFilter.listeners++;
|
|
1743
|
-
systemLog("dsp", `[registerProviderSockets] Filter uz existuje, navysuji listeners na ${existingFilter.listeners}`);
|
|
1744
1687
|
} else {
|
|
1745
1688
|
newS[item].filters = [...newS[item].filters, { filter: normalizedFilter, listeners: 1 }];
|
|
1746
1689
|
socket.emit("joinRoom", { room: item, filter: normalizedFilter });
|
|
1747
|
-
systemLog(
|
|
1748
|
-
"dsp",
|
|
1749
|
-
`[registerProviderSockets] Novy filter, registruji room ${item} s filterem ${JSON.stringify(normalizedFilter)}`
|
|
1750
|
-
);
|
|
1751
1690
|
}
|
|
1752
1691
|
} else {
|
|
1753
1692
|
newS[item] = {
|
|
@@ -1755,7 +1694,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1755
1694
|
data: []
|
|
1756
1695
|
};
|
|
1757
1696
|
socket.emit("joinRoom", { room: item, filter: normalizedFilter });
|
|
1758
|
-
systemLog("dsp", `[registerProviderSockets] Nova room ${item}, filter: ${JSON.stringify(normalizedFilter)}`);
|
|
1759
1697
|
}
|
|
1760
1698
|
});
|
|
1761
1699
|
return newS;
|
|
@@ -1766,12 +1704,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1766
1704
|
const unregisterProviderSockets = (0, import_react.useCallback)(
|
|
1767
1705
|
(sockets2, filter) => {
|
|
1768
1706
|
const normalizedFilter = filter ?? {};
|
|
1769
|
-
systemLog(
|
|
1770
|
-
"dsp",
|
|
1771
|
-
"[unregisterProviderSockets] Mazu sockety",
|
|
1772
|
-
JSON.stringify(sockets2, null, 2),
|
|
1773
|
-
`filter: ${JSON.stringify(normalizedFilter)}`
|
|
1774
|
-
);
|
|
1775
1707
|
const d = Array.isArray(sockets2) ? sockets2 : [sockets2];
|
|
1776
1708
|
setSockets((prev) => {
|
|
1777
1709
|
const newS = { ...prev };
|
|
@@ -1783,18 +1715,12 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1783
1715
|
if (existingFilter.listeners <= 1) {
|
|
1784
1716
|
newS[item].filters = newS[item].filters.filter((f) => !(0, import_isEqual.default)(f.filter, normalizedFilter));
|
|
1785
1717
|
socket.emit("leaveRoom", { room: item, filter: normalizedFilter });
|
|
1786
|
-
systemLog(
|
|
1787
|
-
"dsp",
|
|
1788
|
-
`[unregisterProviderSockets] Filter smazan, odhlaseni room ${item} s filterem ${JSON.stringify(normalizedFilter)}`
|
|
1789
|
-
);
|
|
1790
1718
|
} else {
|
|
1791
1719
|
existingFilter.listeners--;
|
|
1792
|
-
systemLog("dsp", `[unregisterProviderSockets] Filter listeners snizen na ${existingFilter.listeners}`);
|
|
1793
1720
|
}
|
|
1794
1721
|
if (newS[item].filters.length === 0) {
|
|
1795
1722
|
removeSocketListeners.push(item);
|
|
1796
1723
|
delete newS[item];
|
|
1797
|
-
systemLog("dsp", `[unregisterProviderSockets] Room ${item} uplne smazana`);
|
|
1798
1724
|
}
|
|
1799
1725
|
});
|
|
1800
1726
|
if (removeSocketListeners.length > 0) {
|
|
@@ -1807,14 +1733,12 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1807
1733
|
);
|
|
1808
1734
|
const updateProviderListeners = (0, import_react.useCallback)(
|
|
1809
1735
|
async (id, val) => {
|
|
1810
|
-
systemLog("dsp", `[updateProviderListeners] provider:`, id, "menim o", val);
|
|
1811
1736
|
setCounterProviders((prev) => {
|
|
1812
1737
|
if (!prev[id]) return prev;
|
|
1813
1738
|
if (prev[id] + val > 0) {
|
|
1814
1739
|
return { ...prev, [id]: prev[id] + val };
|
|
1815
1740
|
}
|
|
1816
1741
|
setProviders((prevP) => {
|
|
1817
|
-
systemLog("dsp", "[DSP] UPDATE PROVIDER - mazu sockets ", id);
|
|
1818
1742
|
setSockets((prevS) => {
|
|
1819
1743
|
const newS = { ...prevS };
|
|
1820
1744
|
const removeSocketListeners = [];
|
|
@@ -1828,15 +1752,12 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1828
1752
|
if (existingFilter.listeners + val <= 0) {
|
|
1829
1753
|
newS[socketName].filters = newS[socketName].filters.filter((f) => !(0, import_isEqual.default)(f.filter, normalizedFilter));
|
|
1830
1754
|
socket.emit("leaveRoom", { room: socketName, filter: normalizedFilter });
|
|
1831
|
-
systemLog("dsp", `[updateProviderListeners] Filter smazan pro room ${socketName}`);
|
|
1832
1755
|
} else {
|
|
1833
1756
|
existingFilter.listeners = existingFilter.listeners + val;
|
|
1834
|
-
systemLog("dsp", `[updateProviderListeners] Filter listeners snizen na ${existingFilter.listeners}`);
|
|
1835
1757
|
}
|
|
1836
1758
|
if (newS[socketName].filters.length === 0) {
|
|
1837
1759
|
removeSocketListeners.push(socketName);
|
|
1838
1760
|
delete newS[socketName];
|
|
1839
|
-
systemLog("dsp", `[updateProviderListeners] Room ${socketName} uplne smazana`);
|
|
1840
1761
|
}
|
|
1841
1762
|
});
|
|
1842
1763
|
if (removeSocketListeners.length > 0) {
|
|
@@ -1874,12 +1795,10 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1874
1795
|
const registerProvider = (0, import_react.useCallback)(
|
|
1875
1796
|
async (newItem) => {
|
|
1876
1797
|
console.log("Registruji provider ", newItem.id, " se schema ", newItem.schema);
|
|
1877
|
-
systemLog("dsp", "[registerProvider]", newItem.id);
|
|
1878
1798
|
let result;
|
|
1879
1799
|
const { id, ...provider } = newItem;
|
|
1880
1800
|
if (providers[id]) {
|
|
1881
1801
|
setCounterProviders((prev) => {
|
|
1882
|
-
systemLog("dsp", "[registerProvider] Pouze navysuji ", id, " ", prev[id], " -> ", prev[id] + 1);
|
|
1883
1802
|
return {
|
|
1884
1803
|
...prev,
|
|
1885
1804
|
[id]: prev[id] + 1
|
|
@@ -1959,15 +1878,12 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
1959
1878
|
setCounterProviders((prev) => {
|
|
1960
1879
|
if (prev[itemId]) {
|
|
1961
1880
|
if (prev[itemId] > 1) {
|
|
1962
|
-
systemLog("dsp", "[unregisterProvider] snizuji ", itemId, "z ", prev[itemId], " na ", prev[itemId] - 1);
|
|
1963
1881
|
return {
|
|
1964
1882
|
...prev,
|
|
1965
1883
|
[itemId]: prev[itemId] - 1
|
|
1966
1884
|
};
|
|
1967
1885
|
} else {
|
|
1968
|
-
systemLog("dsp", "[unregisterProvider] mazu ", Object.keys(providers));
|
|
1969
1886
|
unregisterProviderSockets(providers[itemId]?.dataSource.socketListeners, providers[itemId]?.dataSource.filter);
|
|
1970
|
-
systemLog("dsp", "[unregisterProvider] Mazu dokumenty providera ", itemId);
|
|
1971
1887
|
setCounterDocuments((cd) => {
|
|
1972
1888
|
const newC = { ...cd };
|
|
1973
1889
|
const deleteDocumentIds = [];
|
|
@@ -2059,7 +1975,6 @@ var DataStoreProvider = (0, import_react.forwardRef)(
|
|
|
2059
1975
|
]
|
|
2060
1976
|
);
|
|
2061
1977
|
(0, import_react.useImperativeHandle)(ref, () => actionsValue, [actionsValue]);
|
|
2062
|
-
systemLog("dsp", "END");
|
|
2063
1978
|
return (
|
|
2064
1979
|
// <DatabaseProvider>
|
|
2065
1980
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(DataStoreStableContext.Provider, { value: stableValue, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DataStoreActionsContext.Provider, { value: actionsValue, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DataStoreProvidersContext.Provider, { value: providers, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DataStoreDocumentsContext.Provider, { value: documents, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DataStoreContext.Provider, { value: metaValue, children: props.children }) }) }) }) })
|