@mgarlik/datastore 0.1.5 → 0.1.8

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.d.cts CHANGED
@@ -378,7 +378,7 @@ declare const useDataProvider: (
378
378
  */
379
379
  id: string | {
380
380
  [key: string]: any;
381
- },
381
+ } | false,
382
382
  /**
383
383
  * Parametry pro prerenderovani providera (profiles/<%= profileId %>)
384
384
  */
@@ -511,4 +511,10 @@ declare const COLOR_AXIOS = "\u001B[33m%s\u001B[0m";
511
511
  declare const COLOR_APP = "\u001B[34m%s\u001B[0m";
512
512
  declare const COLOR_DS = "\u001B[35m%s\u001B[0m";
513
513
 
514
- export { COLOR_APP, COLOR_AXIOS, COLOR_BLUE, COLOR_CONTEXT, COLOR_CYAN, COLOR_DS, COLOR_ERROR, COLOR_FUNCTION, COLOR_GREEN, COLOR_MAGENTA, COLOR_ORANGE, COLOR_PROVIDER, COLOR_RED, COLOR_RENDER, COLOR_SCREEN, COLOR_SOCKET, COLOR_SOCKETS, COLOR_WARNING, COLOR_WHITE, COLOR_YELLOW, type DataProviderType, type DataProvidersType, type DataStore, DataStoreActionsContext, DataStoreContext, DataStoreDocumentsContext, type DataStoreProps, DataStoreProvider, DataStoreProvidersContext, type DataStoreRef, DataStoreStableContext, DataStoreStorage, type DispatcherActionType, type DispatcherType, type FilterType, type JSONType, type ProductFiltersType, type ProviderSchemaItemType, type SocketFilterItem, type SocketItem, type SocketServerType, type UseDataProviderResult, type UseProviderActionsResult, type Uuid, dataStoreFilterObject, doesObjectMatchFilter, doesValueMatchFilter, filterDocuments, filterDocumentsAsync, type filterItemType, getValueByRules, isUuid, recalculateObjectWithDocument, useDataProvider, useDataStore, useDataStoreActions, useDocument, useDocuments, useFilteredDocuments, useProvider, useProviderActions, useProviderDocuments, uuid };
514
+ /**
515
+ * Zobrazí obsah celé databáze v console.log
516
+ * Používá se pro debugging storage
517
+ */
518
+ declare function logStorageContent(storage: DataStoreStorage): Promise<void>;
519
+
520
+ export { COLOR_APP, COLOR_AXIOS, COLOR_BLUE, COLOR_CONTEXT, COLOR_CYAN, COLOR_DS, COLOR_ERROR, COLOR_FUNCTION, COLOR_GREEN, COLOR_MAGENTA, COLOR_ORANGE, COLOR_PROVIDER, COLOR_RED, COLOR_RENDER, COLOR_SCREEN, COLOR_SOCKET, COLOR_SOCKETS, COLOR_WARNING, COLOR_WHITE, COLOR_YELLOW, type DataProviderType, type DataProvidersType, type DataStore, DataStoreActionsContext, DataStoreContext, DataStoreDocumentsContext, type DataStoreProps, DataStoreProvider, DataStoreProvidersContext, type DataStoreRef, DataStoreStableContext, DataStoreStorage, type DispatcherActionType, type DispatcherType, type FilterType, type JSONType, type ProductFiltersType, type ProviderSchemaItemType, type SocketFilterItem, type SocketItem, type SocketServerType, type UseDataProviderResult, type UseProviderActionsResult, type Uuid, dataStoreFilterObject, doesObjectMatchFilter, doesValueMatchFilter, filterDocuments, filterDocumentsAsync, type filterItemType, getValueByRules, isUuid, logStorageContent, recalculateObjectWithDocument, useDataProvider, useDataStore, useDataStoreActions, useDocument, useDocuments, useFilteredDocuments, useProvider, useProviderActions, useProviderDocuments, uuid };
package/dist/index.d.ts CHANGED
@@ -378,7 +378,7 @@ declare const useDataProvider: (
378
378
  */
379
379
  id: string | {
380
380
  [key: string]: any;
381
- },
381
+ } | false,
382
382
  /**
383
383
  * Parametry pro prerenderovani providera (profiles/<%= profileId %>)
384
384
  */
@@ -511,4 +511,10 @@ declare const COLOR_AXIOS = "\u001B[33m%s\u001B[0m";
511
511
  declare const COLOR_APP = "\u001B[34m%s\u001B[0m";
512
512
  declare const COLOR_DS = "\u001B[35m%s\u001B[0m";
513
513
 
