@base-framework/base 3.6.2 → 3.6.4

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.
@@ -1 +1 @@
1
- export function Atom(callBack: (arg0: object, arg1: any) => object): (...args: any[]) => object;
1
+ export function Atom(callBack: (arg0: any, arg1: any) => object): (...args: any[]) => object;
@@ -24,6 +24,23 @@ export class DataPubSub {
24
24
  * @protected
25
25
  */
26
26
  protected flushScheduled: boolean;
27
+ /**
28
+ * Flag to track if currently flushing
29
+ * @type {boolean}
30
+ * @protected
31
+ */
32
+ protected isFlushing: boolean;
33
+ /**
34
+ * Counter for flush iterations (infinite loop detection)
35
+ * @type {number}
36
+ * @protected
37
+ */
38
+ protected flushIterations: number;
39
+ /**
40
+ * Maximum flush iterations before warning
41
+ * @type {number}
42
+ */
43
+ maxFlushIterations: number;
27
44
  /**
28
45
  * Enable/disable batching (useful for testing)
29
46
  * @type {boolean}
@@ -85,6 +102,7 @@ export class DataPubSub {
85
102
  /**
86
103
  * Schedule a flush in a microtask.
87
104
  * Ensures only one flush is scheduled at a time.
105
+ * If currently flushing, updates are queued and will be processed after current flush.
88
106
  *
89
107
  * @returns {void}
90
108
  */
@@ -92,6 +110,8 @@ export class DataPubSub {
92
110
  /**
93
111
  * Flush all queued updates.
94
112
  * Deduplicates updates (only last update per msg is applied).
113
+ * Handles recursive publishes by re-flushing until queue is empty.
114
+ * Detects infinite loops and breaks after maxFlushIterations.
95
115
  *
96
116
  * @returns {void}
97
117
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base-framework/base",
3
- "version": "3.6.2",
3
+ "version": "3.6.4",
4
4
  "description": "This is a javascript framework.",
5
5
  "main": "./dist/base.js",
6
6
  "type": "module",