@ersbeth/picoflow 1.1.2 → 2.0.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 (383) hide show
  1. package/.vscode/settings.json +3 -3
  2. package/CHANGELOG.md +43 -0
  3. package/README.md +2 -18
  4. package/biome.json +45 -35
  5. package/dist/picoflow.js +856 -1530
  6. package/dist/types/api/base/flowDisposable.d.ts +41 -0
  7. package/dist/types/api/base/flowDisposable.d.ts.map +1 -0
  8. package/dist/types/api/base/flowObservable.d.ts +27 -0
  9. package/dist/types/api/base/flowObservable.d.ts.map +1 -0
  10. package/dist/types/api/base/flowSubscribable.d.ts +79 -0
  11. package/dist/types/api/base/flowSubscribable.d.ts.map +1 -0
  12. package/dist/types/api/base/flowTracker.d.ts +8 -0
  13. package/dist/types/api/base/flowTracker.d.ts.map +1 -0
  14. package/dist/types/api/base/index.d.ts +5 -0
  15. package/dist/types/api/base/index.d.ts.map +1 -0
  16. package/dist/types/api/index.d.ts +3 -0
  17. package/dist/types/api/index.d.ts.map +1 -0
  18. package/dist/types/api/nodes/async/flowConstantAsync.d.ts +31 -0
  19. package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -0
  20. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +37 -0
  21. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -0
  22. package/dist/types/api/nodes/async/flowStateAsync.d.ts +41 -0
  23. package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -0
  24. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +30 -0
  25. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -0
  26. package/dist/types/{flow → api}/nodes/async/index.d.ts +1 -2
  27. package/dist/types/api/nodes/async/index.d.ts.map +1 -0
  28. package/dist/types/api/nodes/collections/flowArray.d.ts +134 -0
  29. package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -0
  30. package/dist/types/api/nodes/collections/flowMap.d.ts +98 -0
  31. package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -0
  32. package/dist/types/api/nodes/collections/index.d.ts.map +1 -0
  33. package/dist/types/api/nodes/flowEffect.d.ts +28 -0
  34. package/dist/types/api/nodes/flowEffect.d.ts.map +1 -0
  35. package/dist/types/api/nodes/flowSignal.d.ts +25 -0
  36. package/dist/types/api/nodes/flowSignal.d.ts.map +1 -0
  37. package/dist/types/api/nodes/flowValue.d.ts +35 -0
  38. package/dist/types/api/nodes/flowValue.d.ts.map +1 -0
  39. package/dist/types/api/nodes/index.d.ts +8 -0
  40. package/dist/types/api/nodes/index.d.ts.map +1 -0
  41. package/dist/types/api/nodes/sync/flowConstant.d.ts +29 -0
  42. package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -0
  43. package/dist/types/api/nodes/sync/flowDerivation.d.ts +36 -0
  44. package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -0
  45. package/dist/types/api/nodes/sync/flowState.d.ts +39 -0
  46. package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -0
  47. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +28 -0
  48. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -0
  49. package/dist/types/{flow → api}/nodes/sync/index.d.ts +1 -2
  50. package/dist/types/api/nodes/sync/index.d.ts.map +1 -0
  51. package/dist/types/api/nodes/utils.d.ts +22 -0
  52. package/dist/types/api/nodes/utils.d.ts.map +1 -0
  53. package/dist/types/base/disposable.d.ts +11 -0
  54. package/dist/types/base/disposable.d.ts.map +1 -0
  55. package/dist/types/base/executionStack.d.ts +14 -0
  56. package/dist/types/base/executionStack.d.ts.map +1 -0
  57. package/dist/types/base/index.d.ts +6 -0
  58. package/dist/types/base/index.d.ts.map +1 -0
  59. package/dist/types/base/node.d.ts +27 -0
  60. package/dist/types/base/node.d.ts.map +1 -0
  61. package/dist/types/base/observable.d.ts +37 -0
  62. package/dist/types/base/observable.d.ts.map +1 -0
  63. package/dist/types/base/observer.d.ts +25 -0
  64. package/dist/types/base/observer.d.ts.map +1 -0
  65. package/dist/types/converters/index.d.ts +2 -0
  66. package/dist/types/converters/index.d.ts.map +1 -0
  67. package/dist/types/converters/solid.d.ts +46 -0
  68. package/dist/types/converters/solid.d.ts.map +1 -0
  69. package/dist/types/index.d.ts +2 -63
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/nodes/arrayNode.d.ts +2 -0
  72. package/dist/types/nodes/arrayNode.d.ts.map +1 -0
  73. package/dist/types/nodes/effectNode.d.ts +2 -0
  74. package/dist/types/nodes/effectNode.d.ts.map +1 -0
  75. package/dist/types/nodes/index.d.ts +9 -0
  76. package/dist/types/nodes/index.d.ts.map +1 -0
  77. package/dist/types/nodes/mapNode.d.ts +2 -0
  78. package/dist/types/nodes/mapNode.d.ts.map +1 -0
  79. package/dist/types/nodes/signalNode.d.ts +2 -0
  80. package/dist/types/nodes/signalNode.d.ts.map +1 -0
  81. package/dist/types/nodes/valueAsyncNode.d.ts +2 -0
  82. package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -0
  83. package/dist/types/nodes/valueNode.d.ts +2 -0
  84. package/dist/types/nodes/valueNode.d.ts.map +1 -0
  85. package/dist/types/nodes/valueSyncNode.d.ts +2 -0
  86. package/dist/types/nodes/valueSyncNode.d.ts.map +1 -0
  87. package/dist/types/schedulers/asyncResolver.d.ts +2 -0
  88. package/dist/types/schedulers/asyncResolver.d.ts.map +1 -0
  89. package/dist/types/schedulers/asyncScheduler.d.ts +2 -0
  90. package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -0
  91. package/dist/types/schedulers/index.d.ts +5 -0
  92. package/dist/types/schedulers/index.d.ts.map +1 -0
  93. package/dist/types/schedulers/pendingError.d.ts +2 -0
  94. package/dist/types/schedulers/pendingError.d.ts.map +1 -0
  95. package/dist/types/schedulers/scheduler.d.ts +2 -0
  96. package/dist/types/schedulers/scheduler.d.ts.map +1 -0
  97. package/dist/types/schedulers/syncResolver.d.ts +2 -0
  98. package/dist/types/schedulers/syncResolver.d.ts.map +1 -0
  99. package/dist/types/schedulers/syncScheduler.d.ts +2 -0
  100. package/dist/types/schedulers/syncScheduler.d.ts.map +1 -0
  101. package/docs/.vitepress/config.mts +128 -93
  102. package/docs/api/functions/array.md +14 -37
  103. package/docs/api/functions/constant.md +13 -25
  104. package/docs/api/functions/constantAsync.md +69 -0
  105. package/docs/api/functions/derivation.md +14 -33
  106. package/docs/api/functions/derivationAsync.md +34 -0
  107. package/docs/api/functions/from.md +62 -153
  108. package/docs/api/functions/isDisposable.md +8 -30
  109. package/docs/api/functions/map.md +15 -36
  110. package/docs/api/functions/signal.md +8 -23
  111. package/docs/api/functions/state.md +43 -23
  112. package/docs/api/functions/stateAsync.md +69 -0
  113. package/docs/api/functions/subscribe.md +40 -0
  114. package/docs/api/functions/writableDerivation.md +33 -0
  115. package/docs/api/functions/writableDerivationAsync.md +34 -0
  116. package/docs/api/index.md +45 -102
  117. package/docs/api/interfaces/FlowArray.md +439 -0
  118. package/docs/api/interfaces/FlowConstant.md +220 -0
  119. package/docs/api/interfaces/FlowConstantAsync.md +221 -0
  120. package/docs/api/interfaces/FlowDerivation.md +241 -0
  121. package/docs/api/interfaces/FlowDerivationAsync.md +242 -0
  122. package/docs/api/interfaces/FlowDisposable.md +32 -38
  123. package/docs/api/interfaces/FlowEffect.md +64 -0
  124. package/docs/api/interfaces/FlowMap.md +374 -0
  125. package/docs/api/interfaces/FlowObservable.md +155 -0
  126. package/docs/api/interfaces/FlowSignal.md +156 -0
  127. package/docs/api/interfaces/FlowState.md +269 -0
  128. package/docs/api/interfaces/FlowStateAsync.md +268 -0
  129. package/docs/api/interfaces/FlowSubscribable.md +55 -0
  130. package/docs/api/interfaces/FlowTracker.md +61 -0
  131. package/docs/api/interfaces/FlowValue.md +222 -0
  132. package/docs/api/interfaces/FlowWritableDerivation.md +292 -0
  133. package/docs/api/interfaces/FlowWritableDerivationAsync.md +293 -0
  134. package/docs/api/type-aliases/DerivationFunction.md +28 -0
  135. package/docs/api/type-aliases/DerivationFunctionAsync.md +28 -0
  136. package/docs/api/type-aliases/FlowArrayAction.md +19 -8
  137. package/docs/api/type-aliases/FlowDataTracker.md +33 -0
  138. package/docs/api/type-aliases/FlowMapAction.md +48 -0
  139. package/docs/api/type-aliases/FlowOnDataListener.md +33 -0
  140. package/docs/api/type-aliases/FlowOnErrorListener.md +27 -0
  141. package/docs/api/type-aliases/FlowOnPendingListener.md +21 -0
  142. package/docs/api/type-aliases/FlowReadonly.md +22 -0
  143. package/docs/api/type-aliases/InitFunction.md +21 -0
  144. package/docs/api/type-aliases/InitFunctionAsync.md +21 -0
  145. package/docs/api/type-aliases/NotPromise.md +6 -3
  146. package/docs/api/type-aliases/UpdateFunction.md +27 -0
  147. package/docs/api/type-aliases/UpdateFunctionAsync.md +27 -0
  148. package/docs/api/typedoc-sidebar.json +1 -81
  149. package/docs/examples/examples.md +0 -2
  150. package/docs/guide/advanced/architecture.md +1234 -0
  151. package/docs/guide/advanced/migration-v2.md +204 -0
  152. package/docs/guide/advanced/solidjs.md +2 -88
  153. package/docs/guide/introduction/concepts.md +4 -3
  154. package/docs/guide/introduction/conventions.md +2 -33
  155. package/docs/guide/introduction/getting-started.md +28 -23
  156. package/docs/guide/introduction/lifecycle.md +16 -19
  157. package/docs/guide/primitives/array.md +102 -216
  158. package/docs/guide/primitives/constant.md +39 -212
  159. package/docs/guide/primitives/derivations.md +55 -122
  160. package/docs/guide/primitives/effects.md +155 -241
  161. package/docs/guide/primitives/map.md +64 -186
  162. package/docs/guide/primitives/overview.md +45 -128
  163. package/docs/guide/primitives/signal.md +51 -88
  164. package/docs/guide/primitives/state.md +34 -130
  165. package/package.json +56 -60
  166. package/src/api/base/flowDisposable.ts +44 -0
  167. package/src/api/base/flowObservable.ts +28 -0
  168. package/src/api/base/flowSubscribable.ts +87 -0
  169. package/src/api/base/flowTracker.ts +7 -0
  170. package/src/api/base/index.ts +4 -0
  171. package/src/{flow → api}/index.ts +0 -1
  172. package/src/api/nodes/async/flowConstantAsync.ts +36 -0
  173. package/src/api/nodes/async/flowDerivationAsync.ts +42 -0
  174. package/src/api/nodes/async/flowStateAsync.ts +47 -0
  175. package/src/api/nodes/async/flowWritableDerivationAsync.ts +33 -0
  176. package/src/{flow → api}/nodes/async/index.ts +1 -2
  177. package/src/api/nodes/collections/flowArray.ts +155 -0
  178. package/src/api/nodes/collections/flowMap.ts +115 -0
  179. package/src/api/nodes/flowEffect.ts +42 -0
  180. package/src/api/nodes/flowSignal.ts +28 -0
  181. package/src/api/nodes/flowValue.ts +36 -0
  182. package/src/api/nodes/index.ts +7 -0
  183. package/src/api/nodes/sync/flowConstant.ts +33 -0
  184. package/src/api/nodes/sync/flowDerivation.ts +41 -0
  185. package/src/api/nodes/sync/flowState.ts +45 -0
  186. package/src/api/nodes/sync/flowWritableDerivation.ts +31 -0
  187. package/src/{flow → api}/nodes/sync/index.ts +1 -2
  188. package/src/api/nodes/utils.ts +22 -0
  189. package/src/base/disposable.ts +18 -0
  190. package/src/base/executionStack.ts +42 -0
  191. package/src/base/index.ts +5 -0
  192. package/src/base/node.ts +98 -0
  193. package/src/base/observable.ts +87 -0
  194. package/src/base/observer.ts +51 -0
  195. package/src/converters/index.ts +1 -0
  196. package/src/converters/solid.ts +109 -0
  197. package/src/index.ts +2 -64
  198. package/src/nodes/arrayNode.ts +172 -0
  199. package/src/nodes/effectNode.ts +59 -0
  200. package/src/nodes/index.ts +8 -0
  201. package/src/nodes/mapNode.ts +127 -0
  202. package/src/nodes/signalNode.ts +21 -0
  203. package/src/nodes/valueAsyncNode.ts +88 -0
  204. package/src/nodes/valueNode.ts +144 -0
  205. package/src/nodes/valueSyncNode.ts +128 -0
  206. package/src/schedulers/asyncResolver.ts +78 -0
  207. package/src/schedulers/asyncScheduler.ts +66 -0
  208. package/src/schedulers/index.ts +4 -0
  209. package/src/schedulers/pendingError.ts +13 -0
  210. package/src/schedulers/scheduler.ts +9 -0
  211. package/src/schedulers/syncResolver.ts +69 -0
  212. package/src/schedulers/syncScheduler.ts +55 -0
  213. package/test/base/pendingError.test.ts +67 -0
  214. package/test/converters/solid.derivation.browser.test.tsx +69 -0
  215. package/test/converters/solid.node.test.ts +654 -0
  216. package/test/converters/solid.state.browser.test.tsx +1592 -0
  217. package/test/reactivity/flowSignal.test.ts +226 -0
  218. package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +593 -0
  219. package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +317 -0
  220. package/test/reactivity/nodes/async/flowConstantAsync.test.ts +652 -0
  221. package/test/reactivity/nodes/async/flowDerivation.test.ts +898 -0
  222. package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +1716 -0
  223. package/test/reactivity/nodes/async/flowStateAsync.test.ts +708 -0
  224. package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +614 -0
  225. package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +1289 -0
  226. package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +961 -0
  227. package/test/reactivity/nodes/collections/flowArray.states.test.ts +1035 -0
  228. package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +960 -0
  229. package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +775 -0
  230. package/test/reactivity/nodes/collections/flowMap.states.test.ts +958 -0
  231. package/test/reactivity/nodes/sync/flowConstant.test.ts +377 -0
  232. package/test/reactivity/nodes/sync/flowDerivation.test.ts +896 -0
  233. package/test/reactivity/nodes/sync/flowState.test.ts +341 -0
  234. package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +603 -0
  235. package/test/vitest.d.ts +10 -0
  236. package/tsconfig.json +31 -20
  237. package/typedoc.json +35 -35
  238. package/vite.config.ts +25 -23
  239. package/vitest.browser.config.ts +21 -0
  240. package/vitest.config.ts +12 -12
  241. package/.cursor/plans/unifier-flowresource-avec-flowderivation-c9506e24.plan.md +0 -372
  242. package/.cursor/plans/update-js-e795d61b.plan.md +0 -567
  243. package/dist/types/flow/base/flowDisposable.d.ts +0 -67
  244. package/dist/types/flow/base/flowDisposable.d.ts.map +0 -1
  245. package/dist/types/flow/base/flowEffect.d.ts +0 -127
  246. package/dist/types/flow/base/flowEffect.d.ts.map +0 -1
  247. package/dist/types/flow/base/flowGraph.d.ts +0 -97
  248. package/dist/types/flow/base/flowGraph.d.ts.map +0 -1
  249. package/dist/types/flow/base/flowSignal.d.ts +0 -134
  250. package/dist/types/flow/base/flowSignal.d.ts.map +0 -1
  251. package/dist/types/flow/base/flowTracker.d.ts +0 -15
  252. package/dist/types/flow/base/flowTracker.d.ts.map +0 -1
  253. package/dist/types/flow/base/index.d.ts +0 -7
  254. package/dist/types/flow/base/index.d.ts.map +0 -1
  255. package/dist/types/flow/base/utils.d.ts +0 -20
  256. package/dist/types/flow/base/utils.d.ts.map +0 -1
  257. package/dist/types/flow/collections/flowArray.d.ts +0 -148
  258. package/dist/types/flow/collections/flowArray.d.ts.map +0 -1
  259. package/dist/types/flow/collections/flowMap.d.ts +0 -224
  260. package/dist/types/flow/collections/flowMap.d.ts.map +0 -1
  261. package/dist/types/flow/collections/index.d.ts.map +0 -1
  262. package/dist/types/flow/index.d.ts +0 -4
  263. package/dist/types/flow/index.d.ts.map +0 -1
  264. package/dist/types/flow/nodes/async/flowConstantAsync.d.ts +0 -137
  265. package/dist/types/flow/nodes/async/flowConstantAsync.d.ts.map +0 -1
  266. package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts +0 -137
  267. package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts.map +0 -1
  268. package/dist/types/flow/nodes/async/flowNodeAsync.d.ts +0 -343
  269. package/dist/types/flow/nodes/async/flowNodeAsync.d.ts.map +0 -1
  270. package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts +0 -81
  271. package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts.map +0 -1
  272. package/dist/types/flow/nodes/async/flowStateAsync.d.ts +0 -111
  273. package/dist/types/flow/nodes/async/flowStateAsync.d.ts.map +0 -1
  274. package/dist/types/flow/nodes/async/index.d.ts.map +0 -1
  275. package/dist/types/flow/nodes/index.d.ts +0 -3
  276. package/dist/types/flow/nodes/index.d.ts.map +0 -1
  277. package/dist/types/flow/nodes/sync/flowConstant.d.ts +0 -108
  278. package/dist/types/flow/nodes/sync/flowConstant.d.ts.map +0 -1
  279. package/dist/types/flow/nodes/sync/flowDerivation.d.ts +0 -100
  280. package/dist/types/flow/nodes/sync/flowDerivation.d.ts.map +0 -1
  281. package/dist/types/flow/nodes/sync/flowNode.d.ts +0 -314
  282. package/dist/types/flow/nodes/sync/flowNode.d.ts.map +0 -1
  283. package/dist/types/flow/nodes/sync/flowReadonly.d.ts +0 -57
  284. package/dist/types/flow/nodes/sync/flowReadonly.d.ts.map +0 -1
  285. package/dist/types/flow/nodes/sync/flowState.d.ts +0 -96
  286. package/dist/types/flow/nodes/sync/flowState.d.ts.map +0 -1
  287. package/dist/types/flow/nodes/sync/index.d.ts.map +0 -1
  288. package/dist/types/solid/converters.d.ts +0 -57
  289. package/dist/types/solid/converters.d.ts.map +0 -1
  290. package/dist/types/solid/index.d.ts +0 -3
  291. package/dist/types/solid/index.d.ts.map +0 -1
  292. package/dist/types/solid/primitives.d.ts +0 -181
  293. package/dist/types/solid/primitives.d.ts.map +0 -1
  294. package/docs/api/classes/FlowArray.md +0 -489
  295. package/docs/api/classes/FlowConstant.md +0 -350
  296. package/docs/api/classes/FlowDerivation.md +0 -334
  297. package/docs/api/classes/FlowEffect.md +0 -100
  298. package/docs/api/classes/FlowMap.md +0 -512
  299. package/docs/api/classes/FlowObservable.md +0 -306
  300. package/docs/api/classes/FlowResource.md +0 -380
  301. package/docs/api/classes/FlowResourceAsync.md +0 -362
  302. package/docs/api/classes/FlowSignal.md +0 -160
  303. package/docs/api/classes/FlowState.md +0 -368
  304. package/docs/api/classes/FlowStream.md +0 -367
  305. package/docs/api/classes/FlowStreamAsync.md +0 -364
  306. package/docs/api/classes/SolidDerivation.md +0 -75
  307. package/docs/api/classes/SolidResource.md +0 -91
  308. package/docs/api/classes/SolidState.md +0 -71
  309. package/docs/api/classes/TrackingContext.md +0 -33
  310. package/docs/api/functions/effect.md +0 -49
  311. package/docs/api/functions/resource.md +0 -52
  312. package/docs/api/functions/resourceAsync.md +0 -50
  313. package/docs/api/functions/stream.md +0 -53
  314. package/docs/api/functions/streamAsync.md +0 -50
  315. package/docs/api/interfaces/SolidObservable.md +0 -19
  316. package/docs/api/type-aliases/FlowStreamDisposer.md +0 -15
  317. package/docs/api/type-aliases/FlowStreamSetter.md +0 -27
  318. package/docs/api/type-aliases/FlowStreamUpdater.md +0 -32
  319. package/docs/api/type-aliases/SolidGetter.md +0 -17
  320. package/docs/guide/primitives/resources.md +0 -858
  321. package/docs/guide/primitives/streams.md +0 -931
  322. package/src/flow/base/flowDisposable.ts +0 -71
  323. package/src/flow/base/flowEffect.ts +0 -171
  324. package/src/flow/base/flowGraph.ts +0 -288
  325. package/src/flow/base/flowSignal.ts +0 -207
  326. package/src/flow/base/flowTracker.ts +0 -17
  327. package/src/flow/base/index.ts +0 -6
  328. package/src/flow/base/utils.ts +0 -19
  329. package/src/flow/collections/flowArray.ts +0 -409
  330. package/src/flow/collections/flowMap.ts +0 -398
  331. package/src/flow/nodes/async/flowConstantAsync.ts +0 -142
  332. package/src/flow/nodes/async/flowDerivationAsync.ts +0 -143
  333. package/src/flow/nodes/async/flowNodeAsync.ts +0 -474
  334. package/src/flow/nodes/async/flowReadonlyAsync.ts +0 -81
  335. package/src/flow/nodes/async/flowStateAsync.ts +0 -116
  336. package/src/flow/nodes/await/advanced/index.ts +0 -5
  337. package/src/flow/nodes/await/advanced/resource.ts +0 -134
  338. package/src/flow/nodes/await/advanced/resourceAsync.ts +0 -109
  339. package/src/flow/nodes/await/advanced/stream.ts +0 -188
  340. package/src/flow/nodes/await/advanced/streamAsync.ts +0 -176
  341. package/src/flow/nodes/await/flowConstantAwait.ts +0 -154
  342. package/src/flow/nodes/await/flowDerivationAwait.ts +0 -154
  343. package/src/flow/nodes/await/flowNodeAwait.ts +0 -508
  344. package/src/flow/nodes/await/flowReadonlyAwait.ts +0 -89
  345. package/src/flow/nodes/await/flowStateAwait.ts +0 -130
  346. package/src/flow/nodes/await/index.ts +0 -5
  347. package/src/flow/nodes/index.ts +0 -3
  348. package/src/flow/nodes/sync/flowConstant.ts +0 -111
  349. package/src/flow/nodes/sync/flowDerivation.ts +0 -105
  350. package/src/flow/nodes/sync/flowNode.ts +0 -439
  351. package/src/flow/nodes/sync/flowReadonly.ts +0 -57
  352. package/src/flow/nodes/sync/flowState.ts +0 -101
  353. package/src/solid/converters.ts +0 -148
  354. package/src/solid/index.ts +0 -2
  355. package/src/solid/primitives.ts +0 -215
  356. package/test/base/flowEffect.test.ts +0 -108
  357. package/test/base/flowGraph.test.ts +0 -485
  358. package/test/base/flowSignal.test.ts +0 -372
  359. package/test/collections/flowArray.asyncStates.test.ts +0 -1553
  360. package/test/collections/flowArray.scalars.test.ts +0 -1129
  361. package/test/collections/flowArray.states.test.ts +0 -1365
  362. package/test/collections/flowMap.asyncStates.test.ts +0 -1105
  363. package/test/collections/flowMap.scalars.test.ts +0 -877
  364. package/test/collections/flowMap.states.test.ts +0 -1097
  365. package/test/nodes/async/flowConstantAsync.test.ts +0 -860
  366. package/test/nodes/async/flowDerivationAsync.test.ts +0 -1517
  367. package/test/nodes/async/flowStateAsync.test.ts +0 -1387
  368. package/test/nodes/await/advanced/resource.test.ts +0 -129
  369. package/test/nodes/await/advanced/resourceAsync.test.ts +0 -108
  370. package/test/nodes/await/advanced/stream.test.ts +0 -198
  371. package/test/nodes/await/advanced/streamAsync.test.ts +0 -196
  372. package/test/nodes/await/flowConstantAwait.test.ts +0 -643
  373. package/test/nodes/await/flowDerivationAwait.test.ts +0 -1583
  374. package/test/nodes/await/flowStateAwait.test.ts +0 -999
  375. package/test/nodes/mixed/derivation.test.ts +0 -1527
  376. package/test/nodes/sync/flowConstant.test.ts +0 -620
  377. package/test/nodes/sync/flowDerivation.test.ts +0 -1373
  378. package/test/nodes/sync/flowState.test.ts +0 -945
  379. package/test/solid/converters.test.ts +0 -721
  380. package/test/solid/primitives.test.ts +0 -1031
  381. /package/dist/types/{flow → api/nodes}/collections/index.d.ts +0 -0
  382. /package/docs/guide/advanced/{upgrading.md → migration-v1.md} +0 -0
  383. /package/src/{flow → api/nodes}/collections/index.ts +0 -0