514
- export { COLOR_APP, COLOR_AXIOS, COLOR_BLUE, COLOR_CONTEXT, COLOR_CYAN, COLOR_DS, COLOR_ERROR, COLOR_FUNCTION, COLOR_GREEN, COLOR_MAGENTA, COLOR_ORANGE, COLOR_PROVIDER, COLOR_RED, COLOR_RENDER, COLOR_SCREEN, COLOR_SOCKET, COLOR_SOCKETS, COLOR_WARNING, COLOR_WHITE, COLOR_YELLOW, type DataProviderType, type DataProvidersType, type DataStore, DataStoreActionsContext, DataStoreContext, DataStoreDocumentsContext, type DataStoreProps, DataStoreProvider, DataStoreProvidersContext, type DataStoreRef, DataStoreStableContext, DataStoreStorage, type DispatcherActionType, type DispatcherType, type FilterType, type JSONType, type ProductFiltersType, type ProviderSchemaItemType, type SocketFilterItem, type SocketItem, type SocketServerType, type UseDataProviderResult, type UseProviderActionsResult, type Uuid, dataStoreFilterObject, doesObjectMatchFilter, doesValueMatchFilter, filterDocuments, filterDocumentsAsync, type filterItemType, getValueByRules, isUuid, recalculateObjectWithDocument, useDataProvider, useDataStore, useDataStoreActions, useDocument, useDocuments, useFilteredDocuments, useProvider, useProviderActions, useProviderDocuments, uuid };
514
+ /**
515
+ * Zobrazí obsah celé databáze v console.log
516
+ * Používá se pro debugging storage
517
+ */
518
+ declare function logStorageContent(storage: DataStoreStorage): Promise<void>;
519
+
520
+ export { COLOR_APP, COLOR_AXIOS, COLOR_BLUE, COLOR_CONTEXT, COLOR_CYAN, COLOR_DS, COLOR_ERROR, COLOR_FUNCTION, COLOR_GREEN, COLOR_MAGENTA, COLOR_ORANGE, COLOR_PROVIDER, COLOR_RED, COLOR_RENDER, COLOR_SCREEN, COLOR_SOCKET, COLOR_SOCKETS, COLOR_WARNING, COLOR_WHITE, COLOR_YELLOW, type DataProviderType, type DataProvidersType, type DataStore, DataStoreActionsContext, DataStoreContext, DataStoreDocumentsContext, type DataStoreProps, DataStoreProvider, DataStoreProvidersContext, type DataStoreRef, DataStoreStableContext, DataStoreStorage, type DispatcherActionType, type DispatcherType, type FilterType, type JSONType, type ProductFiltersType, type ProviderSchemaItemType, type SocketFilterItem, type SocketItem, type SocketServerType, type UseDataProviderResult, type UseProviderActionsResult, type Uuid, dataStoreFilterObject, doesObjectMatchFilter, doesValueMatchFilter, filterDocuments, filterDocumentsAsync, type filterItemType, getValueByRules, isUuid, logStorageContent, recalculateObjectWithDocument, useDataProvider, useDataStore, useDataStoreActions, useDocument, useDocuments, useFilteredDocuments, useProvider, useProviderActions, useProviderDocuments, uuid };
package/dist/index.js CHANGED
@@ -755,7 +755,7 @@ var postData = async ({ dataSource, variant, schema, val }) => {
755
755
  };
756
756
  var patchData = async ({ dataSource, variant, data }) => {
757
757
  try {
758
- systemLog("axios", "PATCH: ", buildUri({ dataSource, variant, method: "update" }), ", Data: ", JSON.stringify(data, null, 2));
758
+ console.log("PATCH: ", buildUri({ dataSource, variant, method: "update" }), ", Data: ", JSON.stringify(data, null, 2));
759
759
  const response = await axios.patch(buildUri({ dataSource, variant, method: "update" }), data);
760
760
  response.data?.queryTime && systemLog("axios", "PATCH Server Query Time: ", response.data.queryTime);
761
761
  systemLog("axios", "PATCH Response Data: ", response.data.data.length, " Bytes");
@@ -1106,7 +1106,7 @@ var DataStoreProvider = forwardRef(
1106
1106
  ...socketServer?.params?.auth || {},
1107
1107
  token: getSocketAuthToken()
1108
1108
  };
1109
- systemLog("dsp", "PRIPOJUJI LIVE SOCKETS");
1109
+ console.log("PRIPOJUJI LIVE SOCKETS");
1110
1110
  socket.connect();
1111
1111
  }, [socket, socketServer?.params?.auth, getSocketAuthToken]);
