@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,145 +0,0 @@
1
- import { defineConfig } from "vitepress";
2
- import { withMermaid } from "vitepress-plugin-mermaid";
3
- import typedocSidebar from "../api/typedoc-sidebar.json";
4
-
5
- export default withMermaid(
6
- defineConfig({
7
- title: "PicoFlow",
8
- description: "Lightweight reactive dataflow library for TypeScript",
9
- base: "/picoflow/",
10
-
11
- mermaid: {},
12
-
13
- head: [["link", { rel: "icon", type: "image/svg+xml", href: "/logo.svg" }]],
14
-
15
- themeConfig: {
16
- logo: "/logo.svg",
17
-
18
- nav: [
19
- { text: "Guide", link: "/guide/introduction/getting-started" },
20
- // { text: "Examples", link: "/examples/patterns" },
21
- { text: "API Reference", link: "/api/" },
22
- ],
23
-
24
- sidebar: {
25
- "/guide/": [
26
- {
27
- text: "Introduction",
28
- items: [
29
- {
30
- text: "Getting Started",
31
- link: "/guide/introduction/getting-started",
32
- },
33
- {
34
- text: "Conventions",
35
- link: "/guide/introduction/conventions",
36
- },
37
- {
38
- text: "Concepts",
39
- link: "/guide/introduction/concepts",
40
- },
41
- ],
42
- },
43
- {
44
- text: "Primitives",
45
- items: [
46
- {
47
- text: "Overview",
48
- link: "/guide/primitives/overview",
49
- },
50
- {
51
- text: "Signals",
52
- link: "/guide/primitives/signal",
53
- },
54
- { text: "Constants", link: "/guide/primitives/constant" },
55
-
56
- { text: "States", link: "/guide/primitives/state" },
57
- {
58
- text: "Derivations",
59
- link: "/guide/primitives/derivations",
60
- },
61
- { text: "Maps", link: "/guide/primitives/map" },
62
- { text: "Arrays", link: "/guide/primitives/array" },
63
- {
64
- text: "Side Effects",
65
- link: "/guide/primitives/effects",
66
- },
67
- ],
68
- },
69
- {
70
- text: "Advanced",
71
- items: [
72
- {
73
- text: "Use with SolidJS",
74
- link: "/guide/advanced/solidjs",
75
- },
76
- {
77
- text: "Upgrade to v2",
78
- link: "/guide/advanced/migration-v2",
79
- },
80
- {
81
- text: "Upgrade to v1",
82
- link: "/guide/advanced/migration-v1",
83
- },
84
- // {
85
- // text: "Lifecycle",
86
- // link: "/guide/introduction/lifecycle",
87
- // },
88
- // {
89
- // text: "Disposal",
90
- // link: "/guide/advanced/disposal",
91
- // },
92
- // {
93
- // text: "Architecture",
94
- // link: "/guide/advanced/architecture",
95
- // },
96
- ],
97
- },
98
- ],
99
-
100
- // "/examples/": [
101
- // {
102
- // text: "Examples",
103
- // items: [
104
- // {
105
- // text: "Common Patterns",
106
- // link: "/examples/patterns",
107
- // },
108
- // {
109
- // text: "Code Examples",
110
- // link: "/examples/examples",
111
- // },
112
- // ],
113
- // },
114
- // ],
115
-
116
- "/api/": [
117
- {
118
- text: "API Reference",
119
- items: typedocSidebar,
120
- },
121
- ],
122
- },
123
-
124
- socialLinks: [
125
- {
126
- icon: "gitlab",
127
- link: "https://gitlab.com/ersbeth-web/picoflow",
128
- },
129
- ],
130
-
131
- search: {
132
- provider: "local",
133
- },
134
-
135
- editLink: {
136
- pattern: "https://gitlab.com/ersbeth-web/picoflow/-/edit/main/docs/:path",
137
- text: "Edit this page on GitLab",
138
- },
139
-
140
- footer: {
141
- copyright: "Copyright ©2025 <a href='https://gitlab.com/ersbeth/'>Ersbeth</a>",
142
- },
143
- },
144
- }),
145
- );
@@ -1,35 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / array
2
-
3
- # Function: array()
4
-
5
- ```ts
6
- function array<T>(initial?): FlowArray<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/collections/flowArray.ts:153](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L153)
10
-
11
- Creates a reactive array with mutation methods and fine-grained action tracking.
12
-
13
- The array starts with the provided initial items (or empty if none provided). All mutation methods
14
- (push, pop, splice, etc.) notify dependents and emit detailed action information to `$lastAction`.
15
- Use the array itself for coarse-grained reactivity, or subscribe to `$lastAction` for fine-grained
16
- reactivity to specific mutation types. Useful for reactive lists, collections, or any data that
17
- needs array-like operations with automatic change propagation.
18
-
19
- ## Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `T` |
24
-
25
- ## Parameters
26
-
27
- | Parameter | Type | Description |
28
- | ------ | ------ | ------ |
29
- | `initial?` | `T`[] | Optional initial array of items |
30
-
31
- ## Returns
32
-
33
- [`FlowArray`](/api/interfaces/FlowArray.md)\<`T`\>
34
-
35
- A FlowArray with reactive mutation methods
@@ -1,33 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / constant
2
-
3
- # Function: constant()
4
-
5
- ```ts
6
- function constant<T>(initializer): FlowConstant<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/sync/flowConstant.ts:31](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowConstant.ts#L31)
10
-
11
- Creates a constant reactive value that initializes lazily and never recomputes.
12
-
13
- The initializer function runs once on first access, and the result is cached permanently.
14
- Unlike state or derivations, constants never react to changes - they represent immutable values
15
- in the reactive graph. Useful for expensive one-time computations or static configuration.
16
-
17
- ## Type Parameters
18
-
19
- | Type Parameter |
20
- | ------ |
21
- | `T` |
22
-
23
- ## Parameters
24
-
25
- | Parameter | Type | Description |
26
- | ------ | ------ | ------ |
27
- | `initializer` | [`InitFunction`](/api/type-aliases/InitFunction.md)\<`T`\> | Function that computes the constant value on first access |
28
-
29
- ## Returns
30
-
31
- [`FlowConstant`](/api/interfaces/FlowConstant.md)\<`T`\>
32
-
33
- A FlowConstant that provides read-only access to the cached value
@@ -1,69 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / constantAsync
2
-
3
- # Function: constantAsync()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function constantAsync<T>(value): FlowConstantAsync<T>;
9
- ```
10
-
11
- Defined in: [api/nodes/async/flowConstantAsync.ts:32](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowConstantAsync.ts#L32)
12
-
13
- Creates a constant reactive value from a promise or async initializer that resolves once and never recomputes.
14
-
15
- The promise or async initializer executes once on first access, and the resolved value is cached permanently.
16
- While the promise is pending, any reactive computation that accesses the value will receive PendingError and
17
- automatically retry once the promise resolves. Use for one-time async operations that don't depend on other
18
- reactive values, such as loading configuration or fetching initial data.
19
-
20
- ### Type Parameters
21
-
22
- | Type Parameter |
23
- | ------ |
24
- | `T` |
25
-
26
- ### Parameters
27
-
28
- | Parameter | Type | Description |
29
- | ------ | ------ | ------ |
30
- | `value` | `Promise`\<`T`\> | Promise to resolve, or async function that returns a promise on first access |
31
-
32
- ### Returns
33
-
34
- [`FlowConstantAsync`](/api/interfaces/FlowConstantAsync.md)\<`T`\>
35
-
36
- A FlowConstantAsync that provides read-only access to the resolved value
37
-
38
- ## Call Signature
39
-
40
- ```ts
41
- function constantAsync<T>(initializer): FlowConstantAsync<T>;
42
- ```
43
-
44
- Defined in: [api/nodes/async/flowConstantAsync.ts:33](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowConstantAsync.ts#L33)
45
-
46
- Creates a constant reactive value from a promise or async initializer that resolves once and never recomputes.
47
-
48
- The promise or async initializer executes once on first access, and the resolved value is cached permanently.
49
- While the promise is pending, any reactive computation that accesses the value will receive PendingError and
50
- automatically retry once the promise resolves. Use for one-time async operations that don't depend on other
51
- reactive values, such as loading configuration or fetching initial data.
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
- [`FlowConstantAsync`](/api/interfaces/FlowConstantAsync.md)\<`T`\>
68
-
69
- A FlowConstantAsync that provides read-only access to the resolved value
@@ -1,34 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / derivation
2
-
3
- # Function: derivation()
4
-
5
- ```ts
6
- function derivation<T>(compute): FlowDerivation<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/sync/flowDerivation.ts:39](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowDerivation.ts#L39)
10
-
11
- Creates a derived reactive value that automatically recomputes when dependencies change.
12
-
13
- The compute function runs when any tracked dependency changes, and the result is cached until the next change.
14
- Access reactive values within the compute function to establish dependencies automatically. The derivation
15
- computes lazily on first access and then reactively thereafter. Use for derived data that should stay
16
- synchronized with source state.
17
-
18
- ## Type Parameters
19
-
20
- | Type Parameter |
21
- | ------ |
22
- | `T` |
23
-
24
- ## Parameters
25
-
26
- | Parameter | Type | Description |
27
- | ------ | ------ | ------ |
28
- | `compute` | [`DerivationFunction`](/api/type-aliases/DerivationFunction.md)\<`T`\> | Function that accesses dependencies and computes the derived value |
29
-
30
- ## Returns
31
-
32
- [`FlowDerivation`](/api/interfaces/FlowDerivation.md)\<`T`\>
33
-
34
- A FlowDerivation that provides read-only access to the computed value
@@ -1,34 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / derivationAsync
2
-
3
- # Function: derivationAsync()
4
-
5
- ```ts
6
- function derivationAsync<T>(compute): FlowDerivationAsync<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/async/flowDerivationAsync.ts:40](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowDerivationAsync.ts#L40)
10
-
11
- Creates an async derived value that automatically recomputes when dependencies change.
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. The resolved value is cached until the next change.
15
- While the promise is pending, reactive computations that access this value receive PendingError and automatically
16
- retry once resolved. Use for derived data from async sources like filtered API results or computed database queries.
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
- [`FlowDerivationAsync`](/api/interfaces/FlowDerivationAsync.md)\<`T`\>
33
-
34
- A FlowDerivationAsync that provides read-only access to the resolved computed value
@@ -1,129 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / from
2
-
3
- # Function: from()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function from<T>(flow): Resource<T>;
9
- ```
10
-
11
- Defined in: [converters/solid.ts:97](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/converters/solid.ts#L97)
12
-
13
- Converts a PicoFlow observable or getter function into a SolidJS resource.
14
-
15
- ### Type Parameters
16
-
17
- | Type Parameter |
18
- | ------ |
19
- | `T` |
20
-
21
- ### Parameters
22
-
23
- | Parameter | Type | Description |
24
- | ------ | ------ | ------ |
25
- | `flow` | [`FlowObservable`](/api/interfaces/FlowObservable.md)\<`T`\> | The FlowObservable or getter function to convert. |
26
-
27
- ### Returns
28
-
29
- `Resource`\<`T`\>
30
-
31
- A SolidJS Resource that wraps the value or computation.
32
-
33
- ### Remarks
34
-
35
- This function bridges PicoFlow's reactive system with SolidJS, allowing you to use
36
- PicoFlow primitives and computations within Solid components. All conversions return a
37
- SolidJS Resource, which can handle both synchronous and asynchronous values seamlessly.
38
-
39
- The conversion works with:
40
- - **FlowObservable**: Any PicoFlow reactive primitive (e.g., from `state()`, `derivation()`, `stateAsync()`, `derivationAsync()`)
41
- - **Getter functions**: Computation functions that use a FlowTracker to access reactive values
42
-
43
- The created Resource automatically subscribes to the PicoFlow observables and updates
44
- when their values change. The subscription is properly cleaned up when the Solid
45
- component unmounts.
46
-
47
- ### Example
48
-
49
- ```typescript
50
- import { from } from 'picoflow/solid';
51
- import { state, derivation } from 'picoflow';
52
-
53
- // Convert a PicoFlow state to a Solid resource
54
- const $count = state(0);
55
- const solidCount = from($count);
56
-
57
- // Use in a Solid component
58
- function Counter() {
59
- return <div>Count: {solidCount()}</div>;
60
- }
61
-
62
- // Or convert a computation function
63
- const solidDerived = from((t) => {
64
- return $count.get(t) * 2;
65
- });
66
- ```
67
-
68
- ## Call Signature
69
-
70
- ```ts
71
- function from<T>(flow): Resource<T>;
72
- ```
73
-
74
- Defined in: [converters/solid.ts:98](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/converters/solid.ts#L98)
75
-
76
- Converts a PicoFlow observable or getter function into a SolidJS resource.
77
-
78
- ### Type Parameters
79
-
80
- | Type Parameter |
81
- | ------ |
82
- | `T` |
83
-
84
- ### Parameters
85
-
86
- | Parameter | Type | Description |
87
- | ------ | ------ | ------ |
88
- | `flow` | (`t`) => [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> | The FlowObservable or getter function to convert. |
89
-
90
- ### Returns
91
-
92
- `Resource`\<`T`\>
93
-
94
- A SolidJS Resource that wraps the value or computation.
95
-
96
- ### Remarks
97
-
98
- This function bridges PicoFlow's reactive system with SolidJS, allowing you to use
99
- PicoFlow primitives and computations within Solid components. All conversions return a
100
- SolidJS Resource, which can handle both synchronous and asynchronous values seamlessly.
101
-
102
- The conversion works with:
103
- - **FlowObservable**: Any PicoFlow reactive primitive (e.g., from `state()`, `derivation()`, `stateAsync()`, `derivationAsync()`)
104
- - **Getter functions**: Computation functions that use a FlowTracker to access reactive values
105
-
106
- The created Resource automatically subscribes to the PicoFlow observables and updates
107
- when their values change. The subscription is properly cleaned up when the Solid
108
- component unmounts.
109
-
110
- ### Example
111
-
112
- ```typescript
113
- import { from } from 'picoflow/solid';
114
- import { state, derivation } from 'picoflow';
115
-
116
- // Convert a PicoFlow state to a Solid resource
117
- const $count = state(0);
118
- const solidCount = from($count);
119
-
120
- // Use in a Solid component
121
- function Counter() {
122
- return <div>Count: {solidCount()}</div>;
123
- }
124
-
125
- // Or convert a computation function
126
- const solidDerived = from((t) => {
127
- return $count.get(t) * 2;
128
- });
129
- ```
@@ -1,27 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / isDisposable
2
-
3
- # Function: isDisposable()
4
-
5
- ```ts
6
- function isDisposable(obj): obj is FlowDisposable;
7
- ```
8
-
9
- Defined in: [api/base/flowDisposable.ts:42](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L42)
10
-
11
- Type guard to check if an object implements the FlowDisposable interface.
12
-
13
- Useful for conditionally disposing objects that may or may not be disposable,
14
- such as when cleaning up mixed collections of values. Returns true if the object
15
- has a `dispose` method, providing type-safe access to disposal functionality.
16
-
17
- ## Parameters
18
-
19
- | Parameter | Type | Description |
20
- | ------ | ------ | ------ |
21
- | `obj` | `unknown` | The object to check |
22
-
23
- ## Returns
24
-
25
- `obj is FlowDisposable`
26
-
27
- True if the object implements FlowDisposable, false otherwise
@@ -1,36 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / map
2
-
3
- # Function: map()
4
-
5
- ```ts
6
- function map<K, V>(initial?): FlowMap<K, V>;
7
- ```
8
-
9
- Defined in: [api/nodes/collections/flowMap.ts:110](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L110)
10
-
11
- Creates a reactive map with mutation methods and fine-grained action tracking.
12
-
13
- The map starts with the provided initial entries (or empty if none provided). All mutation methods
14
- (add, update, delete) notify dependents and emit detailed action information to `$lastAction`.
15
- Use the map itself for coarse-grained reactivity, or subscribe to `$lastAction` for fine-grained
16
- reactivity to specific mutation types. Useful for entity stores, lookup tables, or any key-value
17
- data that needs reactive updates.
18
-
19
- ## Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `K` *extends* `string` \| `number` \| `symbol` |
24
- | `V` |
25
-
26
- ## Parameters
27
-
28
- | Parameter | Type | Description |
29
- | ------ | ------ | ------ |
30
- | `initial?` | `Record`\<`K`, `V`\> \| `Map`\<`K`, `V`\> | Optional initial entries as a Record or Map |
31
-
32
- ## Returns
33
-
34
- [`FlowMap`](/api/interfaces/FlowMap.md)\<`K`, `V`\>
35
-
36
- A FlowMap with reactive mutation methods
@@ -1,21 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / signal
2
-
3
- # Function: signal()
4
-
5
- ```ts
6
- function signal(): FlowSignal;
7
- ```
8
-
9
- Defined in: [api/nodes/flowSignal.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowSignal.ts#L26)
10
-
11
- Creates a signal that can be manually triggered to notify dependents.
12
-
13
- Signals act as event emitters in the reactive graph. Call `trigger()` to notify all subscribers
14
- and reactive computations that depend on the signal. Unlike state or derivations, signals don't
15
- carry data values - they simply represent that an event occurred.
16
-
17
- ## Returns
18
-
19
- [`FlowSignal`](/api/interfaces/FlowSignal.md)
20
-
21
- A FlowSignal that can be triggered manually and subscribed to
@@ -1,67 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / state
2
-
3
- # Function: state()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function state<T>(value): FlowState<T>;
9
- ```
10
-
11
- Defined in: [api/nodes/sync/flowState.ts:41](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L41)
12
-
13
- Creates a mutable reactive state that can be read and updated imperatively.
14
-
15
- State can be initialized with a direct value or a lazy initializer function. Changes propagate
16
- automatically to all reactive computations that depend on this state. Use state for data that
17
- changes through user actions, external events, or application logic rather than derived computations.
18
-
19
- ### Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `T` |
24
-
25
- ### Parameters
26
-
27
- | Parameter | Type | Description |
28
- | ------ | ------ | ------ |
29
- | `value` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> | Initial value for the state, or lazy initializer function |
30
-
31
- ### Returns
32
-
33
- [`FlowState`](/api/interfaces/FlowState.md)\<`T`\>
34
-
35
- A FlowState that can be read and modified
36
-
37
- ## Call Signature
38
-
39
- ```ts
40
- function state<T>(initializer): FlowState<T>;
41
- ```
42
-
43
- Defined in: [api/nodes/sync/flowState.ts:42](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L42)
44
-
45
- Creates a mutable reactive state that can be read and updated imperatively.
46
-
47
- State can be initialized with a direct value or a lazy initializer function. Changes propagate
48
- automatically to all reactive computations that depend on this state. Use state for data that
49
- changes through user actions, external events, or application logic rather than derived computations.
50
-
51
- ### Type Parameters
52
-
53
- | Type Parameter |
54
- | ------ |
55
- | `T` |
56
-
57
- ### Parameters
58
-
59
- | Parameter | Type |
60
- | ------ | ------ |
61
- | `initializer` | [`InitFunction`](/api/type-aliases/InitFunction.md)\<`T`\> |
62
-
63
- ### Returns
64
-
65
- [`FlowState`](/api/interfaces/FlowState.md)\<`T`\>
66
-
67
- A FlowState that can be read and modified