@ersbeth/picoflow 2.0.2 → 2.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 (244) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/SKILL.md +106 -0
  4. package/dist/picoflow.js +204 -60
  5. package/dist/types/api/base/flowObservable.d.ts +3 -3
  6. package/dist/types/api/base/flowObservable.d.ts.map +1 -1
  7. package/dist/types/api/base/flowSubscribable.d.ts +2 -2
  8. package/dist/types/api/base/flowSubscribable.d.ts.map +1 -1
  9. package/dist/types/api/base/flowTracker.d.ts +1 -1
  10. package/dist/types/api/base/flowTracker.d.ts.map +1 -1
  11. package/dist/types/api/base/index.d.ts +4 -4
  12. package/dist/types/api/base/index.d.ts.map +1 -1
  13. package/dist/types/api/index.d.ts +2 -2
  14. package/dist/types/api/index.d.ts.map +1 -1
  15. package/dist/types/api/nodes/async/flowConstantAsync.d.ts +1 -1
  16. package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -1
  17. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +3 -3
  18. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -1
  19. package/dist/types/api/nodes/async/flowStateAsync.d.ts +3 -3
  20. package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -1
  21. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +2 -2
  22. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -1
  23. package/dist/types/api/nodes/async/index.d.ts +4 -4
  24. package/dist/types/api/nodes/async/index.d.ts.map +1 -1
  25. package/dist/types/api/nodes/collections/flowArray.d.ts +7 -4
  26. package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -1
  27. package/dist/types/api/nodes/collections/flowMap.d.ts +3 -2
  28. package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -1
  29. package/dist/types/api/nodes/collections/index.d.ts +2 -2
  30. package/dist/types/api/nodes/collections/index.d.ts.map +1 -1
  31. package/dist/types/api/nodes/flowEffect.d.ts +2 -2
  32. package/dist/types/api/nodes/flowEffect.d.ts.map +1 -1
  33. package/dist/types/api/nodes/flowSignal.d.ts +1 -1
  34. package/dist/types/api/nodes/flowSignal.d.ts.map +1 -1
  35. package/dist/types/api/nodes/flowValue.d.ts +2 -2
  36. package/dist/types/api/nodes/flowValue.d.ts.map +1 -1
  37. package/dist/types/api/nodes/index.d.ts +7 -7
  38. package/dist/types/api/nodes/index.d.ts.map +1 -1
  39. package/dist/types/api/nodes/sync/flowConstant.d.ts +2 -2
  40. package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -1
  41. package/dist/types/api/nodes/sync/flowDerivation.d.ts +3 -3
  42. package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -1
  43. package/dist/types/api/nodes/sync/flowState.d.ts +3 -3
  44. package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -1
  45. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +2 -2
  46. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -1
  47. package/dist/types/api/nodes/sync/index.d.ts +4 -4
  48. package/dist/types/api/nodes/sync/index.d.ts.map +1 -1
  49. package/dist/types/api/nodes/utils.d.ts +1 -1
  50. package/dist/types/api/nodes/utils.d.ts.map +1 -1
  51. package/dist/types/base/disposable.d.ts +1 -1
  52. package/dist/types/base/disposable.d.ts.map +1 -1
  53. package/dist/types/base/executionStack.d.ts +22 -1
  54. package/dist/types/base/executionStack.d.ts.map +1 -1
  55. package/dist/types/base/index.d.ts +5 -5
  56. package/dist/types/base/index.d.ts.map +1 -1
  57. package/dist/types/base/node.d.ts +4 -4
  58. package/dist/types/base/node.d.ts.map +1 -1
  59. package/dist/types/base/observable.d.ts +3 -3
  60. package/dist/types/base/observable.d.ts.map +1 -1
  61. package/dist/types/base/observer.d.ts +2 -2
  62. package/dist/types/base/observer.d.ts.map +1 -1
  63. package/dist/types/converters/index.d.ts +1 -1
  64. package/dist/types/converters/index.d.ts.map +1 -1
  65. package/dist/types/converters/solid.d.ts +12 -8
  66. package/dist/types/converters/solid.d.ts.map +1 -1
  67. package/dist/types/index.d.ts +2 -2
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/dist/types/nodes/actionNode.d.ts +23 -0
  70. package/dist/types/nodes/actionNode.d.ts.map +1 -0
  71. package/dist/types/nodes/arrayNode.d.ts +4 -3
  72. package/dist/types/nodes/arrayNode.d.ts.map +1 -1
  73. package/dist/types/nodes/effectNode.d.ts +18 -2
  74. package/dist/types/nodes/effectNode.d.ts.map +1 -1
  75. package/dist/types/nodes/index.d.ts +8 -7
  76. package/dist/types/nodes/index.d.ts.map +1 -1
  77. package/dist/types/nodes/mapNode.d.ts +4 -3
  78. package/dist/types/nodes/mapNode.d.ts.map +1 -1
  79. package/dist/types/nodes/signalNode.d.ts +2 -2
  80. package/dist/types/nodes/signalNode.d.ts.map +1 -1
  81. package/dist/types/nodes/valueAsyncNode.d.ts +3 -3
  82. package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -1
  83. package/dist/types/nodes/valueNode.d.ts +3 -3
  84. package/dist/types/nodes/valueNode.d.ts.map +1 -1
  85. package/dist/types/nodes/valueSyncNode.d.ts +3 -3
  86. package/dist/types/nodes/valueSyncNode.d.ts.map +1 -1
  87. package/dist/types/schedulers/asyncScheduler.d.ts +2 -1
  88. package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -1
  89. package/dist/types/schedulers/index.d.ts +4 -4
  90. package/dist/types/schedulers/index.d.ts.map +1 -1
  91. package/dist/types/schedulers/syncResolver.d.ts +1 -2
  92. package/dist/types/schedulers/syncResolver.d.ts.map +1 -1
  93. package/dist/types/schedulers/syncScheduler.d.ts +1 -1
  94. package/dist/types/schedulers/syncScheduler.d.ts.map +1 -1
  95. package/package.json +24 -1
  96. package/.gitlab-ci.yml +0 -24
  97. package/.vscode/settings.json +0 -5
  98. package/CHANGELOG.md +0 -94
  99. package/biome.json +0 -47
  100. package/docs/.vitepress/config.mts +0 -145
  101. package/docs/api/functions/array.md +0 -35
  102. package/docs/api/functions/constant.md +0 -33
  103. package/docs/api/functions/constantAsync.md +0 -69
  104. package/docs/api/functions/derivation.md +0 -34
  105. package/docs/api/functions/derivationAsync.md +0 -34
  106. package/docs/api/functions/from.md +0 -129
  107. package/docs/api/functions/isDisposable.md +0 -27
  108. package/docs/api/functions/map.md +0 -36
  109. package/docs/api/functions/signal.md +0 -21
  110. package/docs/api/functions/state.md +0 -67
  111. package/docs/api/functions/stateAsync.md +0 -69
  112. package/docs/api/functions/subscribe.md +0 -40
  113. package/docs/api/functions/writableDerivation.md +0 -33
  114. package/docs/api/functions/writableDerivationAsync.md +0 -34
  115. package/docs/api/index.md +0 -61
  116. package/docs/api/interfaces/FlowArray.md +0 -439
  117. package/docs/api/interfaces/FlowConstant.md +0 -220
  118. package/docs/api/interfaces/FlowConstantAsync.md +0 -221
  119. package/docs/api/interfaces/FlowDerivation.md +0 -241
  120. package/docs/api/interfaces/FlowDerivationAsync.md +0 -242
  121. package/docs/api/interfaces/FlowDisposable.md +0 -59
  122. package/docs/api/interfaces/FlowEffect.md +0 -64
  123. package/docs/api/interfaces/FlowMap.md +0 -374
  124. package/docs/api/interfaces/FlowObservable.md +0 -155
  125. package/docs/api/interfaces/FlowSignal.md +0 -156
  126. package/docs/api/interfaces/FlowState.md +0 -269
  127. package/docs/api/interfaces/FlowStateAsync.md +0 -268
  128. package/docs/api/interfaces/FlowSubscribable.md +0 -55
  129. package/docs/api/interfaces/FlowTracker.md +0 -61
  130. package/docs/api/interfaces/FlowValue.md +0 -222
  131. package/docs/api/interfaces/FlowWritableDerivation.md +0 -292
  132. package/docs/api/interfaces/FlowWritableDerivationAsync.md +0 -293
  133. package/docs/api/type-aliases/DerivationFunction.md +0 -28
  134. package/docs/api/type-aliases/DerivationFunctionAsync.md +0 -28
  135. package/docs/api/type-aliases/FlowArrayAction.md +0 -60
  136. package/docs/api/type-aliases/FlowDataTracker.md +0 -33
  137. package/docs/api/type-aliases/FlowMapAction.md +0 -48
  138. package/docs/api/type-aliases/FlowOnDataListener.md +0 -33
  139. package/docs/api/type-aliases/FlowOnErrorListener.md +0 -27
  140. package/docs/api/type-aliases/FlowOnPendingListener.md +0 -21
  141. package/docs/api/type-aliases/FlowReadonly.md +0 -22
  142. package/docs/api/type-aliases/InitFunction.md +0 -21
  143. package/docs/api/type-aliases/InitFunctionAsync.md +0 -21
  144. package/docs/api/type-aliases/NotPromise.md +0 -21
  145. package/docs/api/type-aliases/UpdateFunction.md +0 -27
  146. package/docs/api/type-aliases/UpdateFunctionAsync.md +0 -27
  147. package/docs/api/typedoc-sidebar.json +0 -65
  148. package/docs/examples/examples.md +0 -2311
  149. package/docs/examples/patterns.md +0 -649
  150. package/docs/guide/advanced/architecture.md +0 -1234
  151. package/docs/guide/advanced/disposal.md +0 -426
  152. package/docs/guide/advanced/migration-v1.md +0 -464
  153. package/docs/guide/advanced/migration-v2.md +0 -204
  154. package/docs/guide/advanced/solidjs.md +0 -135
  155. package/docs/guide/introduction/concepts.md +0 -57
  156. package/docs/guide/introduction/conventions.md +0 -30
  157. package/docs/guide/introduction/getting-started.md +0 -139
  158. package/docs/guide/introduction/lifecycle.md +0 -368
  159. package/docs/guide/primitives/array.md +0 -286
  160. package/docs/guide/primitives/constant.md +0 -207
  161. package/docs/guide/primitives/derivations.md +0 -281
  162. package/docs/guide/primitives/effects.md +0 -372
  163. package/docs/guide/primitives/map.md +0 -265
  164. package/docs/guide/primitives/overview.md +0 -92
  165. package/docs/guide/primitives/signal.md +0 -222
  166. package/docs/guide/primitives/state.md +0 -272
  167. package/docs/index.md +0 -47
  168. package/docs/public/logo.svg +0 -1
  169. package/src/api/base/flowDisposable.ts +0 -44
  170. package/src/api/base/flowObservable.ts +0 -28
  171. package/src/api/base/flowSubscribable.ts +0 -87
  172. package/src/api/base/flowTracker.ts +0 -7
  173. package/src/api/base/index.ts +0 -4
  174. package/src/api/index.ts +0 -2
  175. package/src/api/nodes/async/flowConstantAsync.ts +0 -36
  176. package/src/api/nodes/async/flowDerivationAsync.ts +0 -42
  177. package/src/api/nodes/async/flowStateAsync.ts +0 -47
  178. package/src/api/nodes/async/flowWritableDerivationAsync.ts +0 -33
  179. package/src/api/nodes/async/index.ts +0 -4
  180. package/src/api/nodes/collections/flowArray.ts +0 -155
  181. package/src/api/nodes/collections/flowMap.ts +0 -115
  182. package/src/api/nodes/collections/index.ts +0 -2
  183. package/src/api/nodes/flowEffect.ts +0 -42
  184. package/src/api/nodes/flowSignal.ts +0 -28
  185. package/src/api/nodes/flowValue.ts +0 -37
  186. package/src/api/nodes/index.ts +0 -7
  187. package/src/api/nodes/sync/flowConstant.ts +0 -33
  188. package/src/api/nodes/sync/flowDerivation.ts +0 -41
  189. package/src/api/nodes/sync/flowState.ts +0 -45
  190. package/src/api/nodes/sync/flowWritableDerivation.ts +0 -31
  191. package/src/api/nodes/sync/index.ts +0 -4
  192. package/src/api/nodes/utils.ts +0 -24
  193. package/src/base/disposable.ts +0 -18
  194. package/src/base/executionStack.ts +0 -42
  195. package/src/base/index.ts +0 -5
  196. package/src/base/node.ts +0 -98
  197. package/src/base/observable.ts +0 -92
  198. package/src/base/observer.ts +0 -51
  199. package/src/converters/index.ts +0 -1
  200. package/src/converters/solid.ts +0 -109
  201. package/src/index.ts +0 -2
  202. package/src/nodes/arrayNode.ts +0 -180
  203. package/src/nodes/effectNode.ts +0 -58
  204. package/src/nodes/index.ts +0 -7
  205. package/src/nodes/mapNode.ts +0 -125
  206. package/src/nodes/signalNode.ts +0 -19
  207. package/src/nodes/valueAsyncNode.ts +0 -85
  208. package/src/nodes/valueNode.ts +0 -148
  209. package/src/nodes/valueSyncNode.ts +0 -125
  210. package/src/schedulers/asyncResolver.ts +0 -78
  211. package/src/schedulers/asyncScheduler.ts +0 -66
  212. package/src/schedulers/index.ts +0 -4
  213. package/src/schedulers/pendingError.ts +0 -13
  214. package/src/schedulers/scheduler.ts +0 -9
  215. package/src/schedulers/syncResolver.ts +0 -69
  216. package/src/schedulers/syncScheduler.ts +0 -55
  217. package/test/base/pendingError.test.ts +0 -67
  218. package/test/converters/solid.derivation.browser.test.tsx +0 -69
  219. package/test/converters/solid.node.test.ts +0 -654
  220. package/test/converters/solid.state.browser.test.tsx +0 -1592
  221. package/test/reactivity/flowSignal.test.ts +0 -226
  222. package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +0 -593
  223. package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +0 -317
  224. package/test/reactivity/nodes/async/flowConstantAsync.test.ts +0 -652
  225. package/test/reactivity/nodes/async/flowDerivation.test.ts +0 -898
  226. package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +0 -1716
  227. package/test/reactivity/nodes/async/flowStateAsync.test.ts +0 -708
  228. package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +0 -614
  229. package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +0 -1289
  230. package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +0 -961
  231. package/test/reactivity/nodes/collections/flowArray.states.test.ts +0 -1035
  232. package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +0 -960
  233. package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +0 -775
  234. package/test/reactivity/nodes/collections/flowMap.states.test.ts +0 -958
  235. package/test/reactivity/nodes/sync/flowConstant.test.ts +0 -377
  236. package/test/reactivity/nodes/sync/flowDerivation.test.ts +0 -896
  237. package/test/reactivity/nodes/sync/flowState.test.ts +0 -341
  238. package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +0 -603
  239. package/test/vitest.d.ts +0 -10
  240. package/tsconfig.json +0 -37
  241. package/typedoc.json +0 -37
  242. package/vite.config.ts +0 -31
  243. package/vitest.browser.config.ts +0 -21
  244. package/vitest.config.ts +0 -17