1112
1112
  const stopSockets = useCallback(() => {
@@ -1163,6 +1163,7 @@ var DataStoreProvider = forwardRef(
1163
1163
  const item = dispatcher.actions[0];
1164
1164
  switch (item.action) {
1165
1165
  case "registerProvider":
1166
+ console.log("[DSP] Dispatcher registerProvider", item.data);
1166
1167
  await registerProvider(item.data);
1167
1168
  break;
1168
1169
  case "unregisterProvider":
@@ -1322,6 +1323,7 @@ var DataStoreProvider = forwardRef(
1322
1323
  systemLog("dsp", "[updateDocument]:", documentId, ", model:", model);
1323
1324
  let data = pData;
1324
1325
  if (typeof pData === "function") data = pData(documents[documentId]);
1326
+ const dataWithDocumentId = data && typeof data === "object" && !Array.isArray(data) ? { ...data, id: data.id ?? documentId } : { id: documentId };
1325
1327
  if (fields) {
1326
1328
  systemLog("dsp", "[updateDocument] Stahovani ", model, ", document: ", documentId, ", fields: ", fields);
1327
1329
  systemLog("dsp", "[updateDocument] Providers: ", Object.keys(providers));
@@ -1341,6 +1343,7 @@ var DataStoreProvider = forwardRef(
1341
1343
  }
1342
1344
  }
1343
1345
  if (data) {
1346
+ console.log("[updateDocument]:", documentId, ", model:", model);
1344
1347
  var listeningProviders = 0;
1345
1348
  var isProvidersUpdated = false;
1346
1349
  const rand = uuid();
@@ -1357,7 +1360,7 @@ var DataStoreProvider = forwardRef(
1357
1360
  var socketListeners = providerNext.dataSource?.socketListeners || [];
1358
1361
  if (socketListeners.length === 0) {
1359
1362
  if (providerNext.data.includes(documentId)) {
1360
- if (!providerNext.dataSource?.filter || filterDocuments(data, providerNext.dataSource?.filter)) {
1363
+ if (!providerNext.dataSource?.filter || filterDocuments(dataWithDocumentId, providerNext.dataSource?.filter)) {
1361
1364
  systemLog("dsp", "[updateDocument] - zustava v Provider bez Listeners:", key);
1362
1365
  listeningProviders++;
1363
1366
  providerNext.lastUpdate = {
@@ -1377,7 +1380,7 @@ var DataStoreProvider = forwardRef(
1377
1380
  }
1378
1381
  } else if (socketListeners.includes(model) || // socketListeners.includes(documentId) ||
1379
1382
  key === model) {
1380
- if (!providerNext.dataSource.filter || filterDocuments(data, providerNext.dataSource.filter)) {
1383
+ if (!providerNext.dataSource.filter || filterDocuments(dataWithDocumentId, providerNext.dataSource.filter)) {
1381
1384
  listeningProviders++;
1382
1385
  providerNext.lastUpdate = {
1383
1386
  id: uuid(),
@@ -1417,12 +1420,12 @@ var DataStoreProvider = forwardRef(
1417
1420
  console.timeEnd("[DSP UPDATE DOCUMENTS INSIDE]");
1418
1421
  return {
1419
1422
  ...prev2,
1420
- [documentId]: { ...prev2[documentId], ...data }
1423
+ [documentId]: { ...prev2[documentId], ...dataWithDocumentId }
1421
1424
  };
1422
1425
  }
1423
1426
  } else if (listeningProviders > 0) {
1424
1427
  console.timeEnd("[DSP UPDATE DOCUMENTS INSIDE]");
1425
- return { ...prev2, [documentId]: data };
1428
+ return { ...prev2, [documentId]: dataWithDocumentId };
1426
1429
  }
1427
1430
  console.timeEnd("[DSP UPDATE DOCUMENTS INSIDE]");
1428
1431
  return prev2;
@@ -1451,7 +1454,7 @@ var DataStoreProvider = forwardRef(
1451
1454
  await persistDocument({
1452
1455
  documentId,
1453
1456
  model,
1454
- data: { ...documents[documentId], ...data }
1457
+ data: { ...documents[documentId], ...dataWithDocumentId }
1455
1458
  });
1456
1459
  } else {
1457
1460
  await removePersistedDocument(documentId);
@@ -1505,13 +1508,13 @@ var DataStoreProvider = forwardRef(
1505
1508
  }, [dispatch, updateDocument]);
1506
1509
  const createDocument = useCallback(
1507
1510
  async ({ model, documentId, data }) => {
1508
- const newDocument = data;
1511
+ const newDocument = data && typeof data === "object" && !Array.isArray(data) ? { ...data, id: data.id ?? documentId } : { id: documentId };
1509
1512
  console.log(`Registruji model ${model}, documentId ${documentId}, data: ${JSON.stringify(data)}`);
1510
1513
  var providerListenersCount = 0;
1511
1514
  Object.keys(providers).forEach((key) => {
1512
1515
  const provider = providers[key];
1513
1516
  var socketListeners = provider.dataSource?.socketListeners;
1514
- if ((socketListeners?.includes(model) || key === model) && (!provider.dataSource?.filter || filterDocuments(data, provider.dataSource?.filter))) {
1517
+ if ((socketListeners?.includes(model) || key === model) && (!provider.dataSource?.filter || filterDocuments(newDocument, provider.dataSource?.filter))) {
1515
1518
  if (!provider.data.includes(documentId)) {
1516
1519
  setCounterDocuments((prev) => {
1517
1520
  const newC = { ...prev };
@@ -1834,6 +1837,7 @@ var DataStoreProvider = forwardRef(
1834
1837
  [id]: 1
1835
1838
  }));
1836
1839
  if (provider.dataSource?.socketListeners) {
1840
+ console.log("TATATATA");
1837
1841
  registerProviderSockets(provider.dataSource.socketListeners, provider.dataSource.filter);
1838
1842
  }
1839
1843
  console.timeEnd(`[DSP] VYTVARENI PROVIDERA ${id}`);
@@ -1999,6 +2003,7 @@ var useDataProvider = (id, params, dataFilter, settings) => {
1999
2003
  const prov = renderJSONTemplate(id, params ?? void 0);
2000
2004
  setProviderId(prov.id);
2001
2005
  retId = prov.id;
2006
+ console.log("Registruji z useDataProvider 1", prov.id);
2002
2007
  dispatch("registerProvider", prov);
2003
2008
  } else {
2004
2009
  if (presetProviders[id]) {
@@ -2009,7 +2014,9 @@ var useDataProvider = (id, params, dataFilter, settings) => {
2009
2014
  systemLog("usedp", "Provider:", prov.id, "existuje");
2010
2015
  if (!currentProviders[prov.id]?.isPermanent) updateProviderListeners(prov.id, 1);
2011
2016
  } else {
2012
- systemLog("usedp", "Registruji novy provider:", prov.id);
2017
+ console.log("Params: ", params);
2018
+ console.log("Registruji z useDataProvider 2 - novy provider", prov.id);
2019
+ console.log(JSON.stringify(prov, null, 2));
2013
2020
  dispatch("registerProvider", prov);
2014
2021
  }
2015
2022
  } else {
@@ -2199,6 +2206,34 @@ var COLOR_SOCKETS = COLOR_YELLOW;
2199
2206
  var COLOR_AXIOS = COLOR_YELLOW;
2200
2207
  var COLOR_APP = COLOR_BLUE;
2201
2208
  var COLOR_DS = COLOR_MAGENTA;
2209
+
2210
+ // src/debugStorage.ts
2211
+ async function logStorageContent(storage) {
2212
+ try {
2213
+ systemLog("debug", "=== STORAGE CONTENT ===");
2214
+ if ("getTables" in storage) {
2215
+ const tablesResult = await storage.getTables();
2216
+ console.log("\u{1F4CA} TABULKY V DATAB\xC1ZI:", tablesResult);
2217
+ for (const table of tablesResult) {
2218
+ const tableName = table.name;
2219
+ try {
2220
+ const content = await storage.read(`SELECT * FROM '${tableName}'`);
2221
+ console.log(`
2222
+ \u{1F4CB} TABULKA: ${tableName}`);
2223
+ console.log(` Po\u010Det \u0159\xE1dk\u016F: ${content.length}`);
2224
+ console.log(content);
2225
+ } catch (error) {
2226
+ console.error(` Chyba p\u0159i \u010Dten\xED tabulky ${tableName}:`, error);
2227
+ }
2228
+ }
2229
+ } else {
2230
+ console.log("Storage neimplementuje getTables()");
2231
+ }
2232
+ systemLog("debug", "=== KONEC STORAGE CONTENT ===");
2233
+ } catch (error) {
2234
+ console.error("Chyba p\u0159i loggingu storage obsahu:", error);
2235
+ }
2236
+ }
2202
2237
  export {
2203
2238
  COLOR_APP,
2204
2239
  COLOR_AXIOS,
@@ -2233,6 +2268,7 @@ export {
2233
2268
  filterDocumentsAsync,
2234
2269
  getValueByRules,
2235
2270
  isUuid,
2271
+ logStorageContent,
2236
2272
  recalculateObjectWithDocument,
2237
2273
  useDataProvider,
2238
2274
  useDataStore,