@ersbeth/picoflow 0.0.1 → 0.1.0

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.
Files changed (143) hide show
  1. package/api/doc/index.md +1 -1
  2. package/api/doc/picoflow.constant.md +55 -0
  3. package/api/doc/picoflow.derivation.md +1 -1
  4. package/api/doc/picoflow.effect.md +1 -1
  5. package/api/doc/picoflow.flowconstant._constructor_.md +49 -0
  6. package/api/doc/picoflow.flowconstant.get.md +25 -0
  7. package/api/doc/picoflow.flowconstant.md +88 -0
  8. package/api/doc/picoflow.flowderivation._constructor_.md +2 -2
  9. package/api/doc/picoflow.flowderivation.get.md +2 -2
  10. package/api/doc/picoflow.flowderivation.md +2 -2
  11. package/api/doc/picoflow.floweffect._constructor_.md +7 -2
  12. package/api/doc/picoflow.floweffect.dispose.md +3 -3
  13. package/api/doc/picoflow.floweffect.disposed.md +1 -1
  14. package/api/doc/picoflow.floweffect.md +4 -4
  15. package/api/doc/picoflow.flowgetter.md +2 -2
  16. package/api/doc/picoflow.flowmap._lastdeleted.md +1 -1
  17. package/api/doc/picoflow.flowmap._lastset.md +1 -1
  18. package/api/doc/picoflow.flowmap.delete.md +6 -2
  19. package/api/doc/picoflow.flowmap.md +5 -7
  20. package/api/doc/picoflow.flowmap.setat.md +6 -2
  21. package/api/doc/picoflow.flowobservable.get.md +3 -3
  22. package/api/doc/picoflow.flowobservable.md +18 -4
  23. package/api/doc/picoflow.flowobservable.subscribe.md +55 -0
  24. package/api/doc/picoflow.flowresource._constructor_.md +2 -18
  25. package/api/doc/picoflow.flowresource.fetch.md +1 -1
  26. package/api/doc/picoflow.flowresource.get.md +4 -4
  27. package/api/doc/picoflow.flowresource.md +4 -4
  28. package/api/doc/picoflow.flowresourceasync._constructor_.md +49 -0
  29. package/api/doc/picoflow.flowresourceasync.fetch.md +27 -0
  30. package/api/doc/picoflow.flowresourceasync.get.md +23 -0
  31. package/api/doc/picoflow.flowresourceasync.md +100 -0
  32. package/api/doc/picoflow.flowsignal.dispose.md +3 -7
  33. package/api/doc/picoflow.flowsignal.disposed.md +2 -2
  34. package/api/doc/picoflow.flowsignal.md +5 -5
  35. package/api/doc/picoflow.flowsignal.trigger.md +3 -7
  36. package/api/doc/picoflow.flowstate.md +4 -52
  37. package/api/doc/picoflow.flowstate.set.md +5 -5
  38. package/api/doc/picoflow.flowstream._constructor_.md +3 -19
  39. package/api/doc/picoflow.flowstream.dispose.md +1 -1
  40. package/api/doc/picoflow.flowstream.get.md +4 -4
  41. package/api/doc/picoflow.flowstream.md +5 -5
  42. package/api/doc/picoflow.flowstreamasync._constructor_.md +54 -0
  43. package/api/doc/picoflow.flowstreamasync.dispose.md +21 -0
  44. package/api/doc/picoflow.flowstreamasync.get.md +23 -0
  45. package/api/doc/picoflow.flowstreamasync.md +100 -0
  46. package/api/doc/picoflow.flowstreamdisposer.md +13 -0
  47. package/api/doc/picoflow.flowstreamsetter.md +13 -0
  48. package/api/doc/picoflow.flowstreamupdater.md +19 -0
  49. package/api/doc/picoflow.flowwatcher.md +1 -1
  50. package/api/doc/picoflow.map.md +1 -1
  51. package/api/doc/picoflow.md +80 -14
  52. package/api/doc/picoflow.resource.md +2 -18
  53. package/api/doc/picoflow.resourceasync.md +55 -0
  54. package/api/doc/picoflow.signal.md +1 -1
  55. package/api/doc/picoflow.state.md +3 -3
  56. package/api/doc/picoflow.stream.md +2 -18
  57. package/api/doc/picoflow.streamasync.md +55 -0
  58. package/api/picoflow.public.api.md +131 -0
  59. package/api-extractor.json +2 -1
  60. package/dist/picoflow.js +326 -302
  61. package/dist/types/advanced/index.d.ts +7 -0
  62. package/dist/types/advanced/index.d.ts.map +1 -0
  63. package/dist/types/{map.d.ts → advanced/map.d.ts} +12 -12
  64. package/dist/types/advanced/map.d.ts.map +1 -0
  65. package/dist/types/advanced/resource.d.ts +39 -0
  66. package/dist/types/advanced/resource.d.ts.map +1 -0
  67. package/dist/types/{resource.d.ts → advanced/resourceAsync.d.ts} +6 -11
  68. package/dist/types/advanced/resourceAsync.d.ts.map +1 -0
  69. package/dist/types/advanced/stream.d.ts +59 -0
  70. package/dist/types/advanced/stream.d.ts.map +1 -0
  71. package/dist/types/advanced/streamAsync.d.ts +43 -0
  72. package/dist/types/advanced/streamAsync.d.ts.map +1 -0
  73. package/dist/types/basic/constant.d.ts +32 -0
  74. package/dist/types/basic/constant.d.ts.map +1 -0
  75. package/dist/types/basic/derivation.d.ts +40 -0
  76. package/dist/types/basic/derivation.d.ts.map +1 -0
  77. package/dist/types/basic/effect.d.ts +56 -0
  78. package/dist/types/basic/effect.d.ts.map +1 -0
  79. package/dist/types/basic/index.d.ts +9 -0
  80. package/dist/types/basic/index.d.ts.map +1 -0
  81. package/dist/types/basic/observable.d.ts +34 -0
  82. package/dist/types/basic/observable.d.ts.map +1 -0
  83. package/dist/types/basic/signal.d.ts +37 -0
  84. package/dist/types/basic/signal.d.ts.map +1 -0
  85. package/dist/types/basic/state.d.ts +26 -0
  86. package/dist/types/basic/state.d.ts.map +1 -0
  87. package/dist/types/creators.d.ts +29 -13
  88. package/dist/types/creators.d.ts.map +1 -1
  89. package/dist/types/index.d.ts +3 -9
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/package.json +1 -1
  92. package/src/advanced/index.ts +10 -0
  93. package/src/{map.ts → advanced/map.ts} +14 -14
  94. package/src/advanced/resource.ts +56 -0
  95. package/src/{resource.ts → advanced/resourceAsync.ts} +9 -16
  96. package/src/advanced/stream.ts +87 -0
  97. package/src/advanced/streamAsync.ts +82 -0
  98. package/src/basic/constant.ts +64 -0
  99. package/src/basic/derivation.ts +86 -0
  100. package/src/basic/effect.ts +96 -0
  101. package/src/basic/index.ts +8 -0
  102. package/src/basic/observable.ts +51 -0
  103. package/src/basic/signal.ts +105 -0
  104. package/src/basic/state.ts +39 -0
  105. package/src/creators.ts +54 -15
  106. package/src/index.ts +21 -11
  107. package/test/constant.test.ts +46 -0
  108. package/test/derivation.test.ts +30 -6
  109. package/test/effect.test.ts +29 -0
  110. package/test/map.test.ts +38 -0
  111. package/test/resource.test.ts +18 -16
  112. package/test/resourceAsync.test.ts +108 -0
  113. package/test/signal.test.ts +18 -1
  114. package/test/state.test.ts +107 -2
  115. package/test/stream.test.ts +38 -13
  116. package/test/streamAsync.test.ts +194 -0
  117. package/tsconfig.json +3 -1
  118. package/api/doc/picoflow.flowdisposer.md +0 -13
  119. package/api/doc/picoflow.flowsetter.md +0 -13
  120. package/api/doc/picoflow.flowstate._constructor_.md +0 -49
  121. package/api/doc/picoflow.flowstate.get.md +0 -23
  122. package/api/doc/picoflow.flowupdater.md +0 -19
  123. package/api/picoflow.api.md +0 -145
  124. package/dist/types/derivation.d.ts +0 -58
  125. package/dist/types/derivation.d.ts.map +0 -1
  126. package/dist/types/effect.d.ts +0 -108
  127. package/dist/types/effect.d.ts.map +0 -1
  128. package/dist/types/map.d.ts.map +0 -1
  129. package/dist/types/observable.d.ts +0 -40
  130. package/dist/types/observable.d.ts.map +0 -1
  131. package/dist/types/resource.d.ts.map +0 -1
  132. package/dist/types/signal.d.ts +0 -111
  133. package/dist/types/signal.d.ts.map +0 -1
  134. package/dist/types/state.d.ts +0 -39
  135. package/dist/types/state.d.ts.map +0 -1
  136. package/dist/types/stream.d.ts +0 -71
  137. package/dist/types/stream.d.ts.map +0 -1
  138. package/src/derivation.ts +0 -96
  139. package/src/effect.ts +0 -152
  140. package/src/observable.ts +0 -50
  141. package/src/signal.ts +0 -166
  142. package/src/state.ts +0 -52
  143. package/src/stream.ts +0 -99
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowResource](./picoflow.flowresource.md) &gt; [get](./picoflow.flowresource.get.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowResource](./picoflow.flowresource.md) &gt; [get](./picoflow.flowresource.get.md)
4
4
 
