@milaboratories/pl-tree 1.3.19 → 1.4.1

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/src/sync.ts CHANGED
@@ -58,6 +58,7 @@ export type TreeLoadingStat = {
58
58
  retrievedFields: number;
59
59
  retrievedKeyValues: number;
60
60
  retrievedResourceDataBytes: number;
61
+ retrievedKeyValueBytes: number;
61
62
  prunnedFields: number;
62
63
  finalResourcesSkipped: number;
63
64
  millisSpent: number;
@@ -71,6 +72,7 @@ export function initialTreeLoadingStat(): TreeLoadingStat {
71
72
  retrievedFields: 0,
72
73
  retrievedKeyValues: 0,
73
74
  retrievedResourceDataBytes: 0,
75
+ retrievedKeyValueBytes: 0,
74
76
  prunnedFields: 0,
75
77
  finalResourcesSkipped: 0,
76
78
  millisSpent: 0
@@ -85,6 +87,7 @@ export function formatTreeLoadingStat(stat: TreeLoadingStat): string {
85
87
  result += `Fields: ${stat.retrievedFields}\n`;
86
88
  result += `KV: ${stat.retrievedKeyValues}\n`;
87
89
  result += `Data Bytes: ${stat.retrievedResourceDataBytes}\n`;
90
+ result += `KV Bytes: ${stat.retrievedKeyValueBytes}\n`;
88
91
  result += `Pruned fields: ${stat.prunnedFields}\n`;
89
92
  result += `Final resources skipped: ${stat.finalResourcesSkipped}`;
90
93
  return result;
@@ -198,6 +201,7 @@ export async function loadTreeState(
198
201
  stats.retrievedFields += nextResource.fields.length;
199
202
  stats.retrievedKeyValues += nextResource.kv.length;
200
203
  stats.retrievedResourceDataBytes += nextResource.data?.length ?? 0;
204
+ for (const kv of nextResource.kv) stats.retrievedKeyValueBytes += kv.value.length;
201
205
  }
202
206
 
203
207
  // aggregating the state
@@ -213,7 +213,14 @@ export class SynchronizedTreeState {
213
213
  logger?: MiLogger
214
214
  ) {
215
215
  const tree = new SynchronizedTreeState(pl, root, ops, logger);
216
- await tree.refresh();
216
+
217
+ let stat = ops.logStat ? initialTreeLoadingStat() : undefined;
218
+
219
+ await tree.refresh(stat);
220
+
221
+ // logging stats if we were asked to (even if error occured)
222
+ if (stat && logger) logger.info(`Tree stat (initial load): ${JSON.stringify(stat)}`);
223
+
217
224
  return tree;
218
225
  }
219
226
  }