@@ -1,100 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowEffect
2
-
3
- # Class: FlowEffect
4
-
5
- Defined in: [basic/effect.ts:31](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/effect.ts#L31)
6
-
7
- Represents a reactive effect that executes side-effect functions based
8
- on its tracked dependencies.
9
-
10
- ## Remarks
11
-
12
- FlowEffect executes an apply function that performs side effects. The effect always runs
13
- with a tracking context, allowing you to explicitly control which observables and signals
14
- become dependencies using `.get(t)` for tracked reads or `.pick()` for untracked reads.
15
-
16
- When any tracked dependency changes, the effect automatically re-executes. The effect
17
- runs immediately upon creation and whenever its dependencies trigger updates.
18
-
19
- Unlike the old API, effects in the new TrackingContext-based system always execute with
20
- a tracking context available. You control reactivity by choosing which observables to track
21
- within the effect body.
22
-
23
- ## Example
24
-
25
- ```typescript
26
- const fx = effect((t) => {
27
- const reactive = $stateA.get(t); // Tracked - effect re-runs when $stateA changes
28
- const snapshot = $stateB.pick(); // Not tracked - changes don't trigger re-runs
29
- console.log(reactive, snapshot);
30
- });
31
- ```
32
-
33
- ## Constructors
34
-
35
- ### Constructor
36
-
37
- ```ts
38
- new FlowEffect(apply): FlowEffect;
39
- ```
40
-
41
- Defined in: [basic/effect.ts:45](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/effect.ts#L45)
42
-
43
- Creates a new FlowEffect.
44
-
45
- #### Parameters
46
-
47
- | Parameter | Type | Description |
48
- | ------ | ------ | ------ |
49
- | `apply` | (`t`) => `void` | A side-effect function that receives a tracking context to access and register dependencies on reactive observables and signals. |
50
-
51
- #### Returns
52
-
53
- `FlowEffect`
54
-
55
- #### Remarks
56
-
57
- The provided function is executed immediately upon construction with a tracking context.
58
- Use the context parameter to call `.get(t)` on observables you want to track, or `.pick()`
59
- on observables you want to read without creating dependencies.
60
-
61
- ## Accessors
62
-
63
- ### disposed
64
-
65
- #### Get Signature
66
-
67
- ```ts
68
- get disposed(): boolean;
69
- ```
70
-
71
- Defined in: [basic/effect.ts:75](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/effect.ts#L75)
72
-
73
- Indicates whether this effect has been disposed.
74
-
75
- ##### Returns
76
-
77
- `boolean`
78
-
79
- A boolean value that is true if the effect is disposed, false otherwise.
80
-
81
- ## Methods
82
-
83
- ### dispose()
84
-
85
- ```ts
86
- dispose(): void;
87
- ```
88
-
89
- Defined in: [basic/effect.ts:60](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/effect.ts#L60)
90
-
91
- Disposes the effect, unregistering all its tracked dependencies.
92
-
93
- #### Returns
94
-
95
- `void`
96
-
97
- #### Remarks
98
-
99
- Once disposed, the effect must no longer be used. Trying to dispose an effect
100
- that is already disposed will throw an error.
@@ -1,512 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / FlowMap
2
-
3
- # Class: FlowMap\<K, V\>
4
-
5
- Defined in: [advanced/map.ts:75](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L75)
6
-
7
- Represents a reactive map that extends [FlowState](/api/classes/FlowState.md) for tracking key-value pairs.
8
-
9
- ## Remarks
10
-
11
- FlowMap wraps a native JavaScript Map and provides reactive tracking at multiple granularity levels.
12
- Unlike plain reactive state, FlowMap offers fine-grained reactivity that lets you track:
13
-
14
- 1. **Whole map changes**: Via `get(t)` or `pick()` on the FlowMap itself
15
- 2. **Last add operation**: Via the `$lastAdded` signal, track which key-value pair was most recently added
16
- 3. **Last update operation**: Via the `$lastUpdated` signal, track which key-value pair was most recently updated
17
- 4. **Last delete operation**: Via the `$lastDeleted` signal, track which key-value pair was most recently removed
18
-
19
- **Reactive Signals:**
20
- - **$lastAdded**: A FlowState containing `{ key?: K, value?: V }` updated on each `add()` call
21
- - **$lastUpdated**: A FlowState containing `{ key?: K, value?: V }` updated on each `update()` call
22
- - **$lastDeleted**: A FlowState containing `{ key?: K, value?: V }` updated on each `delete()` call
23
-
24
- These signals enable fine-grained reactivity patterns where effects can respond to specific
25
- map operations without re-processing the entire map.
26
-
27
- **Use Cases:**
28
- - Entity stores where you want to track additions/removals separately
29
- - Cache implementations with granular invalidation
30
- - Collections where operations on individual keys matter
31
- - UI state where you want to animate specific additions or removals
32
-
33
- ## Example
34
-
35
- ```typescript
36
- const $users = map<string, User>();
37
-
38
- // Track the whole map
39
- effect((t) => {
40
- const users = $users.get(t);
41
- console.log(`Total users: ${users.size}`);
42
- });
43
-
44
- // Track only additions
45
- effect((t) => {
46
- const { key, value } = $users.$lastAdded.get(t);
47
- if (key && value) {
48
- console.log(`User ${key} was added:`, value);
49
- }
50
- });
51
-
52
- // Track only updates
53
- effect((t) => {
54
- const { key, value } = $users.$lastUpdated.get(t);
55
- if (key && value) {
56
- console.log(`User ${key} was updated:`, value);
57
- }
58
- });
59
-
60
- // Track only deletions
61
- effect((t) => {
62
- const { key, value } = $users.$lastDeleted.get(t);
63
- if (key && value) {
64
- console.log(`User ${key} was deleted:`, value);
65
- }
66
- });
67
-
68
- // Modify the map
69
- $users.add('user1', { name: 'John', age: 30 });
70
- $users.add('user2', { name: 'Jane', age: 25 });
71
- $users.update('user1', { name: 'John', age: 31 });
72
- $users.delete('user1');
73
- ```
74
-
75
- ## Extends
76
-
77
- - [`FlowState`](/api/classes/FlowState.md)\<`Map`\<`K`, `V`\>\>
78
-
79
- ## Type Parameters
80
-
81
- | Type Parameter | Description |
82
- | ------ | ------ |
83
- | `K` | The type of the map keys. |
84
- | `V` | The type of the map values. |
85
-
86
- ## Constructors
87
-
88
- ### Constructor
89
-
90
- ```ts
91
- new FlowMap<K, V>(value): FlowMap<K, V>;
92
- ```
93
-
94
- Defined in: [basic/constant.ts:59](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/constant.ts#L59)
95
-
96
- Creates a new FlowConstant instance.
97
-
98
- #### Parameters
99
-
100
- | Parameter | Type | Description |
101
- | ------ | ------ | ------ |
102
- | `value` | `Map`\<`K`, `V`\> \| () => `Map` | Either a direct value of type T or a function returning a value of type T. If a function is provided, it will be invoked lazily on the first value access. If a direct value is provided, it is stored immediately. |
103
-
104
- #### Returns
105
-
106
- `FlowMap`\<`K`, `V`\>
107
-
108
- #### Inherited from
109
-
110
- [`FlowState`](/api/classes/FlowState.md).[`constructor`](/api/classes/FlowState.md#constructor)
111
-
112
- ## Properties
113
-
114
- | Property | Modifier | Type | Description | Defined in |
115
- | ------ | ------ | ------ | ------ | ------ |
116
- | <a id="lastadded"></a> `$lastAdded` | `public` | [`FlowState`](/api/classes/FlowState.md)\< \| \{ `key`: `K`; `value`: `V`; \} \| `null`\> | A reactive state that holds the most recent key and value that were added. **Remarks** When a key is added via [FlowMap.add](/api/classes/FlowMap.md#add), this state is updated with the corresponding key and value. | [advanced/map.ts:85](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L85) |
117
- | <a id="lastdeleted"></a> `$lastDeleted` | `public` | [`FlowState`](/api/classes/FlowState.md)\< \| \{ `key`: `K`; `value`: `V`; \} \| `null`\> | A reactive state that holds the most recent key and value that were deleted. **Remarks** When a key is deleted via [FlowMap.delete](/api/classes/FlowMap.md#delete), this state is updated with the corresponding key and its last known value. | [advanced/map.ts:107](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L107) |
118
- | <a id="lastupdated"></a> `$lastUpdated` | `public` | [`FlowState`](/api/classes/FlowState.md)\< \| \{ `key`: `K`; `value`: `V`; \} \| `null`\> | A reactive state that holds the most recent key and value that were updated. **Remarks** When a key is updated via [FlowMap.update](/api/classes/FlowMap.md#update), this state is updated with the corresponding key and value. | [advanced/map.ts:96](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L96) |
119
-
120
- ## Accessors
121
-
122
- ### disposed
123
-
124
- #### Get Signature
125
-
126
- ```ts
127
- get disposed(): boolean;
128
- ```
129
-
130
- Defined in: [basic/signal.ts:97](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L97)
131
-
132
- Indicates whether the FlowSignal has been disposed.
133
-
134
- ##### Remarks
135
-
136
- Once disposed, the signal should not be used.
137
-
138
- ##### Returns
139
-
140
- `boolean`
141
-
142
- #### Inherited from
143
-
144
- [`FlowState`](/api/classes/FlowState.md).[`disposed`](/api/classes/FlowState.md#disposed)
145
-
146
- ## Methods
147
-
148
- ### add()
149
-
150
- ```ts
151
- add(key, value): void;
152
- ```
153
-
154
- Defined in: [advanced/map.ts:123](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L123)
155
-
156
- Adds a new key-value pair to the map.
157
-
158
- #### Parameters
159
-
160
- | Parameter | Type | Description |
161
- | ------ | ------ | ------ |
162
- | `key` | `K` | The key to add. |
163
- | `value` | `V` | The value to associate with the key. |
164
-
165
- #### Returns
166
-
167
- `void`
168
-
169
- #### Throws
170
-
171
- If the FlowMap instance is disposed.
172
-
173
- #### Throws
174
-
175
- If the key already exists in the map.
176
-
177
- #### Remarks
178
-
179
- Adds a new entry to the internal map, emits the key-value pair via [FlowMap.$lastAdded](/api/classes/FlowMap.md#lastadded),
180
- and notifies all subscribers of the change.
181
-
182
- ***
183
-
184
- ### delete()
185
-
186
- ```ts
187
- delete(key): void;
188
- ```
189
-
190
- Defined in: [advanced/map.ts:169](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L169)
191
-
192
- Deletes the value at the specified key from the underlying map.
193
-
194
- #### Parameters
195
-
196
- | Parameter | Type | Description |
197
- | ------ | ------ | ------ |
198
- | `key` | `K` | The key to delete. |
199
-
200
- #### Returns
201
-
202
- `void`
203
-
204
- #### Throws
205
-
206
- If the FlowMap instance is disposed.
207
-
208
- #### Remarks
209
-
210
- Removes the key from the internal map, emits the deleted key and its value via [FlowMap.$lastDeleted](/api/classes/FlowMap.md#lastdeleted),
211
- and notifies all subscribers of the change.
212
-
213
- ***
214
-
215
- ### dispose()
216
-
217
- ```ts
218
- dispose(options?): void;
219
- ```
220
-
221
- Defined in: [advanced/map.ts:183](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L183)
222
-
223
- Disposes the FlowMap and its values.
224
-
225
- #### Parameters
226
-
227
- | Parameter | Type | Description |
228
- | ------ | ------ | ------ |
229
- | `options?` | \{ `self`: `boolean`; \} | Disposal options. |
230
- | `options.self?` | `boolean` | - |
231
-
232
- #### Returns
233
-
234
- `void`
235
-
236
- #### Overrides
237
-
238
- [`FlowState`](/api/classes/FlowState.md).[`dispose`](/api/classes/FlowState.md#dispose)
239
-
240
- ***
241
-
242
- ### get()
243
-
244
- ```ts
245
- get(context): Map;
246
- ```
247
-
248
- Defined in: [basic/observable.ts:47](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L47)
249
-
250
- Gets the current value with optional dependency tracking.
251
-
252
- #### Parameters
253
-
254
- | Parameter | Type | Description |
255
- | ------ | ------ | ------ |
256
- | `context` | [`TrackingContext`](/api/classes/TrackingContext.md) \| `null` | The tracking context for reactive tracking, or null for untracked access. When a context is provided, this observable is registered as a dependency. When null, the value is read without any tracking. |
257
-
258
- #### Returns
259
-
260
- `Map`
261
-
262
- The current value of type T.
263
-
264
- #### Remarks
265
-
266
- Use `get(t)` within effects and derivations to create reactive dependencies.
267
- Use `get(null)` when you need to read a value without tracking (though `pick()` is more idiomatic).
268
-
269
- #### Example
270
-
271
- ```typescript
272
- effect((t) => {
273
- const tracked = $state.get(t); // Dependency registered
274
- const untracked = $other.get(null); // No dependency
275
- });
276
- ```
277
-
278
- #### Inherited from
279
-
280
- [`FlowState`](/api/classes/FlowState.md).[`get`](/api/classes/FlowState.md#get)
281
-
282
- ***
283
-
284
- ### pick()
285
-
286
- ```ts
287
- pick(): Map;
288
- ```
289
-
290
- Defined in: [basic/observable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L82)
291
-
292
- Gets the current value without any dependency tracking.
293
-
294
- #### Returns
295
-
296
- `Map`
297
-
298
- The current value of type T.
299
-
300
- #### Remarks
301
-
302
- This method is equivalent to calling `get(null)` but provides a more semantic and readable API.
303
- Use `pick()` when you want to read a snapshot of the current value without creating a reactive
304
- dependency. This is useful for:
305
- - Reading initial values
306
- - Accessing configuration that shouldn't trigger updates
307
- - Mixing tracked and untracked reads in the same effect
308
-
309
- #### Example
310
-
311
- ```typescript
312
- // Read a snapshot outside reactive context
313
- const currentValue = $state.pick();
314
-
315
- // Mix tracked and untracked reads
316
- effect((t) => {
317
- const tracked = $reactive.get(t); // Triggers re-runs
318
- const snapshot = $config.pick(); // Doesn't trigger re-runs
319
- processData(tracked, snapshot);
320
- });
321
- ```
322
-
323
- #### Inherited from
324
-
325
- [`FlowState`](/api/classes/FlowState.md).[`pick`](/api/classes/FlowState.md#pick)
326
-
327
- ***
328
-
329
- ### set()
330
-
331
- ```ts
332
- set(value): void;
333
- ```
334
-
335
- Defined in: [basic/state.ts:46](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/state.ts#L46)
336
-
337
- Updates the state with a new value.
338
-
339
- #### Parameters
340
-
341
- | Parameter | Type | Description |
342
- | ------ | ------ | ------ |
343
- | `value` | `Map`\<`K`, `V`\> \| (`current`) => `Map` | A new value or a callback function that computes a new value based on the current state. |
344
-
345
- #### Returns
346
-
347
- `void`
348
-
349
- #### Remarks
350
-
351
- If the computed new value is strictly equal to the current state value, no change is made and subscribers
352
- will not be notified. Otherwise, the state is updated and all subscribers are informed of the change.
353
-
354
- #### Throws
355
-
356
- Error if the state has been disposed.
357
-
358
- #### Inherited from
359
-
360
- [`FlowState`](/api/classes/FlowState.md).[`set`](/api/classes/FlowState.md#set)
361
-
362
- ***
363
-
364
- ### subscribe()
365
-
366
- ```ts
367
- subscribe(listener): () => void;
368
- ```
369
-
370
- Defined in: [basic/observable.ts:103](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L103)
371
-
372
- Subscribes a listener function to changes of the observable.
373
- The listener is executed immediately with the current value and on subsequent updates.
374
-
375
- #### Parameters
376
-
377
- | Parameter | Type | Description |
378
- | ------ | ------ | ------ |
379
- | `listener` | (`value`) => `void` | A callback function that receives the new value. |
380
-
381
- #### Returns
382
-
383
- A disposer function to cancel the subscription.
384
-
385
- ```ts
386
- (): void;
387
- ```
388
-
389
- ##### Returns
390
-
391
- `void`
392
-
393
- #### Inherited from
394
-
395
- [`FlowState`](/api/classes/FlowState.md).[`subscribe`](/api/classes/FlowState.md#subscribe)
396
-
397
- ***
398
-
399
- ### trigger()
400
-
401
- ```ts
402
- trigger(): void;
403
- ```
404
-
405
- Defined in: [basic/signal.ts:19](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L19)
406
-
407
- Triggers the FlowSignal.
408
- Notifies all registered listeners and schedules execution of associated effects.
409
-
410
- #### Returns
411
-
412
- `void`
413
-
414
- #### Throws
415
-
416
- If the FlowSignal has already been disposed.
417
-
418
- #### Inherited from
419
-
420
- [`FlowState`](/api/classes/FlowState.md).[`trigger`](/api/classes/FlowState.md#trigger)
421
-
422
- ***
423
-
424
- ### update()
425
-
426
- ```ts
427
- update(key, value): void;
428
- ```
429
-
430
- Defined in: [advanced/map.ts:147](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/map.ts#L147)
431
-
432
- Updates an existing key-value pair in the map.
433
-
434
- #### Parameters
435
-
436
- | Parameter | Type | Description |
437
- | ------ | ------ | ------ |
438
- | `key` | `K` | The key to update. |
439
- | `value` | `V` | The new value to associate with the key. |
440
-
441
- #### Returns
442
-
443
- `void`
444
-
445
- #### Throws
446
-
447
- If the FlowMap instance is disposed.
448
-
449
- #### Throws
450
-
451
- If the key does not exist in the map.
452
-
453
- #### Remarks
454
-
455
- Updates an existing entry in the internal map, emits the key-value pair via [FlowMap.$lastUpdated](/api/classes/FlowMap.md#lastupdated),
456
- and notifies all subscribers of the change.
457
-
458
- ***
459
-
460
- ### watch()
461
-
462
- ```ts
463
- watch(context): void;
464
- ```
465
-
466
- Defined in: [basic/signal.ts:57](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L57)
467
-
468
- Watches the signal, registering it as a dependency in the tracking context.
469
-
470
- #### Parameters
471
-
472
- | Parameter | Type | Description |
473
- | ------ | ------ | ------ |
474
- | `context` | [`TrackingContext`](/api/classes/TrackingContext.md) | The tracking context in which to register this signal as a dependency. |
475
-
476
- #### Returns
477
-
478
- `void`
479
-
480
- #### Remarks
481
-
482
- Use `watch()` when you want to track a signal without reading its value (signals don't
483
- have values to read). This is useful for triggering effects based on signal events
484
- without needing associated data.
485
-
486
- When the signal is triggered via `trigger()`, any effects or derivations that have
487
- watched this signal will automatically re-execute.
488
-
489
- This method must be called within an effect or derivation context where a TrackingContext
490
- is available. For observables (which hold values), use `.get(t)` instead, which both
491
- reads the value and watches for changes.
492
-
493
- #### Throws
494
-
495
- Error if the signal has been disposed.
496
-
497
- #### Example
498
-
499
- ```typescript
500
- const $signal = signal();
501
-
502
- effect((t) => {
503
- $signal.watch(t); // Track the signal
504
- console.log('Signal triggered!');
505
- });
506
-
507
- $signal.trigger(); // Logs: "Signal triggered!"
508
- ```
509
-
510
- #### Inherited from
511
-
512
- [`FlowState`](/api/classes/FlowState.md).[`watch`](/api/classes/FlowState.md#watch)