5
5
  ## FlowResource.get() method
6
6
 
@@ -9,13 +9,13 @@ Retrieves the current resource value.
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- get(): T;
12
+ get(): T | undefined;
13
13
  ```
14
14
  **Returns:**
15
15
 
16
- T
16
+ T \| undefined
17
17
 
18
- The current value.
18
+ The current value, or undefined if the resource has not been fetched yet.
19
19
 
20
20
  ## Exceptions
21
21
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowResource](./picoflow.flowresource.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowResource](./picoflow.flowresource.md)
4
4
 
5
5
  ## FlowResource class
6
6
 
@@ -9,9 +9,9 @@ Represents a reactive resource that asynchronously fetches its value.
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- export declare class FlowResource<T> extends FlowObservable<T>
12
+ export declare class FlowResource<T> extends FlowObservable<T | undefined>
13
13
  ```
14
- **Extends:** [FlowObservable](./picoflow.flowobservable.md)<!-- -->&lt;T&gt;
14
+ **Extends:** [FlowObservable](./picoflow.flowobservable.md)<!-- -->&lt;T \| undefined&gt;
15
15
 
16
16
  ## Remarks
17
17
 
@@ -37,7 +37,7 @@ Description
37
37
  </th></tr></thead>
38
38
  <tbody><tr><td>