@@ -1,69 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / stateAsync
2
-
3
- # Function: stateAsync()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function stateAsync<T>(value): FlowStateAsync<T>;
9
- ```
10
-
11
- Defined in: [api/nodes/async/flowStateAsync.ts:43](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L43)
12
-
13
- Creates a mutable async reactive state that resolves promises and can be updated imperatively.
14
-
15
- State can be initialized with a direct promise or a lazy async initializer function. Update the state by
16
- calling `set()` with a new promise or an async updater function. Changes propagate automatically to all
17
- reactive computations that depend on this state. Use for async data that changes through user actions or
18
- application logic, such as loading user profiles, fetching search results, or any async state updates.
19
-
20
- ### Type Parameters
21
-
22
- | Type Parameter |
23
- | ------ |
24
- | `T` |
25
-
26
- ### Parameters
27
-
28
- | Parameter | Type | Description |
29
- | ------ | ------ | ------ |
30
- | `value` | `Promise`\<`T`\> | Initial promise to resolve, or lazy async initializer function |
31
-
32
- ### Returns
33
-
34
- [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)\<`T`\>
35
-
36
- A FlowStateAsync that can be read and modified with promises
37
-
38
- ## Call Signature
39
-
40
- ```ts
41
- function stateAsync<T>(initializer): FlowStateAsync<T>;
42
- ```
43
-
44
- Defined in: [api/nodes/async/flowStateAsync.ts:44](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L44)
45
-
46
- Creates a mutable async reactive state that resolves promises and can be updated imperatively.
47
-
48
- State can be initialized with a direct promise or a lazy async initializer function. Update the state by
49
- calling `set()` with a new promise or an async updater function. Changes propagate automatically to all
50
- reactive computations that depend on this state. Use for async data that changes through user actions or
51
- application logic, such as loading user profiles, fetching search results, or any async state updates.
52
-
53
- ### Type Parameters
54
-
55
- | Type Parameter |
56
- | ------ |
57
- | `T` |
58
-
59
- ### Parameters
60
-
61
- | Parameter | Type |
62
- | ------ | ------ |
63
- | `initializer` | [`InitFunctionAsync`](/api/type-aliases/InitFunctionAsync.md)\<`T`\> |
64
-
65
- ### Returns
66
-
67
- [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)\<`T`\>
68
-
69
- A FlowStateAsync that can be read and modified with promises
@@ -1,40 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / subscribe
2
-
3
- # Function: subscribe()
4
-
5
- ```ts
6
- function subscribe<T>(
7
- data,
8
- onData,
9
- onError?,
10
- onPending?): FlowEffect;
11
- ```
12
-
13
- Defined in: [api/nodes/flowEffect.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowEffect.ts#L35)
14
-
15
- Creates a reactive effect that runs immediately and automatically re-runs when dependencies change.
16
-
17
- The effect function tracks any reactive values accessed and subscribes to their changes.
18
- When any tracked value changes, the effect re-executes with the new values.
19
- Optional callbacks handle errors and pending async states.
20
-
21
- ## Type Parameters
22
-
23
- | Type Parameter |
24
- | ------ |
25
- | `T` |
26
-
27
- ## Parameters
28
-
29
- | Parameter | Type | Description |
30
- | ------ | ------ | ------ |
31
- | `data` | [`FlowDataTracker`](/api/type-aliases/FlowDataTracker.md)\<`T`\> | Function that accesses reactive dependencies and returns data |
32
- | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
33
- | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
34
- | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
35
-
36
- ## Returns
37
-
38
- [`FlowEffect`](/api/interfaces/FlowEffect.md)
39
-
40
- A FlowEffect handle with a `dispose()` method to stop the effect
@@ -1,33 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / writableDerivation
2
-
3
- # Function: writableDerivation()
4
-
5
- ```ts
6
- function writableDerivation<T>(compute): FlowWritableDerivation<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/sync/flowWritableDerivation.ts:29](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowWritableDerivation.ts#L29)
10
-
11
- Creates a derived value that recomputes automatically but can also be manually overridden.
12
-
13
- The compute function tracks dependencies and recomputes when they change, just like a regular derivation.
14
- However, you can also call `set()` to override the computed value. Use this for values that are normally
15
- derived but need occasional manual adjustments, such as editable calculated fields or user-correctable totals.
16
-
17
- ## Type Parameters
18
-
19
- | Type Parameter |
20
- | ------ |
21
- | `T` |
22
-
23
- ## Parameters
24
-
25
- | Parameter | Type | Description |
26
- | ------ | ------ | ------ |
27
- | `compute` | [`DerivationFunction`](/api/type-aliases/DerivationFunction.md)\<`T`\> | Function that accesses dependencies and computes the derived value |
28
-
29
- ## Returns
30
-
31
- [`FlowWritableDerivation`](/api/interfaces/FlowWritableDerivation.md)\<`T`\>
32
-
33
- A FlowWritableDerivation that provides both reactive computation and manual control
@@ -1,34 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / writableDerivationAsync
2
-
3
- # Function: writableDerivationAsync()
4
-
5
- ```ts
6
- function writableDerivationAsync<T>(compute): FlowWritableDerivationAsync<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/async/flowWritableDerivationAsync.ts:31](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowWritableDerivationAsync.ts#L31)
10
-
11
- Creates an async derived value that recomputes automatically but can also be manually overridden.
12
-
13
- The async compute function tracks dependencies and returns a promise. When any tracked dependency changes,
14
- the function runs again and returns a new promise. However, you can also call `set()` to override the computed
15
- value with a new promise. Use for async values that are normally derived but need occasional manual adjustments,
16
- such as editable async calculated fields or user-correctable async totals.
17
-
18
- ## Type Parameters
19
-
20
- | Type Parameter |
21
- | ------ |
22
- | `T` |
23
-
24
- ## Parameters
25
-
26
- | Parameter | Type | Description |
27
- | ------ | ------ | ------ |
28
- | `compute` | [`DerivationFunctionAsync`](/api/type-aliases/DerivationFunctionAsync.md)\<`T`\> | Async function that accesses dependencies and returns a promise of the derived value |
29
-
30
- ## Returns
31
-
32
- [`FlowWritableDerivationAsync`](/api/interfaces/FlowWritableDerivationAsync.md)\<`T`\>
33
-
34
- A FlowWritableDerivationAsync that provides both reactive async computation and manual control
package/docs/api/index.md DELETED
@@ -1,61 +0,0 @@
1
- # @ersbeth/picoflow
2
-
3
- ## Interfaces
4
-
5
- | Interface | Description |
6
- | ------ | ------ |
7
- | [FlowArray](/api/interfaces/FlowArray.md) | Reactive array with standard mutation methods and fine-grained change tracking. |
8
- | [FlowConstant](/api/interfaces/FlowConstant.md) | Read-only reactive value that computes once on initialization and never changes. |
9
- | [FlowConstantAsync](/api/interfaces/FlowConstantAsync.md) | Read-only reactive value that resolves once from a promise or async initializer. |
10
- | [FlowDerivation](/api/interfaces/FlowDerivation.md) | Read-only reactive value that recomputes automatically when dependencies change. |
11
- | [FlowDerivationAsync](/api/interfaces/FlowDerivationAsync.md) | Read-only reactive value that recomputes asynchronously when dependencies change. |
12
- | [FlowDisposable](/api/interfaces/FlowDisposable.md) | Contract for resources that can be explicitly released to prevent memory leaks. |
13
- | [FlowEffect](/api/interfaces/FlowEffect.md) | Handle to a reactive effect that automatically tracks dependencies and re-executes when they change. |
14
- | [FlowMap](/api/interfaces/FlowMap.md) | Reactive map with standard mutation methods and fine-grained change tracking. |
15
- | [FlowObservable](/api/interfaces/FlowObservable.md) | Contract for reactive primitives that emit changes and notify their dependents in the reactivity graph. |
16
- | [FlowSignal](/api/interfaces/FlowSignal.md) | Manual trigger that notifies subscribers without carrying data. |
17
- | [FlowState](/api/interfaces/FlowState.md) | Writable reactive value that can be updated manually and notifies dependents on changes. |
18
- | [FlowStateAsync](/api/interfaces/FlowStateAsync.md) | Writable reactive value that resolves promises and can be updated with new promises. |
19
- | [FlowSubscribable](/api/interfaces/FlowSubscribable.md) | Contract for observables that can be subscribed to with lifecycle callbacks. |
20
- | [FlowTracker](/api/interfaces/FlowTracker.md) | Contract for reactive computations that track dependencies and react to changes in the reactivity graph. |
21
- | [FlowValue](/api/interfaces/FlowValue.md) | Base interface for reactive values that can be read synchronously or asynchronously. |
22
- | [FlowWritableDerivation](/api/interfaces/FlowWritableDerivation.md) | Writable reactive value that recomputes automatically when dependencies change, but can be manually overridden. |
23
- | [FlowWritableDerivationAsync](/api/interfaces/FlowWritableDerivationAsync.md) | Writable reactive value that recomputes asynchronously when dependencies change, but can be manually overridden. |
24
-
25
- ## Type Aliases
26
-
27
- | Type Alias | Description |
28
- | ------ | ------ |
29
- | [DerivationFunction](/api/type-aliases/DerivationFunction.md) | Function that derives a value from dependencies and optionally the previous value. |
30
- | [DerivationFunctionAsync](/api/type-aliases/DerivationFunctionAsync.md) | Function that derives a value asynchronously from dependencies and optionally the previous value. |
31
- | [FlowArrayAction](/api/type-aliases/FlowArrayAction.md) | Discriminated union representing all possible array mutation operations. |
32
- | [FlowDataTracker](/api/type-aliases/FlowDataTracker.md) | Function that tracks reactive dependencies and returns data. |
33
- | [FlowMapAction](/api/type-aliases/FlowMapAction.md) | Discriminated union representing all possible map mutation operations. |
34
- | [FlowOnDataListener](/api/type-aliases/FlowOnDataListener.md) | Callback invoked when new data is available. |
35
- | [FlowOnErrorListener](/api/type-aliases/FlowOnErrorListener.md) | Callback invoked when an error occurs during effect execution. |
36
- | [FlowOnPendingListener](/api/type-aliases/FlowOnPendingListener.md) | Callback invoked when an async computation is pending. |
37
- | [FlowReadonly](/api/type-aliases/FlowReadonly.md) | Type that restricts mutation methods to create read-only versions of reactive primitives. |
38
- | [InitFunction](/api/type-aliases/InitFunction.md) | Function that initializes a value. |
39
- | [InitFunctionAsync](/api/type-aliases/InitFunctionAsync.md) | Function that initializes a value asynchronously. |
40
- | [NotPromise](/api/type-aliases/NotPromise.md) | Type that excludes Promise values from a type union. |
41
- | [UpdateFunction](/api/type-aliases/UpdateFunction.md) | Function that updates a value based on the previous value. |
42
- | [UpdateFunctionAsync](/api/type-aliases/UpdateFunctionAsync.md) | Function that updates a value asynchronously based on the previous value. |
43
-
44
- ## Functions
45
-
46
- | Function | Description |
47
- | ------ | ------ |
48
- | [array](/api/functions/array.md) | Creates a reactive array with mutation methods and fine-grained action tracking. |
49
- | [constant](/api/functions/constant.md) | Creates a constant reactive value that initializes lazily and never recomputes. |
50
- | [constantAsync](/api/functions/constantAsync.md) | Creates a constant reactive value from a promise or async initializer that resolves once and never recomputes. |
51
- | [derivation](/api/functions/derivation.md) | Creates a derived reactive value that automatically recomputes when dependencies change. |
52
- | [derivationAsync](/api/functions/derivationAsync.md) | Creates an async derived value that automatically recomputes when dependencies change. |
53
- | [from](/api/functions/from.md) | Converts a PicoFlow observable or getter function into a SolidJS resource. |
54
- | [isDisposable](/api/functions/isDisposable.md) | Type guard to check if an object implements the FlowDisposable interface. |
55
- | [map](/api/functions/map.md) | Creates a reactive map with mutation methods and fine-grained action tracking. |
56
- | [signal](/api/functions/signal.md) | Creates a signal that can be manually triggered to notify dependents. |
57
- | [state](/api/functions/state.md) | Creates a mutable reactive state that can be read and updated imperatively. |
58
- | [stateAsync](/api/functions/stateAsync.md) | Creates a mutable async reactive state that resolves promises and can be updated imperatively. |
59
- | [subscribe](/api/functions/subscribe.md) | Creates a reactive effect that runs immediately and automatically re-runs when dependencies change. |
60
- | [writableDerivation](/api/functions/writableDerivation.md) | Creates a derived value that recomputes automatically but can also be manually overridden. |
61
- | [writableDerivationAsync](/api/functions/writableDerivationAsync.md) | Creates an async derived value that recomputes automatically but can also be manually overridden. |
@@ -1,439 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowArray
2
-
3
- # Interface: FlowArray\<T\>
4
-
5
- Defined in: [api/nodes/collections/flowArray.ts:65](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L65)
6
-
7
- Reactive array with standard mutation methods and fine-grained change tracking.
8
-
9
- FlowArray behaves like a regular array but notifies dependents on mutations. It provides all standard
10
- array mutation methods (push, pop, splice, etc.) and tracks each operation via the `$lastAction` signal.
11
- This enables both coarse-grained reactivity (reacting to any change) and fine-grained reactivity (reacting
12
- only to specific mutations). Use for lists that need reactive updates, such as todo lists, data tables,
13
- or any collection that changes over time.
14
-
15
- ## Extends
16
-
17
- - [`FlowState`](/api/interfaces/FlowState.md)\<`T`[]\>
18
-
19
- ## Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `T` |
24
-
25
- ## Properties
26
-
27
- | Property | Type | Description | Defined in |
28
- | ------ | ------ | ------ | ------ |
29
- | <a id="lastaction"></a> `$lastAction` | [`FlowState`](/api/interfaces/FlowState.md)\<[`FlowArrayAction`](/api/type-aliases/FlowArrayAction.md)\<`T`\>\> | Reactive state containing the last mutation operation performed on the array. Subscribe to this for fine-grained reactivity to specific mutation types. | [api/nodes/collections/flowArray.ts:136](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L136) |
30
- | <a id="length"></a> `length` | `number` | The current length of the array. | [api/nodes/collections/flowArray.ts:130](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L130) |
31
-
32
- ## Accessors
33
-
34
- ### disposed
35
-
36
- #### Get Signature
37
-
38
- ```ts
39
- get disposed(): boolean;
40
- ```
41
-
42
- Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
43
-
44
- Indicates whether this resource has been disposed.
45
-
46
- Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
47
- the resource is no longer usable and any operations on it will throw errors.
48
-
49
- ##### Returns
50
-
51
- `boolean`
52
-
53
- #### Inherited from
54
-
55
- [`FlowState`](/api/interfaces/FlowState.md).[`disposed`](/api/interfaces/FlowState.md#disposed)
56
-
57
- ## Methods
58
-
59
- ### clear()
60
-
61
- ```ts
62
- clear(): T[];
63
- ```
64
-
65
- Defined in: [api/nodes/collections/flowArray.ts:125](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L125)
66
-
67
- Removes all items from the array.
68
- Emits a "clear" action to $lastAction.
69
-
70
- #### Returns
71
-
72
- `T`[]
73
-
74
- Array of all removed items
75
-
76
- ***
77
-
78
- ### dispose()
79
-
80
- ```ts
81
- dispose(): void;
82
- ```
83
-
84
- Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
85
-
86
- Releases all resources held by this disposable object.
87
-
88
- Cleans up all subscriptions, dependencies, and internal state. After calling this method,
89
- the resource enters a disposed state and cannot be reused. Any subsequent operations will
90
- throw errors. This method should be called when you no longer need the reactive primitive
91
- to prevent memory leaks.
92
-
93
- #### Returns
94
-
95
- `void`
96
-
97
- #### Inherited from
98
-
99
- [`FlowState`](/api/interfaces/FlowState.md).[`dispose`](/api/interfaces/FlowState.md#dispose)
100
-
101
- ***
102
-
103
- ### get()
104
-
105
- ```ts
106
- get(tracker): T[];
107
- ```
108
-
109
- Defined in: [api/nodes/flowValue.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L24)
110
-
111
- Gets the current value and establishes a reactive dependency.
112
-
113
- When called from within a reactive computation, this method registers the value as a dependency,
114
- ensuring the computation re-executes when the value changes. The value is computed on first access
115
- (if lazy) and then cached. For async values, throws PendingError while the value is resolving.
116
-
117
- #### Parameters
118
-
119
- | Parameter | Type | Description |
120
- | ------ | ------ | ------ |
121
- | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this value as a dependency |
122
-
123
- #### Returns
124
-
125
- `T`[]
126
-
127
- The current value
128
-
129
- #### Inherited from
130
-
131
- [`FlowState`](/api/interfaces/FlowState.md).[`get`](/api/interfaces/FlowState.md#get)
132
-
133
- ***
134
-
135
- ### pick()
136
-
137
- ```ts
138
- pick(): Promise<T[]>;
139
- ```
140
-
141
- Defined in: [api/nodes/flowValue.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L35)
142
-
143
- Asynchronously gets the current value without establishing a reactive dependency.
144
-
145
- This method reads the value non-reactively, meaning it won't trigger re-execution of the calling
146
- computation when the value changes. The value is computed on first access (if lazy) and then cached.
147
- For async values, the promise resolves once the value is available.
148
-
149
- #### Returns
150
-
151
- `Promise`\<`T`[]\>
152
-
153
- Promise that resolves with the current value
154
-
155
- #### Inherited from
156
-
157
- [`FlowState`](/api/interfaces/FlowState.md).[`pick`](/api/interfaces/FlowState.md#pick)
158
-
159
- ***
160
-
161
- ### pop()
162
-
163
- ```ts
164
- pop(): T | undefined;
165
- ```
166
-
167
- Defined in: [api/nodes/collections/flowArray.ts:90](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L90)
168
-
169
- Removes and returns the last item from the array.
170
- Emits a "pop" action to $lastAction.
171
-
172
- #### Returns
173
-
174
- `T` \| `undefined`
175
-
176
- The removed item, or undefined if the array was empty
177
-
178
- ***
179
-
180
- ### push()
181
-
182
- ```ts
183
- push(item): void;
184
- ```
185
-
186
- Defined in: [api/nodes/collections/flowArray.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L82)
187
-
188
- Appends an item to the end of the array.
189
- Emits a "push" action to $lastAction.
190
-
191
- #### Parameters
192
-
193
- | Parameter | Type | Description |
194
- | ------ | ------ | ------ |
195
- | `item` | `T` | The item to append |
196
-
197
- #### Returns
198
-
199
- `void`
200
-
201
- ***
202
-
203
- ### set()
204
-
205
- #### Call Signature
206
-
207
- ```ts
208
- set(value): void;
209
- ```
210
-
211
- Defined in: [api/nodes/sync/flowState.ts:25](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L25)
212
-
213
- Updates the state with a new value or via an updater function.
214
- Notifies all dependents after the update.
215
-
216
- ##### Parameters
217
-
218
- | Parameter | Type | Description |
219
- | ------ | ------ | ------ |
220
- | `value` | `T`[] | New value to set, or function that receives current value and returns new value |
221
-
222
- ##### Returns
223
-
224
- `void`
225
-
226
- ##### Inherited from
227
-
228
- [`FlowState`](/api/interfaces/FlowState.md).[`set`](/api/interfaces/FlowState.md#set)
229
-
230
- #### Call Signature
231
-
232
- ```ts
233
- set(updater): void;
234
- ```
235
-
236
- Defined in: [api/nodes/sync/flowState.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L26)
237
-
238
- ##### Parameters
239
-
240
- | Parameter | Type |
241
- | ------ | ------ |
242
- | `updater` | [`UpdateFunction`](/api/type-aliases/UpdateFunction.md)\<`T`[]\> |
243
-
244
- ##### Returns
245
-
246
- `void`
247
-
248
- ##### Inherited from
249
-
250
- [`FlowState`](/api/interfaces/FlowState.md).[`set`](/api/interfaces/FlowState.md#set)
251
-
252
- ***
253
-
254
- ### shift()
255
-
256
- ```ts
257
- shift(): T | undefined;
258
- ```
259
-
260
- Defined in: [api/nodes/collections/flowArray.ts:106](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L106)
261
-
262
- Removes and returns the first item from the array.
263
- Emits a "shift" action to $lastAction.
264
-
265
- #### Returns
266
-
267
- `T` \| `undefined`
268
-
269
- The removed item, or undefined if the array was empty
270
-
271
- ***
272
-
273
- ### splice()
274
-
275
- ```ts
276
- splice(
277
- start,
278
- deleteCount, ...
279
- newItems): T[];
280
- ```
281
-
282
- Defined in: [api/nodes/collections/flowArray.ts:117](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L117)
283
-
284
- Changes the content of the array by removing, replacing, or adding items.
285
- Emits a "splice" action to $lastAction.
286
-
287
- #### Parameters
288
-
289
- | Parameter | Type | Description |
290
- | ------ | ------ | ------ |
291
- | `start` | `number` | The starting index |
292
- | `deleteCount` | `number` | Number of items to remove |
293
- | ...`newItems` | `T`[] | New items to add at the start position |
294
-
295
- #### Returns
296
-
297
- `T`[]
298
-
299
- Array of removed items
300
-
301
- ***
302
-
303
- ### subscribe()
304
-
305
- ```ts
306
- subscribe(
307
- onData,
308
- onError?,
309
- onPending?): FlowEffect;
310
- ```
311
-
312
- Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
313
-
314
- Subscribes to this observable with lifecycle callbacks.
315
-
316
- Creates an active subscription that executes immediately and then re-executes whenever
317
- the observable's dependencies change. The subscription remains active until the returned
318
- disposal function is called. The `onData` callback receives the computed value, while
319
- `onError` handles errors and `onPending` signals async operations in progress.
320
-
321
- #### Parameters
322
-
323
- | Parameter | Type | Description |
324
- | ------ | ------ | ------ |
325
- | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`[]\> | Callback invoked with the computed data on each execution |
326
- | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
327
- | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
328
-
329
- #### Returns
330
-
331
- [`FlowEffect`](/api/interfaces/FlowEffect.md)
332
-
333
- A function to dispose the subscription and stop receiving updates
334
-
335
- #### Inherited from
336
-
337
- [`FlowState`](/api/interfaces/FlowState.md).[`subscribe`](/api/interfaces/FlowState.md#subscribe)
338
-
339
- ***
340
-
341
- ### trigger()
342
-
343
- ```ts
344
- trigger(): void;
345
- ```
346
-
347
- Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
348
-
349
- Manually triggers notifications to all dependents.
350
-
351
- Forces all dependents of this observable to be notified and re-executed, even if the
352
- value hasn't actually changed. Useful for imperatively triggering updates when the
353
- reactive system cannot detect changes automatically.
354
-
355
- #### Returns
356
-
357
- `void`
358
-
359
- #### Inherited from
360
-
361
- [`FlowState`](/api/interfaces/FlowState.md).[`trigger`](/api/interfaces/FlowState.md#trigger)
362
-
363
- ***
364
-
365
- ### unshift()
366
-
367
- ```ts
368
- unshift(item): void;
369
- ```
370
-
371
- Defined in: [api/nodes/collections/flowArray.ts:98](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L98)
372
-
373
- Inserts an item at the beginning of the array.
374
- Emits an "unshift" action to $lastAction.
375
-
376
- #### Parameters
377
-
378
- | Parameter | Type | Description |
379
- | ------ | ------ | ------ |
380
- | `item` | `T` | The item to insert |
381
-
382
- #### Returns
383
-
384
- `void`
385
-
386
- ***
387
-
388
- ### update()
389
-
390
- ```ts
391
- update(index, item): T | undefined;
392
- ```
393
-
394
- Defined in: [api/nodes/collections/flowArray.ts:74](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L74)
395
-
396
- Replaces an item at a specific index.
397
- Emits an "update" action to $lastAction.
398
-
399
- #### Parameters
400
-
401
- | Parameter | Type | Description |
402
- | ------ | ------ | ------ |
403
- | `index` | `number` | The index of the item to replace |
404
- | `item` | `T` | The new item |
405
-
406
- #### Returns
407
-
408
- `T` \| `undefined`
409
-
410
- The previous item at that index
411
-
412
- ***
413
-
414
- ### watch()
415
-
416
- ```ts
417
- watch(tracker): void;
418
- ```
419
-
420
- Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
421
-
422
- Establishes a reactive dependency without reading the value.
423
-
424
- Registers this observable as a dependency of the given tracker, allowing it to be notified
425
- when changes occur. This enables dependency tracking without accessing the actual value.
426
-
427
- #### Parameters
428
-
429
- | Parameter | Type | Description |
430
- | ------ | ------ | ------ |
431
- | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
432
-
433
- #### Returns
434
-
435
- `void`
436
-
437
- #### Inherited from
438
-
439
- [`FlowState`](/api/interfaces/FlowState.md).[`watch`](/api/interfaces/FlowState.md#watch)