@ersbeth/picoflow 2.0.1 → 2.0.3

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 (154) hide show
  1. package/README.md +10 -0
  2. package/SKILL.md +106 -0
  3. package/dist/types/api/base/flowSubscribable.d.ts +3 -3
  4. package/dist/types/api/base/flowSubscribable.d.ts.map +1 -1
  5. package/package.json +5 -1
  6. package/.gitlab-ci.yml +0 -24
  7. package/.vscode/settings.json +0 -5
  8. package/CHANGELOG.md +0 -94
  9. package/biome.json +0 -47
  10. package/docs/.vitepress/config.mts +0 -145
  11. package/docs/api/functions/array.md +0 -35
  12. package/docs/api/functions/constant.md +0 -33
  13. package/docs/api/functions/constantAsync.md +0 -69
  14. package/docs/api/functions/derivation.md +0 -34
  15. package/docs/api/functions/derivationAsync.md +0 -34
  16. package/docs/api/functions/from.md +0 -129
  17. package/docs/api/functions/isDisposable.md +0 -27
  18. package/docs/api/functions/map.md +0 -36
  19. package/docs/api/functions/signal.md +0 -21
  20. package/docs/api/functions/state.md +0 -67
  21. package/docs/api/functions/stateAsync.md +0 -69
  22. package/docs/api/functions/subscribe.md +0 -40
  23. package/docs/api/functions/writableDerivation.md +0 -33
  24. package/docs/api/functions/writableDerivationAsync.md +0 -34
  25. package/docs/api/index.md +0 -61
  26. package/docs/api/interfaces/FlowArray.md +0 -439
  27. package/docs/api/interfaces/FlowConstant.md +0 -220
  28. package/docs/api/interfaces/FlowConstantAsync.md +0 -221
  29. package/docs/api/interfaces/FlowDerivation.md +0 -241
  30. package/docs/api/interfaces/FlowDerivationAsync.md +0 -242
  31. package/docs/api/interfaces/FlowDisposable.md +0 -59
  32. package/docs/api/interfaces/FlowEffect.md +0 -64
  33. package/docs/api/interfaces/FlowMap.md +0 -374
  34. package/docs/api/interfaces/FlowObservable.md +0 -155
  35. package/docs/api/interfaces/FlowSignal.md +0 -156
  36. package/docs/api/interfaces/FlowState.md +0 -269
  37. package/docs/api/interfaces/FlowStateAsync.md +0 -268
  38. package/docs/api/interfaces/FlowSubscribable.md +0 -55
  39. package/docs/api/interfaces/FlowTracker.md +0 -61
  40. package/docs/api/interfaces/FlowValue.md +0 -222
  41. package/docs/api/interfaces/FlowWritableDerivation.md +0 -292
  42. package/docs/api/interfaces/FlowWritableDerivationAsync.md +0 -293
  43. package/docs/api/type-aliases/DerivationFunction.md +0 -28
  44. package/docs/api/type-aliases/DerivationFunctionAsync.md +0 -28
  45. package/docs/api/type-aliases/FlowArrayAction.md +0 -60
  46. package/docs/api/type-aliases/FlowDataTracker.md +0 -33
  47. package/docs/api/type-aliases/FlowMapAction.md +0 -48
  48. package/docs/api/type-aliases/FlowOnDataListener.md +0 -33
  49. package/docs/api/type-aliases/FlowOnErrorListener.md +0 -27
  50. package/docs/api/type-aliases/FlowOnPendingListener.md +0 -21
  51. package/docs/api/type-aliases/FlowReadonly.md +0 -22
  52. package/docs/api/type-aliases/InitFunction.md +0 -21
  53. package/docs/api/type-aliases/InitFunctionAsync.md +0 -21
  54. package/docs/api/type-aliases/NotPromise.md +0 -21
  55. package/docs/api/type-aliases/UpdateFunction.md +0 -27
  56. package/docs/api/type-aliases/UpdateFunctionAsync.md +0 -27
  57. package/docs/api/typedoc-sidebar.json +0 -65
  58. package/docs/examples/examples.md +0 -2311
  59. package/docs/examples/patterns.md +0 -649
  60. package/docs/guide/advanced/architecture.md +0 -1234
  61. package/docs/guide/advanced/disposal.md +0 -426
  62. package/docs/guide/advanced/migration-v1.md +0 -464
  63. package/docs/guide/advanced/migration-v2.md +0 -204
  64. package/docs/guide/advanced/solidjs.md +0 -135
  65. package/docs/guide/introduction/concepts.md +0 -57
  66. package/docs/guide/introduction/conventions.md +0 -30
  67. package/docs/guide/introduction/getting-started.md +0 -139
  68. package/docs/guide/introduction/lifecycle.md +0 -368
  69. package/docs/guide/primitives/array.md +0 -286
  70. package/docs/guide/primitives/constant.md +0 -207
  71. package/docs/guide/primitives/derivations.md +0 -281
  72. package/docs/guide/primitives/effects.md +0 -372
  73. package/docs/guide/primitives/map.md +0 -265
  74. package/docs/guide/primitives/overview.md +0 -92
  75. package/docs/guide/primitives/signal.md +0 -222
  76. package/docs/guide/primitives/state.md +0 -272
  77. package/docs/index.md +0 -47
  78. package/docs/public/logo.svg +0 -1
  79. package/src/api/base/flowDisposable.ts +0 -44
  80. package/src/api/base/flowObservable.ts +0 -28
  81. package/src/api/base/flowSubscribable.ts +0 -87
  82. package/src/api/base/flowTracker.ts +0 -7
  83. package/src/api/base/index.ts +0 -4
  84. package/src/api/index.ts +0 -2
  85. package/src/api/nodes/async/flowConstantAsync.ts +0 -36
  86. package/src/api/nodes/async/flowDerivationAsync.ts +0 -42
  87. package/src/api/nodes/async/flowStateAsync.ts +0 -47
  88. package/src/api/nodes/async/flowWritableDerivationAsync.ts +0 -33
  89. package/src/api/nodes/async/index.ts +0 -4
  90. package/src/api/nodes/collections/flowArray.ts +0 -155
  91. package/src/api/nodes/collections/flowMap.ts +0 -115
  92. package/src/api/nodes/collections/index.ts +0 -2
  93. package/src/api/nodes/flowEffect.ts +0 -42
  94. package/src/api/nodes/flowSignal.ts +0 -28
  95. package/src/api/nodes/flowValue.ts +0 -37
  96. package/src/api/nodes/index.ts +0 -7
  97. package/src/api/nodes/sync/flowConstant.ts +0 -33
  98. package/src/api/nodes/sync/flowDerivation.ts +0 -41
  99. package/src/api/nodes/sync/flowState.ts +0 -45
  100. package/src/api/nodes/sync/flowWritableDerivation.ts +0 -31
  101. package/src/api/nodes/sync/index.ts +0 -4
  102. package/src/api/nodes/utils.ts +0 -24
  103. package/src/base/disposable.ts +0 -18
  104. package/src/base/executionStack.ts +0 -42
  105. package/src/base/index.ts +0 -5
  106. package/src/base/node.ts +0 -98
  107. package/src/base/observable.ts +0 -92
  108. package/src/base/observer.ts +0 -51
  109. package/src/converters/index.ts +0 -1
  110. package/src/converters/solid.ts +0 -109
  111. package/src/index.ts +0 -2
  112. package/src/nodes/arrayNode.ts +0 -180
  113. package/src/nodes/effectNode.ts +0 -58
  114. package/src/nodes/index.ts +0 -7
  115. package/src/nodes/mapNode.ts +0 -125
  116. package/src/nodes/signalNode.ts +0 -19
  117. package/src/nodes/valueAsyncNode.ts +0 -85
  118. package/src/nodes/valueNode.ts +0 -148
  119. package/src/nodes/valueSyncNode.ts +0 -125
  120. package/src/schedulers/asyncResolver.ts +0 -78
  121. package/src/schedulers/asyncScheduler.ts +0 -66
  122. package/src/schedulers/index.ts +0 -4
  123. package/src/schedulers/pendingError.ts +0 -13
  124. package/src/schedulers/scheduler.ts +0 -9
  125. package/src/schedulers/syncResolver.ts +0 -69
  126. package/src/schedulers/syncScheduler.ts +0 -55
  127. package/test/base/pendingError.test.ts +0 -67
  128. package/test/converters/solid.derivation.browser.test.tsx +0 -69
  129. package/test/converters/solid.node.test.ts +0 -654
  130. package/test/converters/solid.state.browser.test.tsx +0 -1592
  131. package/test/reactivity/flowSignal.test.ts +0 -226
  132. package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +0 -593
  133. package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +0 -317
  134. package/test/reactivity/nodes/async/flowConstantAsync.test.ts +0 -652
  135. package/test/reactivity/nodes/async/flowDerivation.test.ts +0 -898
  136. package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +0 -1716
  137. package/test/reactivity/nodes/async/flowStateAsync.test.ts +0 -708
  138. package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +0 -614
  139. package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +0 -1289
  140. package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +0 -961
  141. package/test/reactivity/nodes/collections/flowArray.states.test.ts +0 -1035
  142. package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +0 -960
  143. package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +0 -775
  144. package/test/reactivity/nodes/collections/flowMap.states.test.ts +0 -958
  145. package/test/reactivity/nodes/sync/flowConstant.test.ts +0 -377
  146. package/test/reactivity/nodes/sync/flowDerivation.test.ts +0 -896
  147. package/test/reactivity/nodes/sync/flowState.test.ts +0 -341
  148. package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +0 -603
  149. package/test/vitest.d.ts +0 -10
  150. package/tsconfig.json +0 -37
  151. package/typedoc.json +0 -37
  152. package/vite.config.ts +0 -31
  153. package/vitest.browser.config.ts +0 -21
  154. package/vitest.config.ts +0 -17