39
39
 
40
- [(constructor)(fetch, initial)](./picoflow.flowresource._constructor_.md)
40
+ [(constructor)(fetch)](./picoflow.flowresource._constructor_.md)
41
41
 
42
42
 
43
43
  </td><td>
@@ -0,0 +1,49 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowResourceAsync](./picoflow.flowresourceasync.md) &gt; [(constructor)](./picoflow.flowresourceasync._constructor_.md)
4
+
5
+ ## FlowResourceAsync.(constructor)
6
+
7
+ Creates a new FlowResource.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ constructor(fetch: () => Promise<T>);
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ fetch
36
+
37
+
38
+ </td><td>
39
+
40
+ () =&gt; Promise&lt;T&gt;
41
+
42
+
43
+ </td><td>
44
+
45
+ An asynchronous function that retrieves the resource's value.
46
+
47
+
48
+ </td></tr>
49
+ </tbody></table>
@@ -0,0 +1,27 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowResourceAsync](./picoflow.flowresourceasync.md) &gt; [fetch](./picoflow.flowresourceasync.fetch.md)
4
+
5
+ ## FlowResourceAsync.fetch() method
6
+
7
+ Asynchronously fetches a new value for the resource.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ fetch(): Promise<void>;
13
+ ```
14
+ **Returns:**
15
+
16
+ Promise&lt;void&gt;
17
+
18
+ A Promise that resolves when the fetch operation is complete.
19
+
20
+ ## Exceptions
21
+
22
+ Error if the resource is disposed.
23
+
24
+ ## Remarks
25
+
26
+ Executes the internal fetch function. If the fetched value differs from the current one, updates the resource's value and notifies subscribers.
27
+
@@ -0,0 +1,23 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowResourceAsync](./picoflow.flowresourceasync.md) &gt; [get](./picoflow.flowresourceasync.get.md)
4
+
5
+ ## FlowResourceAsync.get() method
6
+
7
+ Retrieves the current resource value.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ get(): Promise<T>;
13
+ ```
14
+ **Returns:**
15
+
16
+ Promise&lt;T&gt;
17
+
18
+ The current value, or undefined if the resource has not been fetched yet.
19
+
20
+ ## Exceptions
21
+
22
+ Error if the resource is disposed.
23
+
@@ -0,0 +1,100 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowResourceAsync](./picoflow.flowresourceasync.md)
4
+
5
+ ## FlowResourceAsync class
6
+
7
+ Represents a reactive resource that asynchronously fetches its value.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export declare class FlowResourceAsync<T> extends FlowObservable<Promise<T>>
13
+ ```
14
+ **Extends:** [FlowObservable](./picoflow.flowobservable.md)<!-- -->&lt;Promise&lt;T&gt;&gt;
15
+
16
+ ## Remarks
17
+
18
+ A FlowResource extends FlowObservable and encapsulates an asynchronous fetch function. It is used to retrieve and update its value asynchronously. When the fetch is executed, if the new value differs from the current value, the resource is updated and its subscribers are notified.
19
+
20
+ ## Constructors
21
+
22
+ <table><thead><tr><th>
23
+
24
+ Constructor
25
+
26
+
27
+ </th><th>
28
+
29
+ Modifiers
30
+
31
+
32
+ </th><th>
33
+
34
+ Description
35
+
36
+
37
+ </th></tr></thead>
38
+ <tbody><tr><td>
39
+
40
+ [(constructor)(fetch)](./picoflow.flowresourceasync._constructor_.md)
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td><td>
47
+
48
+ Creates a new FlowResource.
49
+
50
+
51
+ </td></tr>
52
+ </tbody></table>
53
+
54
+ ## Methods
55
+
56
+ <table><thead><tr><th>
57
+
58
+ Method
59
+
60
+
61
+ </th><th>
62
+
63
+ Modifiers
64
+
65
+
66
+ </th><th>
67
+
68
+ Description
69
+
70
+
71
+ </th></tr></thead>
72
+ <tbody><tr><td>
73
+
74
+ [fetch()](./picoflow.flowresourceasync.fetch.md)
75
+
76
+
77
+ </td><td>
78
+
79
+
80
+ </td><td>
81
+
82
+ Asynchronously fetches a new value for the resource.
83
+
84
+
85
+ </td></tr>
86
+ <tr><td>
87
+
88
+ [get()](./picoflow.flowresourceasync.get.md)
89
+
90
+
91
+ </td><td>
92
+
93
+
94
+ </td><td>
95
+
96
+ Retrieves the current resource value.
97
+
98
+
99
+ </td></tr>
100
+ </tbody></table>
@@ -1,10 +1,10 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md) &gt; [dispose](./picoflow.flowsignal.dispose.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md) &gt; [dispose](./picoflow.flowsignal.dispose.md)
4
4
 
5
5
  ## FlowSignal.dispose() method
6
6
 
7
- Disposes the signal.
7
+ Disposes the FlowSignal. Cleans up all registered effects, listeners, and dependencies. Once disposed, further usage of the signal will throw an error.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -17,9 +17,5 @@ void
17
17
 
18
18
  ## Exceptions
19
19
 
20
- Error if the signal is already disposed.
21
-
22
- ## Remarks
23
-
24
- Disposing a signal will dispose all registered effects and listeners, and unregister all dependencies. Once disposed, any further calls to the signal will throw an error.
20
+ If the FlowSignal is already disposed.
25
21
 
@@ -1,10 +1,10 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md) &gt; [disposed](./picoflow.flowsignal.disposed.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md) &gt; [disposed](./picoflow.flowsignal.disposed.md)
4
4
 
5
5
  ## FlowSignal.disposed property
6
6
 
7
- Indicates whether the signal has been disposed.
7
+ Indicates whether the FlowSignal has been disposed.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md)
4
4
 
5
5
  ## FlowSignal class
6
6
 
@@ -14,7 +14,7 @@ export declare class FlowSignal
14
14
 
15
15
  ## Remarks
16
16
 
17
- A FlowSignal allows you to trigger notifications via [FlowSignal.trigger()](./picoflow.flowsignal.trigger.md) and to dispose the signal and all its registered dependencies, listeners, and effects via [FlowSignal.dispose()](./picoflow.flowsignal.dispose.md)<!-- -->.
17
+ Use FlowSignal to create reactive streams that notify listeners and execute associated effects. Signals can be triggered and disposed. Once disposed, interactions with the signal will throw errors.
18
18
 
19
19
  ## Properties
20
20
 
@@ -56,7 +56,7 @@ boolean
56
56
 
57
57
  </td><td>
58
58
 
59
- Indicates whether the signal has been disposed.
59
+ Indicates whether the FlowSignal has been disposed.
60
60
 
61
61
 
62
62
  </td></tr>
@@ -90,7 +90,7 @@ Description
90
90
 
91
91
  </td><td>
92
92
 
93
- Disposes the signal.
93
+ Disposes the FlowSignal. Cleans up all registered effects, listeners, and dependencies. Once disposed, further usage of the signal will throw an error.
94
94
 
95
95
 
96
96
  </td></tr>
@@ -104,7 +104,7 @@ Disposes the signal.
104
104
 
105
105
  </td><td>
106
106
 
107
- Triggers the signal.
107
+ Triggers the FlowSignal. Notifies all registered listeners and schedules execution of associated effects.
108
108
 
109
109
 
110
110
  </td></tr>
@@ -1,10 +1,10 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md) &gt; [trigger](./picoflow.flowsignal.trigger.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowSignal](./picoflow.flowsignal.md) &gt; [trigger](./picoflow.flowsignal.trigger.md)
4
4
 
5
5
  ## FlowSignal.trigger() method
6
6
 
7
- Triggers the signal.
7
+ Triggers the FlowSignal. Notifies all registered listeners and schedules execution of associated effects.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -17,9 +17,5 @@ void
17
17
 
18
18
  ## Exceptions
19
19
 
20
- Error if the signal is disposed.
21
-
22
- ## Remarks
23
-
24
- This method notifies all registered listeners and causes associated effects to execute.
20
+ If the FlowSignal has already been disposed.
25
21
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowState](./picoflow.flowstate.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowState](./picoflow.flowstate.md)
4
4
 
5
5
  ## FlowState class
6
6
 
@@ -9,47 +9,13 @@ Represents a reactive state that holds a mutable value.
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- export declare class FlowState<T> extends FlowObservable<T>
12
+ export declare class FlowState<T> extends FlowConstant<T>
13
13
  ```
