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