@ersbeth/picoflow 1.1.1 → 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.
- package/.vscode/settings.json +3 -3
- package/CHANGELOG.md +43 -0
- package/README.md +2 -18
- package/biome.json +45 -35
- package/dist/picoflow.js +857 -1528
- package/dist/types/api/base/flowDisposable.d.ts +41 -0
- package/dist/types/api/base/flowDisposable.d.ts.map +1 -0
- package/dist/types/api/base/flowObservable.d.ts +27 -0
- package/dist/types/api/base/flowObservable.d.ts.map +1 -0
- package/dist/types/api/base/flowSubscribable.d.ts +79 -0
- package/dist/types/api/base/flowSubscribable.d.ts.map +1 -0
- package/dist/types/api/base/flowTracker.d.ts +8 -0
- package/dist/types/api/base/flowTracker.d.ts.map +1 -0
- package/dist/types/api/base/index.d.ts +5 -0
- package/dist/types/api/base/index.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +3 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowConstantAsync.d.ts +31 -0
- package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +37 -0
- package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowStateAsync.d.ts +41 -0
- package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +30 -0
- package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -0
- package/dist/types/{flow → api}/nodes/async/index.d.ts +1 -2
- package/dist/types/api/nodes/async/index.d.ts.map +1 -0
- package/dist/types/api/nodes/collections/flowArray.d.ts +134 -0
- package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -0
- package/dist/types/api/nodes/collections/flowMap.d.ts +98 -0
- package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -0
- package/dist/types/api/nodes/collections/index.d.ts.map +1 -0
- package/dist/types/api/nodes/flowEffect.d.ts +28 -0
- package/dist/types/api/nodes/flowEffect.d.ts.map +1 -0
- package/dist/types/api/nodes/flowSignal.d.ts +25 -0
- package/dist/types/api/nodes/flowSignal.d.ts.map +1 -0
- package/dist/types/api/nodes/flowValue.d.ts +35 -0
- package/dist/types/api/nodes/flowValue.d.ts.map +1 -0
- package/dist/types/api/nodes/index.d.ts +8 -0
- package/dist/types/api/nodes/index.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowConstant.d.ts +29 -0
- package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowDerivation.d.ts +36 -0
- package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowState.d.ts +39 -0
- package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +28 -0
- package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -0
- package/dist/types/{flow → api}/nodes/sync/index.d.ts +1 -2
- package/dist/types/api/nodes/sync/index.d.ts.map +1 -0
- package/dist/types/api/nodes/utils.d.ts +22 -0
- package/dist/types/api/nodes/utils.d.ts.map +1 -0
- package/dist/types/base/disposable.d.ts +11 -0
- package/dist/types/base/disposable.d.ts.map +1 -0
- package/dist/types/base/executionStack.d.ts +14 -0
- package/dist/types/base/executionStack.d.ts.map +1 -0
- package/dist/types/base/index.d.ts +6 -0
- package/dist/types/base/index.d.ts.map +1 -0
- package/dist/types/base/node.d.ts +27 -0
- package/dist/types/base/node.d.ts.map +1 -0
- package/dist/types/base/observable.d.ts +37 -0
- package/dist/types/base/observable.d.ts.map +1 -0
- package/dist/types/base/observer.d.ts +25 -0
- package/dist/types/base/observer.d.ts.map +1 -0
- package/dist/types/converters/index.d.ts +2 -0
- package/dist/types/converters/index.d.ts.map +1 -0
- package/dist/types/converters/solid.d.ts +46 -0
- package/dist/types/converters/solid.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -63
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/nodes/arrayNode.d.ts +2 -0
- package/dist/types/nodes/arrayNode.d.ts.map +1 -0
- package/dist/types/nodes/effectNode.d.ts +2 -0
- package/dist/types/nodes/effectNode.d.ts.map +1 -0
- package/dist/types/nodes/index.d.ts +9 -0
- package/dist/types/nodes/index.d.ts.map +1 -0
- package/dist/types/nodes/mapNode.d.ts +2 -0
- package/dist/types/nodes/mapNode.d.ts.map +1 -0
- package/dist/types/nodes/signalNode.d.ts +2 -0
- package/dist/types/nodes/signalNode.d.ts.map +1 -0
- package/dist/types/nodes/valueAsyncNode.d.ts +2 -0
- package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -0
- package/dist/types/nodes/valueNode.d.ts +2 -0
- package/dist/types/nodes/valueNode.d.ts.map +1 -0
- package/dist/types/nodes/valueSyncNode.d.ts +2 -0
- package/dist/types/nodes/valueSyncNode.d.ts.map +1 -0
- package/dist/types/schedulers/asyncResolver.d.ts +2 -0
- package/dist/types/schedulers/asyncResolver.d.ts.map +1 -0
- package/dist/types/schedulers/asyncScheduler.d.ts +2 -0
- package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -0
- package/dist/types/schedulers/index.d.ts +5 -0
- package/dist/types/schedulers/index.d.ts.map +1 -0
- package/dist/types/schedulers/pendingError.d.ts +2 -0
- package/dist/types/schedulers/pendingError.d.ts.map +1 -0
- package/dist/types/schedulers/scheduler.d.ts +2 -0
- package/dist/types/schedulers/scheduler.d.ts.map +1 -0
- package/dist/types/schedulers/syncResolver.d.ts +2 -0
- package/dist/types/schedulers/syncResolver.d.ts.map +1 -0
- package/dist/types/schedulers/syncScheduler.d.ts +2 -0
- package/dist/types/schedulers/syncScheduler.d.ts.map +1 -0
- package/docs/.vitepress/config.mts +128 -93
- package/docs/api/functions/array.md +14 -37
- package/docs/api/functions/constant.md +13 -25
- package/docs/api/functions/constantAsync.md +69 -0
- package/docs/api/functions/derivation.md +14 -33
- package/docs/api/functions/derivationAsync.md +34 -0
- package/docs/api/functions/from.md +62 -153
- package/docs/api/functions/isDisposable.md +8 -30
- package/docs/api/functions/map.md +15 -36
- package/docs/api/functions/signal.md +8 -23
- package/docs/api/functions/state.md +43 -23
- package/docs/api/functions/stateAsync.md +69 -0
- package/docs/api/functions/subscribe.md +40 -0
- package/docs/api/functions/writableDerivation.md +33 -0
- package/docs/api/functions/writableDerivationAsync.md +34 -0
- package/docs/api/index.md +45 -102
- package/docs/api/interfaces/FlowArray.md +439 -0
- package/docs/api/interfaces/FlowConstant.md +220 -0
- package/docs/api/interfaces/FlowConstantAsync.md +221 -0
- package/docs/api/interfaces/FlowDerivation.md +241 -0
- package/docs/api/interfaces/FlowDerivationAsync.md +242 -0
- package/docs/api/interfaces/FlowDisposable.md +32 -38
- package/docs/api/interfaces/FlowEffect.md +64 -0
- package/docs/api/interfaces/FlowMap.md +374 -0
- package/docs/api/interfaces/FlowObservable.md +155 -0
- package/docs/api/interfaces/FlowSignal.md +156 -0
- package/docs/api/interfaces/FlowState.md +269 -0
- package/docs/api/interfaces/FlowStateAsync.md +268 -0
- package/docs/api/interfaces/FlowSubscribable.md +55 -0
- package/docs/api/interfaces/FlowTracker.md +61 -0
- package/docs/api/interfaces/FlowValue.md +222 -0
- package/docs/api/interfaces/FlowWritableDerivation.md +292 -0
- package/docs/api/interfaces/FlowWritableDerivationAsync.md +293 -0
- package/docs/api/type-aliases/DerivationFunction.md +28 -0
- package/docs/api/type-aliases/DerivationFunctionAsync.md +28 -0
- package/docs/api/type-aliases/FlowArrayAction.md +19 -8
- package/docs/api/type-aliases/FlowDataTracker.md +33 -0
- package/docs/api/type-aliases/FlowMapAction.md +48 -0
- package/docs/api/type-aliases/FlowOnDataListener.md +33 -0
- package/docs/api/type-aliases/FlowOnErrorListener.md +27 -0
- package/docs/api/type-aliases/FlowOnPendingListener.md +21 -0
- package/docs/api/type-aliases/FlowReadonly.md +22 -0
- package/docs/api/type-aliases/InitFunction.md +21 -0
- package/docs/api/type-aliases/InitFunctionAsync.md +21 -0
- package/docs/api/type-aliases/NotPromise.md +6 -3
- package/docs/api/type-aliases/UpdateFunction.md +27 -0
- package/docs/api/type-aliases/UpdateFunctionAsync.md +27 -0
- package/docs/api/typedoc-sidebar.json +1 -81
- package/docs/examples/examples.md +0 -2
- package/docs/guide/advanced/architecture.md +1234 -0
- package/docs/guide/advanced/migration-v2.md +204 -0
- package/docs/guide/advanced/solidjs.md +2 -88
- package/docs/guide/introduction/concepts.md +4 -3
- package/docs/guide/introduction/conventions.md +2 -33
- package/docs/guide/introduction/getting-started.md +28 -23
- package/docs/guide/introduction/lifecycle.md +16 -19
- package/docs/guide/primitives/array.md +102 -216
- package/docs/guide/primitives/constant.md +39 -212
- package/docs/guide/primitives/derivations.md +55 -122
- package/docs/guide/primitives/effects.md +155 -241
- package/docs/guide/primitives/map.md +64 -186
- package/docs/guide/primitives/overview.md +45 -128
- package/docs/guide/primitives/signal.md +51 -88
- package/docs/guide/primitives/state.md +34 -130
- package/package.json +56 -60
- package/src/api/base/flowDisposable.ts +44 -0
- package/src/api/base/flowObservable.ts +28 -0
- package/src/api/base/flowSubscribable.ts +87 -0
- package/src/api/base/flowTracker.ts +7 -0
- package/src/api/base/index.ts +4 -0
- package/src/{flow → api}/index.ts +0 -1
- package/src/api/nodes/async/flowConstantAsync.ts +36 -0
- package/src/api/nodes/async/flowDerivationAsync.ts +42 -0
- package/src/api/nodes/async/flowStateAsync.ts +47 -0
- package/src/api/nodes/async/flowWritableDerivationAsync.ts +33 -0
- package/src/{flow → api}/nodes/async/index.ts +1 -2
- package/src/api/nodes/collections/flowArray.ts +155 -0
- package/src/api/nodes/collections/flowMap.ts +115 -0
- package/src/api/nodes/flowEffect.ts +42 -0
- package/src/api/nodes/flowSignal.ts +28 -0
- package/src/api/nodes/flowValue.ts +36 -0
- package/src/api/nodes/index.ts +7 -0
- package/src/api/nodes/sync/flowConstant.ts +33 -0
- package/src/api/nodes/sync/flowDerivation.ts +41 -0
- package/src/api/nodes/sync/flowState.ts +45 -0
- package/src/api/nodes/sync/flowWritableDerivation.ts +31 -0
- package/src/{flow → api}/nodes/sync/index.ts +1 -2
- package/src/api/nodes/utils.ts +22 -0
- package/src/base/disposable.ts +18 -0
- package/src/base/executionStack.ts +42 -0
- package/src/base/index.ts +5 -0
- package/src/base/node.ts +98 -0
- package/src/base/observable.ts +87 -0
- package/src/base/observer.ts +51 -0
- package/src/converters/index.ts +1 -0
- package/src/converters/solid.ts +109 -0
- package/src/index.ts +2 -64
- package/src/nodes/arrayNode.ts +172 -0
- package/src/nodes/effectNode.ts +59 -0
- package/src/nodes/index.ts +8 -0
- package/src/nodes/mapNode.ts +127 -0
- package/src/nodes/signalNode.ts +21 -0
- package/src/nodes/valueAsyncNode.ts +88 -0
- package/src/nodes/valueNode.ts +144 -0
- package/src/nodes/valueSyncNode.ts +128 -0
- package/src/schedulers/asyncResolver.ts +78 -0
- package/src/schedulers/asyncScheduler.ts +66 -0
- package/src/schedulers/index.ts +4 -0
- package/src/schedulers/pendingError.ts +13 -0
- package/src/schedulers/scheduler.ts +9 -0
- package/src/schedulers/syncResolver.ts +69 -0
- package/src/schedulers/syncScheduler.ts +55 -0
- package/test/base/pendingError.test.ts +67 -0
- package/test/converters/solid.derivation.browser.test.tsx +69 -0
- package/test/converters/solid.node.test.ts +654 -0
- package/test/converters/solid.state.browser.test.tsx +1592 -0
- package/test/reactivity/flowSignal.test.ts +226 -0
- package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +593 -0
- package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +317 -0
- package/test/reactivity/nodes/async/flowConstantAsync.test.ts +652 -0
- package/test/reactivity/nodes/async/flowDerivation.test.ts +898 -0
- package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +1716 -0
- package/test/reactivity/nodes/async/flowStateAsync.test.ts +708 -0
- package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +614 -0
- package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +1289 -0
- package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +961 -0
- package/test/reactivity/nodes/collections/flowArray.states.test.ts +1035 -0
- package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +960 -0
- package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +775 -0
- package/test/reactivity/nodes/collections/flowMap.states.test.ts +958 -0
- package/test/reactivity/nodes/sync/flowConstant.test.ts +377 -0
- package/test/reactivity/nodes/sync/flowDerivation.test.ts +896 -0
- package/test/reactivity/nodes/sync/flowState.test.ts +341 -0
- package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +603 -0
- package/test/vitest.d.ts +10 -0
- package/tsconfig.json +31 -20
- package/typedoc.json +35 -35
- package/vite.config.ts +25 -23
- package/vitest.browser.config.ts +21 -0
- package/vitest.config.ts +12 -12
- package/.cursor/plans/unifier-flowresource-avec-flowderivation-c9506e24.plan.md +0 -372
- package/.cursor/plans/update-js-e795d61b.plan.md +0 -567
- package/dist/types/flow/base/flowDisposable.d.ts +0 -67
- package/dist/types/flow/base/flowDisposable.d.ts.map +0 -1
- package/dist/types/flow/base/flowEffect.d.ts +0 -127
- package/dist/types/flow/base/flowEffect.d.ts.map +0 -1
- package/dist/types/flow/base/flowGraph.d.ts +0 -97
- package/dist/types/flow/base/flowGraph.d.ts.map +0 -1
- package/dist/types/flow/base/flowSignal.d.ts +0 -134
- package/dist/types/flow/base/flowSignal.d.ts.map +0 -1
- package/dist/types/flow/base/flowTracker.d.ts +0 -15
- package/dist/types/flow/base/flowTracker.d.ts.map +0 -1
- package/dist/types/flow/base/index.d.ts +0 -7
- package/dist/types/flow/base/index.d.ts.map +0 -1
- package/dist/types/flow/base/utils.d.ts +0 -20
- package/dist/types/flow/base/utils.d.ts.map +0 -1
- package/dist/types/flow/collections/flowArray.d.ts +0 -148
- package/dist/types/flow/collections/flowArray.d.ts.map +0 -1
- package/dist/types/flow/collections/flowMap.d.ts +0 -224
- package/dist/types/flow/collections/flowMap.d.ts.map +0 -1
- package/dist/types/flow/collections/index.d.ts.map +0 -1
- package/dist/types/flow/index.d.ts +0 -4
- package/dist/types/flow/index.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowConstantAsync.d.ts +0 -137
- package/dist/types/flow/nodes/async/flowConstantAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts +0 -137
- package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowNodeAsync.d.ts +0 -343
- package/dist/types/flow/nodes/async/flowNodeAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts +0 -81
- package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowStateAsync.d.ts +0 -111
- package/dist/types/flow/nodes/async/flowStateAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/index.d.ts.map +0 -1
- package/dist/types/flow/nodes/index.d.ts +0 -3
- package/dist/types/flow/nodes/index.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowConstant.d.ts +0 -108
- package/dist/types/flow/nodes/sync/flowConstant.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowDerivation.d.ts +0 -100
- package/dist/types/flow/nodes/sync/flowDerivation.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowNode.d.ts +0 -314
- package/dist/types/flow/nodes/sync/flowNode.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowReadonly.d.ts +0 -57
- package/dist/types/flow/nodes/sync/flowReadonly.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowState.d.ts +0 -96
- package/dist/types/flow/nodes/sync/flowState.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/index.d.ts.map +0 -1
- package/dist/types/solid/converters.d.ts +0 -53
- package/dist/types/solid/converters.d.ts.map +0 -1
- package/dist/types/solid/index.d.ts +0 -3
- package/dist/types/solid/index.d.ts.map +0 -1
- package/dist/types/solid/primitives.d.ts +0 -181
- package/dist/types/solid/primitives.d.ts.map +0 -1
- package/docs/api/classes/FlowArray.md +0 -489
- package/docs/api/classes/FlowConstant.md +0 -350
- package/docs/api/classes/FlowDerivation.md +0 -334
- package/docs/api/classes/FlowEffect.md +0 -100
- package/docs/api/classes/FlowMap.md +0 -512
- package/docs/api/classes/FlowObservable.md +0 -306
- package/docs/api/classes/FlowResource.md +0 -380
- package/docs/api/classes/FlowResourceAsync.md +0 -362
- package/docs/api/classes/FlowSignal.md +0 -160
- package/docs/api/classes/FlowState.md +0 -368
- package/docs/api/classes/FlowStream.md +0 -367
- package/docs/api/classes/FlowStreamAsync.md +0 -364
- package/docs/api/classes/SolidDerivation.md +0 -75
- package/docs/api/classes/SolidResource.md +0 -91
- package/docs/api/classes/SolidState.md +0 -71
- package/docs/api/classes/TrackingContext.md +0 -33
- package/docs/api/functions/effect.md +0 -49
- package/docs/api/functions/resource.md +0 -52
- package/docs/api/functions/resourceAsync.md +0 -50
- package/docs/api/functions/stream.md +0 -53
- package/docs/api/functions/streamAsync.md +0 -50
- package/docs/api/interfaces/SolidObservable.md +0 -19
- package/docs/api/type-aliases/FlowStreamDisposer.md +0 -15
- package/docs/api/type-aliases/FlowStreamSetter.md +0 -27
- package/docs/api/type-aliases/FlowStreamUpdater.md +0 -32
- package/docs/api/type-aliases/SolidGetter.md +0 -17
- package/docs/guide/primitives/resources.md +0 -858
- package/docs/guide/primitives/streams.md +0 -931
- package/src/flow/base/flowDisposable.ts +0 -71
- package/src/flow/base/flowEffect.ts +0 -171
- package/src/flow/base/flowGraph.ts +0 -288
- package/src/flow/base/flowSignal.ts +0 -207
- package/src/flow/base/flowTracker.ts +0 -17
- package/src/flow/base/index.ts +0 -6
- package/src/flow/base/utils.ts +0 -19
- package/src/flow/collections/flowArray.ts +0 -409
- package/src/flow/collections/flowMap.ts +0 -398
- package/src/flow/nodes/async/flowConstantAsync.ts +0 -142
- package/src/flow/nodes/async/flowDerivationAsync.ts +0 -143
- package/src/flow/nodes/async/flowNodeAsync.ts +0 -474
- package/src/flow/nodes/async/flowReadonlyAsync.ts +0 -81
- package/src/flow/nodes/async/flowStateAsync.ts +0 -116
- package/src/flow/nodes/await/advanced/index.ts +0 -5
- package/src/flow/nodes/await/advanced/resource.ts +0 -134
- package/src/flow/nodes/await/advanced/resourceAsync.ts +0 -109
- package/src/flow/nodes/await/advanced/stream.ts +0 -188
- package/src/flow/nodes/await/advanced/streamAsync.ts +0 -176
- package/src/flow/nodes/await/flowConstantAwait.ts +0 -154
- package/src/flow/nodes/await/flowDerivationAwait.ts +0 -154
- package/src/flow/nodes/await/flowNodeAwait.ts +0 -508
- package/src/flow/nodes/await/flowReadonlyAwait.ts +0 -89
- package/src/flow/nodes/await/flowStateAwait.ts +0 -130
- package/src/flow/nodes/await/index.ts +0 -5
- package/src/flow/nodes/index.ts +0 -3
- package/src/flow/nodes/sync/flowConstant.ts +0 -111
- package/src/flow/nodes/sync/flowDerivation.ts +0 -105
- package/src/flow/nodes/sync/flowNode.ts +0 -439
- package/src/flow/nodes/sync/flowReadonly.ts +0 -57
- package/src/flow/nodes/sync/flowState.ts +0 -101
- package/src/solid/converters.ts +0 -139
- package/src/solid/index.ts +0 -2
- package/src/solid/primitives.ts +0 -215
- package/test/base/flowEffect.test.ts +0 -108
- package/test/base/flowGraph.test.ts +0 -485
- package/test/base/flowSignal.test.ts +0 -372
- package/test/collections/flowArray.asyncStates.test.ts +0 -1553
- package/test/collections/flowArray.scalars.test.ts +0 -1129
- package/test/collections/flowArray.states.test.ts +0 -1365
- package/test/collections/flowMap.asyncStates.test.ts +0 -1105
- package/test/collections/flowMap.scalars.test.ts +0 -877
- package/test/collections/flowMap.states.test.ts +0 -1097
- package/test/nodes/async/flowConstantAsync.test.ts +0 -860
- package/test/nodes/async/flowDerivationAsync.test.ts +0 -1517
- package/test/nodes/async/flowStateAsync.test.ts +0 -1387
- package/test/nodes/await/advanced/resource.test.ts +0 -129
- package/test/nodes/await/advanced/resourceAsync.test.ts +0 -108
- package/test/nodes/await/advanced/stream.test.ts +0 -198
- package/test/nodes/await/advanced/streamAsync.test.ts +0 -196
- package/test/nodes/await/flowConstantAwait.test.ts +0 -643
- package/test/nodes/await/flowDerivationAwait.test.ts +0 -1583
- package/test/nodes/await/flowStateAwait.test.ts +0 -999
- package/test/nodes/mixed/derivation.test.ts +0 -1527
- package/test/nodes/sync/flowConstant.test.ts +0 -620
- package/test/nodes/sync/flowDerivation.test.ts +0 -1373
- package/test/nodes/sync/flowState.test.ts +0 -945
- package/test/solid/converters.test.ts +0 -721
- package/test/solid/primitives.test.ts +0 -1031
- /package/dist/types/{flow → api/nodes}/collections/index.d.ts +0 -0
- /package/docs/guide/advanced/{upgrading.md → migration-v1.md} +0 -0
- /package/src/{flow → api/nodes}/collections/index.ts +0 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowMap
|
|
2
|
+
|
|
3
|
+
# Interface: FlowMap\<K, V\>
|
|
4
|
+
|
|
5
|
+
Defined in: [api/nodes/collections/flowMap.ts:52](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L52)
|
|
6
|
+
|
|
7
|
+
Reactive map with standard mutation methods and fine-grained change tracking.
|
|
8
|
+
|
|
9
|
+
FlowMap behaves like a regular Map but notifies dependents on mutations. It provides standard
|
|
10
|
+
map operations (add, update, delete) and tracks each operation via the `$lastAction` signal.
|
|
11
|
+
This enables both coarse-grained reactivity (reacting to any change) and fine-grained reactivity
|
|
12
|
+
(reacting only to specific mutations). Use for key-value collections that need reactive updates,
|
|
13
|
+
such as entity stores, lookup tables, or any map-based data that changes over time.
|
|
14
|
+
|
|
15
|
+
## Extends
|
|
16
|
+
|
|
17
|
+
- [`FlowState`](/api/interfaces/FlowState.md)\<`Map`\<`K`, `V`\>\>
|
|
18
|
+
|
|
19
|
+
## Type Parameters
|
|
20
|
+
|
|
21
|
+
| Type Parameter |
|
|
22
|
+
| ------ |
|
|
23
|
+
| `K` |
|
|
24
|
+
| `V` |
|
|
25
|
+
|
|
26
|
+
## Properties
|
|
27
|
+
|
|
28
|
+
| Property | Type | Description | Defined in |
|
|
29
|
+
| ------ | ------ | ------ | ------ |
|
|
30
|
+
| <a id="lastaction"></a> `$lastAction` | [`FlowState`](/api/interfaces/FlowState.md)\<[`FlowMapAction`](/api/type-aliases/FlowMapAction.md)\<`K`, `V`\>\> | Reactive state containing the last mutation operation performed on the map. Subscribe to this for fine-grained reactivity to specific mutation types. | [api/nodes/collections/flowMap.ts:93](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L93) |
|
|
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
|
+
### add()
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
add(key, value): void;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Defined in: [api/nodes/collections/flowMap.ts:79](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L79)
|
|
66
|
+
|
|
67
|
+
Adds a new key-value pair to the map.
|
|
68
|
+
Emits an "add" action to $lastAction.
|
|
69
|
+
|
|
70
|
+
#### Parameters
|
|
71
|
+
|
|
72
|
+
| Parameter | Type | Description |
|
|
73
|
+
| ------ | ------ | ------ |
|
|
74
|
+
| `key` | `K` | The key to add (must not exist) |
|
|
75
|
+
| `value` | `V` | The value to associate with the key |
|
|
76
|
+
|
|
77
|
+
#### Returns
|
|
78
|
+
|
|
79
|
+
`void`
|
|
80
|
+
|
|
81
|
+
***
|
|
82
|
+
|
|
83
|
+
### clear()
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
clear(): Map<K, V>;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Defined in: [api/nodes/collections/flowMap.ts:87](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L87)
|
|
90
|
+
|
|
91
|
+
Removes all entries from the map.
|
|
92
|
+
Emits a "clear" action to $lastAction.
|
|
93
|
+
|
|
94
|
+
#### Returns
|
|
95
|
+
|
|
96
|
+
`Map`\<`K`, `V`\>
|
|
97
|
+
|
|
98
|
+
Map of all removed entries
|
|
99
|
+
|
|
100
|
+
***
|
|
101
|
+
|
|
102
|
+
### delete()
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
delete(key): V;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Defined in: [api/nodes/collections/flowMap.ts:60](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L60)
|
|
109
|
+
|
|
110
|
+
Removes a key-value pair from the map.
|
|
111
|
+
Emits a "delete" action to $lastAction.
|
|
112
|
+
|
|
113
|
+
#### Parameters
|
|
114
|
+
|
|
115
|
+
| Parameter | Type | Description |
|
|
116
|
+
| ------ | ------ | ------ |
|
|
117
|
+
| `key` | `K` | The key to delete |
|
|
118
|
+
|
|
119
|
+
#### Returns
|
|
120
|
+
|
|
121
|
+
`V`
|
|
122
|
+
|
|
123
|
+
The deleted value
|
|
124
|
+
|
|
125
|
+
***
|
|
126
|
+
|
|
127
|
+
### dispose()
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
dispose(): void;
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
|
|
134
|
+
|
|
135
|
+
Releases all resources held by this disposable object.
|
|
136
|
+
|
|
137
|
+
Cleans up all subscriptions, dependencies, and internal state. After calling this method,
|
|
138
|
+
the resource enters a disposed state and cannot be reused. Any subsequent operations will
|
|
139
|
+
throw errors. This method should be called when you no longer need the reactive primitive
|
|
140
|
+
to prevent memory leaks.
|
|
141
|
+
|
|
142
|
+
#### Returns
|
|
143
|
+
|
|
144
|
+
`void`
|
|
145
|
+
|
|
146
|
+
#### Inherited from
|
|
147
|
+
|
|
148
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`dispose`](/api/interfaces/FlowState.md#dispose)
|
|
149
|
+
|
|
150
|
+
***
|
|
151
|
+
|
|
152
|
+
### get()
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
get(tracker): Map;
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Defined in: [api/nodes/flowValue.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L24)
|
|
159
|
+
|
|
160
|
+
Gets the current value and establishes a reactive dependency.
|
|
161
|
+
|
|
162
|
+
When called from within a reactive computation, this method registers the value as a dependency,
|
|
163
|
+
ensuring the computation re-executes when the value changes. The value is computed on first access
|
|
164
|
+
(if lazy) and then cached. For async values, throws PendingError while the value is resolving.
|
|
165
|
+
|
|
166
|
+
#### Parameters
|
|
167
|
+
|
|
168
|
+
| Parameter | Type | Description |
|
|
169
|
+
| ------ | ------ | ------ |
|
|
170
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this value as a dependency |
|
|
171
|
+
|
|
172
|
+
#### Returns
|
|
173
|
+
|
|
174
|
+
`Map`
|
|
175
|
+
|
|
176
|
+
The current value
|
|
177
|
+
|
|
178
|
+
#### Inherited from
|
|
179
|
+
|
|
180
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`get`](/api/interfaces/FlowState.md#get)
|
|
181
|
+
|
|
182
|
+
***
|
|
183
|
+
|
|
184
|
+
### pick()
|
|
185
|
+
|
|
186
|
+
```ts
|
|
187
|
+
pick(): Promise<Map<K, V>>;
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Defined in: [api/nodes/flowValue.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L35)
|
|
191
|
+
|
|
192
|
+
Asynchronously gets the current value without establishing a reactive dependency.
|
|
193
|
+
|
|
194
|
+
This method reads the value non-reactively, meaning it won't trigger re-execution of the calling
|
|
195
|
+
computation when the value changes. The value is computed on first access (if lazy) and then cached.
|
|
196
|
+
For async values, the promise resolves once the value is available.
|
|
197
|
+
|
|
198
|
+
#### Returns
|
|
199
|
+
|
|
200
|
+
`Promise`\<`Map`\<`K`, `V`\>\>
|
|
201
|
+
|
|
202
|
+
Promise that resolves with the current value
|
|
203
|
+
|
|
204
|
+
#### Inherited from
|
|
205
|
+
|
|
206
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`pick`](/api/interfaces/FlowState.md#pick)
|
|
207
|
+
|
|
208
|
+
***
|
|
209
|
+
|
|
210
|
+
### set()
|
|
211
|
+
|
|
212
|
+
#### Call Signature
|
|
213
|
+
|
|
214
|
+
```ts
|
|
215
|
+
set(value): void;
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Defined in: [api/nodes/sync/flowState.ts:25](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L25)
|
|
219
|
+
|
|
220
|
+
Updates the state with a new value or via an updater function.
|
|
221
|
+
Notifies all dependents after the update.
|
|
222
|
+
|
|
223
|
+
##### Parameters
|
|
224
|
+
|
|
225
|
+
| Parameter | Type | Description |
|
|
226
|
+
| ------ | ------ | ------ |
|
|
227
|
+
| `value` | `Map`\<`K`\> | New value to set, or function that receives current value and returns new value |
|
|
228
|
+
|
|
229
|
+
##### Returns
|
|
230
|
+
|
|
231
|
+
`void`
|
|
232
|
+
|
|
233
|
+
##### Inherited from
|
|
234
|
+
|
|
235
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`set`](/api/interfaces/FlowState.md#set)
|
|
236
|
+
|
|
237
|
+
#### Call Signature
|
|
238
|
+
|
|
239
|
+
```ts
|
|
240
|
+
set(updater): void;
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Defined in: [api/nodes/sync/flowState.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L26)
|
|
244
|
+
|
|
245
|
+
##### Parameters
|
|
246
|
+
|
|
247
|
+
| Parameter | Type |
|
|
248
|
+
| ------ | ------ |
|
|
249
|
+
| `updater` | [`UpdateFunction`](/api/type-aliases/UpdateFunction.md)\<`Map`\<`K`, `V`\>\> |
|
|
250
|
+
|
|
251
|
+
##### Returns
|
|
252
|
+
|
|
253
|
+
`void`
|
|
254
|
+
|
|
255
|
+
##### Inherited from
|
|
256
|
+
|
|
257
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`set`](/api/interfaces/FlowState.md#set)
|
|
258
|
+
|
|
259
|
+
***
|
|
260
|
+
|
|
261
|
+
### subscribe()
|
|
262
|
+
|
|
263
|
+
```ts
|
|
264
|
+
subscribe(
|
|
265
|
+
onData,
|
|
266
|
+
onError?,
|
|
267
|
+
onPending?): FlowEffect;
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
|
|
271
|
+
|
|
272
|
+
Subscribes to this observable with lifecycle callbacks.
|
|
273
|
+
|
|
274
|
+
Creates an active subscription that executes immediately and then re-executes whenever
|
|
275
|
+
the observable's dependencies change. The subscription remains active until the returned
|
|
276
|
+
disposal function is called. The `onData` callback receives the computed value, while
|
|
277
|
+
`onError` handles errors and `onPending` signals async operations in progress.
|
|
278
|
+
|
|
279
|
+
#### Parameters
|
|
280
|
+
|
|
281
|
+
| Parameter | Type | Description |
|
|
282
|
+
| ------ | ------ | ------ |
|
|
283
|
+
| `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`Map`\<`K`, `V`\>\> | Callback invoked with the computed data on each execution |
|
|
284
|
+
| `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
|
|
285
|
+
| `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
|
|
286
|
+
|
|
287
|
+
#### Returns
|
|
288
|
+
|
|
289
|
+
[`FlowEffect`](/api/interfaces/FlowEffect.md)
|
|
290
|
+
|
|
291
|
+
A function to dispose the subscription and stop receiving updates
|
|
292
|
+
|
|
293
|
+
#### Inherited from
|
|
294
|
+
|
|
295
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`subscribe`](/api/interfaces/FlowState.md#subscribe)
|
|
296
|
+
|
|
297
|
+
***
|
|
298
|
+
|
|
299
|
+
### trigger()
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
trigger(): void;
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
|
|
306
|
+
|
|
307
|
+
Manually triggers notifications to all dependents.
|
|
308
|
+
|
|
309
|
+
Forces all dependents of this observable to be notified and re-executed, even if the
|
|
310
|
+
value hasn't actually changed. Useful for imperatively triggering updates when the
|
|
311
|
+
reactive system cannot detect changes automatically.
|
|
312
|
+
|
|
313
|
+
#### Returns
|
|
314
|
+
|
|
315
|
+
`void`
|
|
316
|
+
|
|
317
|
+
#### Inherited from
|
|
318
|
+
|
|
319
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`trigger`](/api/interfaces/FlowState.md#trigger)
|
|
320
|
+
|
|
321
|
+
***
|
|
322
|
+
|
|
323
|
+
### update()
|
|
324
|
+
|
|
325
|
+
```ts
|
|
326
|
+
update(key, value): V | undefined;
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Defined in: [api/nodes/collections/flowMap.ts:70](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L70)
|
|
330
|
+
|
|
331
|
+
Updates an existing key-value pair in the map.
|
|
332
|
+
Emits an "update" action to $lastAction.
|
|
333
|
+
|
|
334
|
+
#### Parameters
|
|
335
|
+
|
|
336
|
+
| Parameter | Type | Description |
|
|
337
|
+
| ------ | ------ | ------ |
|
|
338
|
+
| `key` | `K` | The key to update (must exist) |
|
|
339
|
+
| `value` | `V` | The new value |
|
|
340
|
+
|
|
341
|
+
#### Returns
|
|
342
|
+
|
|
343
|
+
`V` \| `undefined`
|
|
344
|
+
|
|
345
|
+
The previous value
|
|
346
|
+
|
|
347
|
+
***
|
|
348
|
+
|
|
349
|
+
### watch()
|
|
350
|
+
|
|
351
|
+
```ts
|
|
352
|
+
watch(tracker): void;
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
|
|
356
|
+
|
|
357
|
+
Establishes a reactive dependency without reading the value.
|
|
358
|
+
|
|
359
|
+
Registers this observable as a dependency of the given tracker, allowing it to be notified
|
|
360
|
+
when changes occur. This enables dependency tracking without accessing the actual value.
|
|
361
|
+
|
|
362
|
+
#### Parameters
|
|
363
|
+
|
|
364
|
+
| Parameter | Type | Description |
|
|
365
|
+
| ------ | ------ | ------ |
|
|
366
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
|
|
367
|
+
|
|
368
|
+
#### Returns
|
|
369
|
+
|
|
370
|
+
`void`
|
|
371
|
+
|
|
372
|
+
#### Inherited from
|
|
373
|
+
|
|
374
|
+
[`FlowState`](/api/interfaces/FlowState.md).[`watch`](/api/interfaces/FlowState.md#watch)
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowObservable
|
|
2
|
+
|
|
3
|
+
# Interface: FlowObservable\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: [api/base/flowObservable.ts:9](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L9)
|
|
6
|
+
|
|
7
|
+
Contract for reactive primitives that emit changes and notify their dependents in the reactivity graph.
|
|
8
|
+
|
|
9
|
+
## Extends
|
|
10
|
+
|
|
11
|
+
- [`FlowDisposable`](/api/interfaces/FlowDisposable.md).[`FlowSubscribable`](/api/interfaces/FlowSubscribable.md)\<`T`\>
|
|
12
|
+
|
|
13
|
+
## Extended by
|
|
14
|
+
|
|
15
|
+
- [`FlowSignal`](/api/interfaces/FlowSignal.md)
|
|
16
|
+
- [`FlowValue`](/api/interfaces/FlowValue.md)
|
|
17
|
+
|
|
18
|
+
## Type Parameters
|
|
19
|
+
|
|
20
|
+
| Type Parameter |
|
|
21
|
+
| ------ |
|
|
22
|
+
| `T` |
|
|
23
|
+
|
|
24
|
+
## Accessors
|
|
25
|
+
|
|
26
|
+
### disposed
|
|
27
|
+
|
|
28
|
+
#### Get Signature
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
get disposed(): boolean;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
|
|
35
|
+
|
|
36
|
+
Indicates whether this resource has been disposed.
|
|
37
|
+
|
|
38
|
+
Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
|
|
39
|
+
the resource is no longer usable and any operations on it will throw errors.
|
|
40
|
+
|
|
41
|
+
##### Returns
|
|
42
|
+
|
|
43
|
+
`boolean`
|
|
44
|
+
|
|
45
|
+
#### Inherited from
|
|
46
|
+
|
|
47
|
+
[`FlowDisposable`](/api/interfaces/FlowDisposable.md).[`disposed`](/api/interfaces/FlowDisposable.md#disposed)
|
|
48
|
+
|
|
49
|
+
## Methods
|
|
50
|
+
|
|
51
|
+
### dispose()
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
dispose(): void;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
|
|
58
|
+
|
|
59
|
+
Releases all resources held by this disposable object.
|
|
60
|
+
|
|
61
|
+
Cleans up all subscriptions, dependencies, and internal state. After calling this method,
|
|
62
|
+
the resource enters a disposed state and cannot be reused. Any subsequent operations will
|
|
63
|
+
throw errors. This method should be called when you no longer need the reactive primitive
|
|
64
|
+
to prevent memory leaks.
|
|
65
|
+
|
|
66
|
+
#### Returns
|
|
67
|
+
|
|
68
|
+
`void`
|
|
69
|
+
|
|
70
|
+
#### Inherited from
|
|
71
|
+
|
|
72
|
+
[`FlowDisposable`](/api/interfaces/FlowDisposable.md).[`dispose`](/api/interfaces/FlowDisposable.md#dispose)
|
|
73
|
+
|
|
74
|
+
***
|
|
75
|
+
|
|
76
|
+
### subscribe()
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
subscribe(
|
|
80
|
+
onData,
|
|
81
|
+
onError?,
|
|
82
|
+
onPending?): FlowEffect;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
|
|
86
|
+
|
|
87
|
+
Subscribes to this observable with lifecycle callbacks.
|
|
88
|
+
|
|
89
|
+
Creates an active subscription that executes immediately and then re-executes whenever
|
|
90
|
+
the observable's dependencies change. The subscription remains active until the returned
|
|
91
|
+
disposal function is called. The `onData` callback receives the computed value, while
|
|
92
|
+
`onError` handles errors and `onPending` signals async operations in progress.
|
|
93
|
+
|
|
94
|
+
#### Parameters
|
|
95
|
+
|
|
96
|
+
| Parameter | Type | Description |
|
|
97
|
+
| ------ | ------ | ------ |
|
|
98
|
+
| `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
|
|
99
|
+
| `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
|
|
100
|
+
| `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
|
|
101
|
+
|
|
102
|
+
#### Returns
|
|
103
|
+
|
|
104
|
+
[`FlowEffect`](/api/interfaces/FlowEffect.md)
|
|
105
|
+
|
|
106
|
+
A function to dispose the subscription and stop receiving updates
|
|
107
|
+
|
|
108
|
+
#### Inherited from
|
|
109
|
+
|
|
110
|
+
[`FlowSubscribable`](/api/interfaces/FlowSubscribable.md).[`subscribe`](/api/interfaces/FlowSubscribable.md#subscribe)
|
|
111
|
+
|
|
112
|
+
***
|
|
113
|
+
|
|
114
|
+
### trigger()
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
trigger(): void;
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
|
|
121
|
+
|
|
122
|
+
Manually triggers notifications to all dependents.
|
|
123
|
+
|
|
124
|
+
Forces all dependents of this observable to be notified and re-executed, even if the
|
|
125
|
+
value hasn't actually changed. Useful for imperatively triggering updates when the
|
|
126
|
+
reactive system cannot detect changes automatically.
|
|
127
|
+
|
|
128
|
+
#### Returns
|
|
129
|
+
|
|
130
|
+
`void`
|
|
131
|
+
|
|
132
|
+
***
|
|
133
|
+
|
|
134
|
+
### watch()
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
watch(tracker): void;
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
|
|
141
|
+
|
|
142
|
+
Establishes a reactive dependency without reading the value.
|
|
143
|
+
|
|
144
|
+
Registers this observable as a dependency of the given tracker, allowing it to be notified
|
|
145
|
+
when changes occur. This enables dependency tracking without accessing the actual value.
|
|
146
|
+
|
|
147
|
+
#### Parameters
|
|
148
|
+
|
|
149
|
+
| Parameter | Type | Description |
|
|
150
|
+
| ------ | ------ | ------ |
|
|
151
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
|
|
152
|
+
|
|
153
|
+
#### Returns
|
|
154
|
+
|
|
155
|
+
`void`
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowSignal
|
|
2
|
+
|
|
3
|
+
# Interface: FlowSignal
|
|
4
|
+
|
|
5
|
+
Defined in: [api/nodes/flowSignal.ts:13](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowSignal.ts#L13)
|
|
6
|
+
|
|
7
|
+
Manual trigger that notifies subscribers without carrying data.
|
|
8
|
+
|
|
9
|
+
Unlike reactive state or derivations, signals don't hold values. They serve as event emitters
|
|
10
|
+
that notify dependents when explicitly triggered. Use signals for side effects that should run
|
|
11
|
+
in response to manual actions rather than data changes.
|
|
12
|
+
|
|
13
|
+
## Extends
|
|
14
|
+
|
|
15
|
+
- [`FlowObservable`](/api/interfaces/FlowObservable.md)\<`void`\>
|
|
16
|
+
|
|
17
|
+
## Accessors
|
|
18
|
+
|
|
19
|
+
### disposed
|
|
20
|
+
|
|
21
|
+
#### Get Signature
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
get disposed(): boolean;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
|
|
28
|
+
|
|
29
|
+
Indicates whether this resource has been disposed.
|
|
30
|
+
|
|
31
|
+
Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
|
|
32
|
+
the resource is no longer usable and any operations on it will throw errors.
|
|
33
|
+
|
|
34
|
+
##### Returns
|
|
35
|
+
|
|
36
|
+
`boolean`
|
|
37
|
+
|
|
38
|
+
#### Inherited from
|
|
39
|
+
|
|
40
|
+
[`FlowObservable`](/api/interfaces/FlowObservable.md).[`disposed`](/api/interfaces/FlowObservable.md#disposed)
|
|
41
|
+
|
|
42
|
+
## Methods
|
|
43
|
+
|
|
44
|
+
### dispose()
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
dispose(): void;
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
|
|
51
|
+
|
|
52
|
+
Releases all resources held by this disposable object.
|
|
53
|
+
|
|
54
|
+
Cleans up all subscriptions, dependencies, and internal state. After calling this method,
|
|
55
|
+
the resource enters a disposed state and cannot be reused. Any subsequent operations will
|
|
56
|
+
throw errors. This method should be called when you no longer need the reactive primitive
|
|
57
|
+
to prevent memory leaks.
|
|
58
|
+
|
|
59
|
+
#### Returns
|
|
60
|
+
|
|
61
|
+
`void`
|
|
62
|
+
|
|
63
|
+
#### Inherited from
|
|
64
|
+
|
|
65
|
+
[`FlowObservable`](/api/interfaces/FlowObservable.md).[`dispose`](/api/interfaces/FlowObservable.md#dispose)
|
|
66
|
+
|
|
67
|
+
***
|
|
68
|
+
|
|
69
|
+
### subscribe()
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
subscribe(
|
|
73
|
+
onData,
|
|
74
|
+
onError?,
|
|
75
|
+
onPending?): FlowEffect;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
|
|
79
|
+
|
|
80
|
+
Subscribes to this observable with lifecycle callbacks.
|
|
81
|
+
|
|
82
|
+
Creates an active subscription that executes immediately and then re-executes whenever
|
|
83
|
+
the observable's dependencies change. The subscription remains active until the returned
|
|
84
|
+
disposal function is called. The `onData` callback receives the computed value, while
|
|
85
|
+
`onError` handles errors and `onPending` signals async operations in progress.
|
|
86
|
+
|
|
87
|
+
#### Parameters
|
|
88
|
+
|
|
89
|
+
| Parameter | Type | Description |
|
|
90
|
+
| ------ | ------ | ------ |
|
|
91
|
+
| `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`void`\> | Callback invoked with the computed data on each execution |
|
|
92
|
+
| `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
|
|
93
|
+
| `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
|
|
94
|
+
|
|
95
|
+
#### Returns
|
|
96
|
+
|
|
97
|
+
[`FlowEffect`](/api/interfaces/FlowEffect.md)
|
|
98
|
+
|
|
99
|
+
A function to dispose the subscription and stop receiving updates
|
|
100
|
+
|
|
101
|
+
#### Inherited from
|
|
102
|
+
|
|
103
|
+
[`FlowObservable`](/api/interfaces/FlowObservable.md).[`subscribe`](/api/interfaces/FlowObservable.md#subscribe)
|
|
104
|
+
|
|
105
|
+
***
|
|
106
|
+
|
|
107
|
+
### trigger()
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
trigger(): void;
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
|
|
114
|
+
|
|
115
|
+
Manually triggers notifications to all dependents.
|
|
116
|
+
|
|
117
|
+
Forces all dependents of this observable to be notified and re-executed, even if the
|
|
118
|
+
value hasn't actually changed. Useful for imperatively triggering updates when the
|
|
119
|
+
reactive system cannot detect changes automatically.
|
|
120
|
+
|
|
121
|
+
#### Returns
|
|
122
|
+
|
|
123
|
+
`void`
|
|
124
|
+
|
|
125
|
+
#### Inherited from
|
|
126
|
+
|
|
127
|
+
[`FlowObservable`](/api/interfaces/FlowObservable.md).[`trigger`](/api/interfaces/FlowObservable.md#trigger)
|
|
128
|
+
|
|
129
|
+
***
|
|
130
|
+
|
|
131
|
+
### watch()
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
watch(tracker): void;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
|
|
138
|
+
|
|
139
|
+
Establishes a reactive dependency without reading the value.
|
|
140
|
+
|
|
141
|
+
Registers this observable as a dependency of the given tracker, allowing it to be notified
|
|
142
|
+
when changes occur. This enables dependency tracking without accessing the actual value.
|
|
143
|
+
|
|
144
|
+
#### Parameters
|
|
145
|
+
|
|
146
|
+
| Parameter | Type | Description |
|
|
147
|
+
| ------ | ------ | ------ |
|
|
148
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
|
|
149
|
+
|
|
150
|
+
#### Returns
|
|
151
|
+
|
|
152
|
+
`void`
|
|
153
|
+
|
|
154
|
+
#### Inherited from
|
|
155
|
+
|
|
156
|
+
[`FlowObservable`](/api/interfaces/FlowObservable.md).[`watch`](/api/interfaces/FlowObservable.md#watch)
|