14
- **Extends:** [FlowObservable](./picoflow.flowobservable.md)<!-- -->&lt;T&gt;
14
+ **Extends:** [FlowConstant](./picoflow.flowconstant.md)<!-- -->&lt;T&gt;
15
15
 
16
16
  ## Remarks
17
17
 
18
- FlowState extends FlowObservable to provide a simple reactive state primitive. Use the [FlowState.get()](./picoflow.flowstate.get.md) method to read the current state and [FlowState.set()](./picoflow.flowstate.set.md) to update it. When the state is updated, subscribers are notified automatically.
19
-
20
- ## Constructors
21
-
22
- <table><thead><tr><th>
23
-
24
- Constructor
25
-
26
-
27
- </th><th>
28
-
29
- Modifiers
30
-
31
-
32
- </th><th>
33
-
34
- Description
35
-
36
-
37
- </th></tr></thead>
38
- <tbody><tr><td>
39
-
40
- [(constructor)(value)](./picoflow.flowstate._constructor_.md)
41
-
42
-
43
- </td><td>
44
-
45
-
46
- </td><td>
47
-
48
- Creates a new FlowState with the given initial value.
49
-
50
-
51
- </td></tr>
52
- </tbody></table>
18
+ FlowState extends FlowConstant, which provides the [FlowConstant.get()](./picoflow.flowconstant.get.md) method to read the current state. Use the [FlowState.set()](./picoflow.flowstate.set.md) method to update the state. When the state is updated, subscribers are notified automatically. This class notifies subscribers only when the value changes.
53
19
 