@@ -1,55 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowSubscribable
2
-
3
- # Interface: FlowSubscribable\<T\>
4
-
5
- Defined in: [api/base/flowSubscribable.ts:68](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L68)
6
-
7
- Contract for observables that can be subscribed to with lifecycle callbacks.
8
-
9
- This interface enables imperative subscription to reactive values, allowing manual control over
10
- when effects run. The subscribe method returns a disposal function to stop the subscription.
11
- Useful for integrating with non-reactive code or frameworks that manage subscriptions differently.
12
-
13
- ## Extended by
14
-
15
- - [`FlowObservable`](/api/interfaces/FlowObservable.md)
16
-
17
- ## Type Parameters
18
-
19
- | Type Parameter |
20
- | ------ |
21
- | `T` |
22
-
23
- ## Methods
24
-
25
- ### subscribe()
26
-
27
- ```ts
28
- subscribe(
29
- onData,
30
- onError?,
31
- onPending?): FlowEffect;
32
- ```
33
-
34
- Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
35
-
36
- Subscribes to this observable with lifecycle callbacks.
37
-
38
- Creates an active subscription that executes immediately and then re-executes whenever
39
- the observable's dependencies change. The subscription remains active until the returned
40
- disposal function is called. The `onData` callback receives the computed value, while
41
- `onError` handles errors and `onPending` signals async operations in progress.
42
-
43
- #### Parameters
44
-
45
- | Parameter | Type | Description |
46
- | ------ | ------ | ------ |
47
- | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
48
- | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
49
- | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
50
-
51
- #### Returns
52
-
53
- [`FlowEffect`](/api/interfaces/FlowEffect.md)
54
-
55
- A function to dispose the subscription and stop receiving updates
@@ -1,61 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowTracker
2
-
3
- # Interface: FlowTracker
4
-
5
- Defined in: [api/base/flowTracker.ts:7](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowTracker.ts#L7)
6
-
7
- Contract for reactive computations that track dependencies and react to changes in the reactivity graph.
8
-
9
- ## Extends
10
-
11
- - [`FlowDisposable`](/api/interfaces/FlowDisposable.md)
12
-
13
- ## Accessors
14
-
15
- ### disposed
16
-
17
- #### Get Signature
18
-
19
- ```ts
20
- get disposed(): boolean;
21
- ```
22
-
23
- Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
24
-
25
- Indicates whether this resource has been disposed.
26
-
27
- Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
28
- the resource is no longer usable and any operations on it will throw errors.
29
-
30
- ##### Returns
31
-
32
- `boolean`
33
-
34
- #### Inherited from
35
-
36
- [`FlowDisposable`](/api/interfaces/FlowDisposable.md).[`disposed`](/api/interfaces/FlowDisposable.md#disposed)
37
-
38
- ## Methods
39
-
40
- ### dispose()
41
-
42
- ```ts
43
- dispose(): void;
44
- ```
45
-
46
- Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
47
-
48
- Releases all resources held by this disposable object.
49
-
50
- Cleans up all subscriptions, dependencies, and internal state. After calling this method,
51
- the resource enters a disposed state and cannot be reused. Any subsequent operations will
52
- throw errors. This method should be called when you no longer need the reactive primitive
53
- to prevent memory leaks.
54
-
55
- #### Returns
56
-
57
- `void`
58
-
59
- #### Inherited from
60
-
61
- [`FlowDisposable`](/api/interfaces/FlowDisposable.md).[`dispose`](/api/interfaces/FlowDisposable.md#dispose)
@@ -1,222 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowValue
2
-
3
- # Interface: FlowValue\<T\>
4
-
5
- Defined in: [api/nodes/flowValue.ts:13](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L13)
6
-
7
- Base interface for reactive values that can be read synchronously or asynchronously.
8
-
9
- FlowValue extends FlowObservable with methods to access the current value. Use `get()` to read
10
- the value reactively (establishing a dependency), or `pick()` to read it non-reactively. All
11
- value-based primitives (state, derivation, constant, and their async variants) implement this
12
- interface, providing a consistent API for value access across the reactive system.
13
-
14
- ## Extends
15
-
16
- - [`FlowObservable`](/api/interfaces/FlowObservable.md)\<`T`\>
17
-
18
- ## Extended by
19
-
20
- - [`FlowConstantAsync`](/api/interfaces/FlowConstantAsync.md)
21
- - [`FlowDerivationAsync`](/api/interfaces/FlowDerivationAsync.md)
22
- - [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)
23
- - [`FlowConstant`](/api/interfaces/FlowConstant.md)
24
- - [`FlowDerivation`](/api/interfaces/FlowDerivation.md)
25
- - [`FlowState`](/api/interfaces/FlowState.md)
26
-
27
- ## Type Parameters
28
-
29
- | Type Parameter |
30
- | ------ |
31
- | `T` |
32
-
33
- ## Accessors
34
-
35
- ### disposed
36
-
37
- #### Get Signature
38
-
39
- ```ts
40
- get disposed(): boolean;
41
- ```
42
-
43
- Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
44
-
45
- Indicates whether this resource has been disposed.
46
-
47
- Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
48
- the resource is no longer usable and any operations on it will throw errors.
49
-
50
- ##### Returns
51
-
52
- `boolean`
53
-
54
- #### Inherited from
55
-
56
- [`FlowObservable`](/api/interfaces/FlowObservable.md).[`disposed`](/api/interfaces/FlowObservable.md#disposed)
57
-
58
- ## Methods
59
-
60
- ### dispose()
61
-
62
- ```ts
63
- dispose(): void;
64
- ```
65
-
66
- Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
67
-
68
- Releases all resources held by this disposable object.
69
-
70
- Cleans up all subscriptions, dependencies, and internal state. After calling this method,
71
- the resource enters a disposed state and cannot be reused. Any subsequent operations will
72
- throw errors. This method should be called when you no longer need the reactive primitive
73
- to prevent memory leaks.
74
-
75
- #### Returns
76
-
77
- `void`
78
-
79
- #### Inherited from
80
-
81
- [`FlowObservable`](/api/interfaces/FlowObservable.md).[`dispose`](/api/interfaces/FlowObservable.md#dispose)
82
-
83
- ***
84
-
85
- ### get()
86
-
87
- ```ts
88
- get(tracker): T;
89
- ```
90
-
91
- Defined in: [api/nodes/flowValue.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L24)
92
-
93
- Gets the current value and establishes a reactive dependency.
94
-
95
- When called from within a reactive computation, this method registers the value as a dependency,
96
- ensuring the computation re-executes when the value changes. The value is computed on first access
97
- (if lazy) and then cached. For async values, throws PendingError while the value is resolving.
98
-
99
- #### Parameters
100
-
101
- | Parameter | Type | Description |
102
- | ------ | ------ | ------ |
103
- | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this value as a dependency |
104
-
105
- #### Returns
106
-
107
- `T`
108
-
109
- The current value
110
-
111
- ***
112
-
113
- ### pick()
114
-
115
- ```ts
116
- pick(): Promise<T>;
117
- ```
118
-
119
- Defined in: [api/nodes/flowValue.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L35)
120
-
121
- Asynchronously gets the current value without establishing a reactive dependency.
122
-
123
- This method reads the value non-reactively, meaning it won't trigger re-execution of the calling
124
- computation when the value changes. The value is computed on first access (if lazy) and then cached.
125
- For async values, the promise resolves once the value is available.
126
-
127
- #### Returns
128
-
129
- `Promise`\<`T`\>
130
-
131
- Promise that resolves with the current value
132
-
133
- ***
134
-
135
- ### subscribe()
136
-
137
- ```ts
138
- subscribe(
139
- onData,
140
- onError?,
141
- onPending?): FlowEffect;
142
- ```
143
-
144
- Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
145
-
146
- Subscribes to this observable with lifecycle callbacks.
147
-
148
- Creates an active subscription that executes immediately and then re-executes whenever
149
- the observable's dependencies change. The subscription remains active until the returned
150
- disposal function is called. The `onData` callback receives the computed value, while
151
- `onError` handles errors and `onPending` signals async operations in progress.
152
-
153
- #### Parameters
154
-
155
- | Parameter | Type | Description |
156
- | ------ | ------ | ------ |
157
- | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
158
- | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
159
- | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
160
-
161
- #### Returns
162
-
163
- [`FlowEffect`](/api/interfaces/FlowEffect.md)
164
-
165
- A function to dispose the subscription and stop receiving updates
166
-
167
- #### Inherited from
168
-
169
- [`FlowObservable`](/api/interfaces/FlowObservable.md).[`subscribe`](/api/interfaces/FlowObservable.md#subscribe)
170
-
171
- ***
172
-
173
- ### trigger()
174
-
175
- ```ts
176
- trigger(): void;
177
- ```
178
-
179
- Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
180
-
181
- Manually triggers notifications to all dependents.
182
-
183
- Forces all dependents of this observable to be notified and re-executed, even if the
184
- value hasn't actually changed. Useful for imperatively triggering updates when the
185
- reactive system cannot detect changes automatically.
186
-
187
- #### Returns
188
-
189
- `void`
190
-
191
- #### Inherited from
192
-
193
- [`FlowObservable`](/api/interfaces/FlowObservable.md).[`trigger`](/api/interfaces/FlowObservable.md#trigger)
194
-
195
- ***
196
-
197
- ### watch()
198
-
199
- ```ts
200
- watch(tracker): void;
201
- ```
202
-
203
- Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
204
-
205
- Establishes a reactive dependency without reading the value.
206
-
207
- Registers this observable as a dependency of the given tracker, allowing it to be notified
208
- when changes occur. This enables dependency tracking without accessing the actual value.
209
-
210
- #### Parameters
211
-
212
- | Parameter | Type | Description |
213
- | ------ | ------ | ------ |
214
- | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
215
-
216
- #### Returns
217
-
218
- `void`
219
-
220
- #### Inherited from
221
-
222
- [`FlowObservable`](/api/interfaces/FlowObservable.md).[`watch`](/api/interfaces/FlowObservable.md#watch)
@@ -1,292 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowWritableDerivation
2
-
3
- # Interface: FlowWritableDerivation\<T\>
4
-
5
- Defined in: [api/nodes/sync/flowWritableDerivation.ts:15](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowWritableDerivation.ts#L15)
6
-
7
- Writable reactive value that recomputes automatically when dependencies change, but can be manually overridden.
8
-
9
- Writable derivations combine reactive computation with manual control. They track dependencies and recompute
10
- like regular derivations, but you can also call `set()` to override the computed value temporarily. Use this
11
- for computed values that users can edit, such as formatted fields, calculated totals that can be adjusted,
12
- or any value that is usually derived but sometimes needs manual correction.
13
-
14
- ## Extends
15
-
16
- - [`FlowState`](/api/interfaces/FlowState.md)\<`T`\>.[`FlowDerivation`](/api/interfaces/FlowDerivation.md)\<`T`\>
17
-
18
- ## Type Parameters
19
-
20
- | Type Parameter |
21
- | ------ |
22
- | `T` |
23
-
24
- ## Accessors
25
-
26
- ### disposed
27
-
28
- #### Get Signature
29
-
30
- ```ts
31
- get disposed(): boolean;
32
- ```
33
-
34
- Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
35
-
36
- Indicates whether this resource has been disposed.
37
-
38
- Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
39
- the resource is no longer usable and any operations on it will throw errors.
40
-
41
- ##### Returns
42
-
43
- `boolean`
44
-
45
- #### Inherited from
46
-
47
- [`FlowState`](/api/interfaces/FlowState.md).[`disposed`](/api/interfaces/FlowState.md#disposed)
48
-
49
- ## Methods
50
-
51
- ### dispose()
52
-
53
- ```ts
54
- dispose(): void;
55
- ```
56
-
57
- Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
58
-
59
- Releases all resources held by this disposable object.
60
-
61
- Cleans up all subscriptions, dependencies, and internal state. After calling this method,
62
- the resource enters a disposed state and cannot be reused. Any subsequent operations will
63
- throw errors. This method should be called when you no longer need the reactive primitive
64
- to prevent memory leaks.
65
-
66
- #### Returns
67
-
68
- `void`
69
-
70
- #### Inherited from
71
-
72
- [`FlowState`](/api/interfaces/FlowState.md).[`dispose`](/api/interfaces/FlowState.md#dispose)
73
-
74
- ***
75
-
76
- ### get()
77
-
78
- ```ts
79
- get(tracker): T;
80
- ```
81
-
82
- Defined in: [api/nodes/flowValue.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L24)
83
-
84
- Gets the current value and establishes a reactive dependency.
85
-
86
- When called from within a reactive computation, this method registers the value as a dependency,
87
- ensuring the computation re-executes when the value changes. The value is computed on first access
88
- (if lazy) and then cached. For async values, throws PendingError while the value is resolving.
89
-
90
- #### Parameters
91
-
92
- | Parameter | Type | Description |
93
- | ------ | ------ | ------ |
94
- | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this value as a dependency |
95
-
96
- #### Returns
97
-
98
- `T`
99
-
100
- The current value
101
-
102
- #### Inherited from
103
-
104
- [`FlowState`](/api/interfaces/FlowState.md).[`get`](/api/interfaces/FlowState.md#get)
105
-
106
- ***
107
-
108
- ### pick()
109
-
110
- ```ts
111
- pick(): Promise<T>;
112
- ```
113
-
114
- Defined in: [api/nodes/flowValue.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L35)
115
-
116
- Asynchronously gets the current value without establishing a reactive dependency.
117
-
118
- This method reads the value non-reactively, meaning it won't trigger re-execution of the calling
119
- computation when the value changes. The value is computed on first access (if lazy) and then cached.
120
- For async values, the promise resolves once the value is available.
121
-
122
- #### Returns
123
-
124
- `Promise`\<`T`\>
125
-
126
- Promise that resolves with the current value
127
-
128
- #### Inherited from
129
-
130
- [`FlowState`](/api/interfaces/FlowState.md).[`pick`](/api/interfaces/FlowState.md#pick)
131
-
132
- ***
133
-
134
- ### refresh()
135
-
136
- ```ts
137
- refresh(): void;
138
- ```
139
-
140
- Defined in: [api/nodes/sync/flowDerivation.ts:23](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowDerivation.ts#L23)
141
-
142
- Forces the derivation to recompute even if dependencies haven't changed.
143
-
144
- #### Returns
145
-
146
- `void`
147
-
148
- #### Inherited from
149
-
150
- [`FlowDerivation`](/api/interfaces/FlowDerivation.md).[`refresh`](/api/interfaces/FlowDerivation.md#refresh)
151
-
152
- ***
153
-
154
- ### set()
155
-
156
- #### Call Signature
157
-
158
- ```ts
159
- set(value): void;
160
- ```
161
-
162
- Defined in: [api/nodes/sync/flowState.ts:25](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L25)
163
-
164
- Updates the state with a new value or via an updater function.
165
- Notifies all dependents after the update.
166
-
167
- ##### Parameters
168
-
169
- | Parameter | Type | Description |
170
- | ------ | ------ | ------ |
171
- | `value` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> | New value to set, or function that receives current value and returns new value |
172
-
173
- ##### Returns
174
-
175
- `void`
176
-
177
- ##### Inherited from
178
-
179
- [`FlowState`](/api/interfaces/FlowState.md).[`set`](/api/interfaces/FlowState.md#set)
180
-
181
- #### Call Signature
182
-
183
- ```ts
184
- set(updater): void;
185
- ```
186
-
187
- Defined in: [api/nodes/sync/flowState.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L26)
188
-
189
- ##### Parameters
190
-
191
- | Parameter | Type |
192
- | ------ | ------ |
193
- | `updater` | [`UpdateFunction`](/api/type-aliases/UpdateFunction.md)\<`T`\> |
194
-
195
- ##### Returns
196
-
197
- `void`
198
-
199
- ##### Inherited from
200
-
201
- [`FlowState`](/api/interfaces/FlowState.md).[`set`](/api/interfaces/FlowState.md#set)
202
-
203
- ***
204
-
205
- ### subscribe()
206
-
207
- ```ts
208
- subscribe(
209
- onData,
210
- onError?,
211
- onPending?): FlowEffect;
212
- ```
213
-
214
- Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
215
-
216
- Subscribes to this observable with lifecycle callbacks.
217
-
218
- Creates an active subscription that executes immediately and then re-executes whenever
219
- the observable's dependencies change. The subscription remains active until the returned
220
- disposal function is called. The `onData` callback receives the computed value, while
221
- `onError` handles errors and `onPending` signals async operations in progress.
222
-
223
- #### Parameters
224
-
225
- | Parameter | Type | Description |
226
- | ------ | ------ | ------ |
227
- | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
228
- | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
229
- | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
230
-
231
- #### Returns
232
-
233
- [`FlowEffect`](/api/interfaces/FlowEffect.md)
234
-
235
- A function to dispose the subscription and stop receiving updates
236
-
237
- #### Inherited from
238
-
239
- [`FlowState`](/api/interfaces/FlowState.md).[`subscribe`](/api/interfaces/FlowState.md#subscribe)
240
-
241
- ***
242
-
243
- ### trigger()
244
-
245
- ```ts
246
- trigger(): void;
247
- ```
248
-
249
- Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
250
-
251
- Manually triggers notifications to all dependents.
252
-
253
- Forces all dependents of this observable to be notified and re-executed, even if the
254
- value hasn't actually changed. Useful for imperatively triggering updates when the
255
- reactive system cannot detect changes automatically.
256
-
257
- #### Returns
258
-
259
- `void`
260
-
261
- #### Inherited from
262
-
263
- [`FlowState`](/api/interfaces/FlowState.md).[`trigger`](/api/interfaces/FlowState.md#trigger)
264
-
265
- ***
266
-
267
- ### watch()
268
-
269
- ```ts
270
- watch(tracker): void;
271
- ```
272
-
273
- Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
274
-
275
- Establishes a reactive dependency without reading the value.
276
-
277
- Registers this observable as a dependency of the given tracker, allowing it to be notified
278
- when changes occur. This enables dependency tracking without accessing the actual value.
279
-
280
- #### Parameters
281
-
282
- | Parameter | Type | Description |
283
- | ------ | ------ | ------ |
284
- | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
285
-
286
- #### Returns
287
-
288
- `void`
289
-
290
- #### Inherited from
291
-
292
- [`FlowState`](/api/interfaces/FlowState.md).[`watch`](/api/interfaces/FlowState.md#watch)