54
20
  ## Methods
55
21
 
@@ -71,20 +37,6 @@ Description
71
37
  </th></tr></thead>
72
38
  <tbody><tr><td>
73
39
 
74
- [get()](./picoflow.flowstate.get.md)
75
-
76
-
77
- </td><td>
78
-
79
-
80
- </td><td>
81
-
82
- Retrieves the current state value.
83
-
84
-
85
- </td></tr>
86
- <tr><td>
87
-
88
40
  [set(value)](./picoflow.flowstate.set.md)
89
41
 
90
42
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowState](./picoflow.flowstate.md) &gt; [set](./picoflow.flowstate.set.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowState](./picoflow.flowstate.md) &gt; [set](./picoflow.flowstate.set.md)
4
4
 
5
5
  ## FlowState.set() method
6
6
 
@@ -9,7 +9,7 @@ Updates the state with a new value.
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- set(value: T): void;
12
+ set(value: T | ((current: T) => T)): void;
13
13
  ```
14
14
 
15
15
  ## Parameters
@@ -37,12 +37,12 @@ value
37
37
 
38
38
  </td><td>
39
39
 
40
- T
40
+ T \| ((current: T) =&gt; T)
41
41
 
42
42
 
43
43
  </td><td>
44
44
 
45
- The new value to set.
45
+ A new value or a callback function that computes a new value based on the current state.
46
46
 
47
47
 
48
48
  </td></tr>
@@ -57,5 +57,5 @@ Error if the state has been disposed.
57
57
 
58
58
  ## Remarks
59
59
 
60
- If the new value is identical to the current value, no update or notification occurs. Otherwise, the state is updated and all subscribers are notified.
60
+ If the computed new value is strictly equal to the current state value, no change is made and subscribers will not be notified. Otherwise, the state is updated and all subscribers are informed of the change.
61
61
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md) &gt; [(constructor)](./picoflow.flowstream._constructor_.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md) &gt; [(constructor)](./picoflow.flowstream._constructor_.md)
4
4
 
5
5
  ## FlowStream.(constructor)
6
6
 
@@ -9,7 +9,7 @@ Creates a new FlowStream.
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- constructor(updater: FlowUpdater<T>, initial: T);
12
+ constructor(updater: FlowStreamUpdater<T>);
13
13
  ```
14
14
 
15
15
  ## Parameters
@@ -37,7 +37,7 @@ updater
37
37
 
38
38
  </td><td>
39
39
 
40
- [FlowUpdater](./picoflow.flowupdater.md)<!-- -->&lt;T&gt;
40
+ [FlowStreamUpdater](./picoflow.flowstreamupdater.md)<!-- -->&lt;T&gt;
41
41
 
42
42
 
43
43
  </td><td>
@@ -45,21 +45,5 @@ updater
45
45
  A function that receives a setter to update the stream's value. It should return a disposer function that will be called upon disposal.
46
46
 
47
47
 
48
- </td></tr>
49
- <tr><td>
50
-
51
- initial
52
-
53
-
54
- </td><td>
55
-
56
- T
57
-
58
-
59
- </td><td>
60
-
61
- The initial value of the stream.
62
-
63
-
64
48
  </td></tr>
65
49
  </tbody></table>
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md) &gt; [dispose](./picoflow.flowstream.dispose.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md) &gt; [dispose](./picoflow.flowstream.dispose.md)
4
4
 
5
5
  ## FlowStream.dispose() method
6
6
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md) &gt; [get](./picoflow.flowstream.get.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md) &gt; [get](./picoflow.flowstream.get.md)
4
4
 
5
5
  ## FlowStream.get() method
6
6
 
@@ -9,13 +9,13 @@ Retrieves the current value of the stream.
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- get(): T;
12
+ get(): T | undefined;
13
13
  ```
14
14
  **Returns:**
15
15
 
16
- T
16
+ T \| undefined
17
17
 
18
- The current value.
18
+ The current value, or undefined if no value has been set yet.
19
19
 
20
20
  ## Exceptions
21
21
 
@@ -1,6 +1,6 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md)
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowStream](./picoflow.flowstream.md)
4
4
 
5
5
  ## FlowStream class
6
6
 
@@ -9,13 +9,13 @@ Represents a reactive stream that updates its value based on an updater function
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- export declare class FlowStream<T> extends FlowObservable<T>
12
+ export declare class FlowStream<T> extends FlowObservable<T | undefined>
13
13
  ```
14
- **Extends:** [FlowObservable](./picoflow.flowobservable.md)<!-- -->&lt;T&gt;
14
+ **Extends:** [FlowObservable](./picoflow.flowobservable.md)<!-- -->&lt;T \| undefined&gt;
15
15
 
16
16
  ## Remarks
17
17
 
18
- A FlowStream extends FlowObservable and encapsulates a mechanism for updating its value via an external updater function. The updater is invoked during construction with a setter, and it returns a disposer to be called when the stream is disposed.
18
+ FlowStream extends FlowObservable to encapsulate an update mechanism provided by an external updater function. The updater is invoked during construction with a setter, and it returns a disposer to be called upon disposal. Note: The stream's current value may be undefined until explicitly set.
19
19
 
20
20
  ## Constructors
21
21
 
@@ -37,7 +37,7 @@ Description
37
37
  </th></tr></thead>
38
38
  <tbody><tr><td>
39
39
 
40
- [(constructor)(updater, initial)](./picoflow.flowstream._constructor_.md)
40
+ [(constructor)(updater)](./picoflow.flowstream._constructor_.md)
41
41
 
42
42
 
43
43
  </td><td>
@@ -0,0 +1,54 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowStreamAsync](./picoflow.flowstreamasync.md) &gt; [(constructor)](./picoflow.flowstreamasync._constructor_.md)
4
+
5
+ ## FlowStreamAsync.(constructor)
6
+
7
+ Creates a new asynchronous FlowStream.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ constructor(updater: FlowStreamUpdater<T>);
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ updater
36
+
37
+
38
+ </td><td>
39
+
40
+ [FlowStreamUpdater](./picoflow.flowstreamupdater.md)<!-- -->&lt;T&gt;
41
+
42
+
43
+ </td><td>
44
+
45
+ A function that receives a setter to update the stream's value. It should return a disposer function that will be called upon disposal.
46
+
47
+
48
+ </td></tr>
49
+ </tbody></table>
50
+
51
+ ## Remarks
52
+
53
+ The updater function can invoke the setter asynchronously to update the stream.
54
+
@@ -0,0 +1,21 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@ersbeth/picoflow](./picoflow.md) &gt; [FlowStreamAsync](./picoflow.flowstreamasync.md) &gt; [dispose](./picoflow.flowstreamasync.dispose.md)
4
+
5
+ ## FlowStreamAsync.dispose() method
6
+
7
+ Disposes the stream, releasing all resources.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ dispose(): void;
13
+ ```
14
+ **Returns:**
15
+
16
+ void
17
+
18
+ ## Remarks
19
+
20
+ In addition to disposing the underlying observable, this method calls the disposer returned by the updater.
21
+