@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,293 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowWritableDerivationAsync
|
|
2
|
+
|
|
3
|
+
# Interface: FlowWritableDerivationAsync\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: [api/nodes/async/flowWritableDerivationAsync.ts:16](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowWritableDerivationAsync.ts#L16)
|
|
6
|
+
|
|
7
|
+
Writable reactive value that recomputes asynchronously when dependencies change, but can be manually overridden.
|
|
8
|
+
|
|
9
|
+
Async writable derivations combine reactive async computation with manual control. They track dependencies and
|
|
10
|
+
recompute asynchronously like regular async derivations, but you can also call `set()` to override the computed
|
|
11
|
+
value with a new promise. While recomputing or pending, accessing the value throws PendingError. Use for computed
|
|
12
|
+
async values that users can edit, such as formatted async fields, calculated async totals that can be adjusted,
|
|
13
|
+
or any async value that is usually derived but sometimes needs manual correction.
|
|
14
|
+
|
|
15
|
+
## Extends
|
|
16
|
+
|
|
17
|
+
- [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)\<`T`\>.[`FlowDerivationAsync`](/api/interfaces/FlowDerivationAsync.md)\<`T`\>
|
|
18
|
+
|
|
19
|
+
## Type Parameters
|
|
20
|
+
|
|
21
|
+
| Type Parameter |
|
|
22
|
+
| ------ |
|
|
23
|
+
| `T` |
|
|
24
|
+
|
|
25
|
+
## Accessors
|
|
26
|
+
|
|
27
|
+
### disposed
|
|
28
|
+
|
|
29
|
+
#### Get Signature
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
get disposed(): boolean;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
|
|
36
|
+
|
|
37
|
+
Indicates whether this resource has been disposed.
|
|
38
|
+
|
|
39
|
+
Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
|
|
40
|
+
the resource is no longer usable and any operations on it will throw errors.
|
|
41
|
+
|
|
42
|
+
##### Returns
|
|
43
|
+
|
|
44
|
+
`boolean`
|
|
45
|
+
|
|
46
|
+
#### Inherited from
|
|
47
|
+
|
|
48
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`disposed`](/api/interfaces/FlowStateAsync.md#disposed)
|
|
49
|
+
|
|
50
|
+
## Methods
|
|
51
|
+
|
|
52
|
+
### dispose()
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
dispose(): void;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
|
|
59
|
+
|
|
60
|
+
Releases all resources held by this disposable object.
|
|
61
|
+
|
|
62
|
+
Cleans up all subscriptions, dependencies, and internal state. After calling this method,
|
|
63
|
+
the resource enters a disposed state and cannot be reused. Any subsequent operations will
|
|
64
|
+
throw errors. This method should be called when you no longer need the reactive primitive
|
|
65
|
+
to prevent memory leaks.
|
|
66
|
+
|
|
67
|
+
#### Returns
|
|
68
|
+
|
|
69
|
+
`void`
|
|
70
|
+
|
|
71
|
+
#### Inherited from
|
|
72
|
+
|
|
73
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`dispose`](/api/interfaces/FlowStateAsync.md#dispose)
|
|
74
|
+
|
|
75
|
+
***
|
|
76
|
+
|
|
77
|
+
### get()
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
get(tracker): T;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Defined in: [api/nodes/flowValue.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L24)
|
|
84
|
+
|
|
85
|
+
Gets the current value and establishes a reactive dependency.
|
|
86
|
+
|
|
87
|
+
When called from within a reactive computation, this method registers the value as a dependency,
|
|
88
|
+
ensuring the computation re-executes when the value changes. The value is computed on first access
|
|
89
|
+
(if lazy) and then cached. For async values, throws PendingError while the value is resolving.
|
|
90
|
+
|
|
91
|
+
#### Parameters
|
|
92
|
+
|
|
93
|
+
| Parameter | Type | Description |
|
|
94
|
+
| ------ | ------ | ------ |
|
|
95
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this value as a dependency |
|
|
96
|
+
|
|
97
|
+
#### Returns
|
|
98
|
+
|
|
99
|
+
`T`
|
|
100
|
+
|
|
101
|
+
The current value
|
|
102
|
+
|
|
103
|
+
#### Inherited from
|
|
104
|
+
|
|
105
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`get`](/api/interfaces/FlowStateAsync.md#get)
|
|
106
|
+
|
|
107
|
+
***
|
|
108
|
+
|
|
109
|
+
### pick()
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
pick(): Promise<T>;
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Defined in: [api/nodes/flowValue.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L35)
|
|
116
|
+
|
|
117
|
+
Asynchronously gets the current value without establishing a reactive dependency.
|
|
118
|
+
|
|
119
|
+
This method reads the value non-reactively, meaning it won't trigger re-execution of the calling
|
|
120
|
+
computation when the value changes. The value is computed on first access (if lazy) and then cached.
|
|
121
|
+
For async values, the promise resolves once the value is available.
|
|
122
|
+
|
|
123
|
+
#### Returns
|
|
124
|
+
|
|
125
|
+
`Promise`\<`T`\>
|
|
126
|
+
|
|
127
|
+
Promise that resolves with the current value
|
|
128
|
+
|
|
129
|
+
#### Inherited from
|
|
130
|
+
|
|
131
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`pick`](/api/interfaces/FlowStateAsync.md#pick)
|
|
132
|
+
|
|
133
|
+
***
|
|
134
|
+
|
|
135
|
+
### refresh()
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
refresh(): void;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Defined in: [api/nodes/async/flowDerivationAsync.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowDerivationAsync.ts#L24)
|
|
142
|
+
|
|
143
|
+
Forces the derivation to recompute even if dependencies haven't changed.
|
|
144
|
+
|
|
145
|
+
#### Returns
|
|
146
|
+
|
|
147
|
+
`void`
|
|
148
|
+
|
|
149
|
+
#### Inherited from
|
|
150
|
+
|
|
151
|
+
[`FlowDerivationAsync`](/api/interfaces/FlowDerivationAsync.md).[`refresh`](/api/interfaces/FlowDerivationAsync.md#refresh)
|
|
152
|
+
|
|
153
|
+
***
|
|
154
|
+
|
|
155
|
+
### set()
|
|
156
|
+
|
|
157
|
+
#### Call Signature
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
set(promise): void;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Defined in: [api/nodes/async/flowStateAsync.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L26)
|
|
164
|
+
|
|
165
|
+
Updates the state with a new promise or via an async updater function.
|
|
166
|
+
Notifies all dependents immediately (they will receive PendingError until resolved).
|
|
167
|
+
|
|
168
|
+
##### Parameters
|
|
169
|
+
|
|
170
|
+
| Parameter | Type | Description |
|
|
171
|
+
| ------ | ------ | ------ |
|
|
172
|
+
| `promise` | `Promise`\<`T`\> | New promise to resolve, or async function that receives current value and returns a promise |
|
|
173
|
+
|
|
174
|
+
##### Returns
|
|
175
|
+
|
|
176
|
+
`void`
|
|
177
|
+
|
|
178
|
+
##### Inherited from
|
|
179
|
+
|
|
180
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`set`](/api/interfaces/FlowStateAsync.md#set)
|
|
181
|
+
|
|
182
|
+
#### Call Signature
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
set(updater): void;
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Defined in: [api/nodes/async/flowStateAsync.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L27)
|
|
189
|
+
|
|
190
|
+
##### Parameters
|
|
191
|
+
|
|
192
|
+
| Parameter | Type |
|
|
193
|
+
| ------ | ------ |
|
|
194
|
+
| `updater` | [`UpdateFunctionAsync`](/api/type-aliases/UpdateFunctionAsync.md)\<`T`\> |
|
|
195
|
+
|
|
196
|
+
##### Returns
|
|
197
|
+
|
|
198
|
+
`void`
|
|
199
|
+
|
|
200
|
+
##### Inherited from
|
|
201
|
+
|
|
202
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`set`](/api/interfaces/FlowStateAsync.md#set)
|
|
203
|
+
|
|
204
|
+
***
|
|
205
|
+
|
|
206
|
+
### subscribe()
|
|
207
|
+
|
|
208
|
+
```ts
|
|
209
|
+
subscribe(
|
|
210
|
+
onData,
|
|
211
|
+
onError?,
|
|
212
|
+
onPending?): FlowEffect;
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
|
|
216
|
+
|
|
217
|
+
Subscribes to this observable with lifecycle callbacks.
|
|
218
|
+
|
|
219
|
+
Creates an active subscription that executes immediately and then re-executes whenever
|
|
220
|
+
the observable's dependencies change. The subscription remains active until the returned
|
|
221
|
+
disposal function is called. The `onData` callback receives the computed value, while
|
|
222
|
+
`onError` handles errors and `onPending` signals async operations in progress.
|
|
223
|
+
|
|
224
|
+
#### Parameters
|
|
225
|
+
|
|
226
|
+
| Parameter | Type | Description |
|
|
227
|
+
| ------ | ------ | ------ |
|
|
228
|
+
| `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
|
|
229
|
+
| `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
|
|
230
|
+
| `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
|
|
231
|
+
|
|
232
|
+
#### Returns
|
|
233
|
+
|
|
234
|
+
[`FlowEffect`](/api/interfaces/FlowEffect.md)
|
|
235
|
+
|
|
236
|
+
A function to dispose the subscription and stop receiving updates
|
|
237
|
+
|
|
238
|
+
#### Inherited from
|
|
239
|
+
|
|
240
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`subscribe`](/api/interfaces/FlowStateAsync.md#subscribe)
|
|
241
|
+
|
|
242
|
+
***
|
|
243
|
+
|
|
244
|
+
### trigger()
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
trigger(): void;
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
|
|
251
|
+
|
|
252
|
+
Manually triggers notifications to all dependents.
|
|
253
|
+
|
|
254
|
+
Forces all dependents of this observable to be notified and re-executed, even if the
|
|
255
|
+
value hasn't actually changed. Useful for imperatively triggering updates when the
|
|
256
|
+
reactive system cannot detect changes automatically.
|
|
257
|
+
|
|
258
|
+
#### Returns
|
|
259
|
+
|
|
260
|
+
`void`
|
|
261
|
+
|
|
262
|
+
#### Inherited from
|
|
263
|
+
|
|
264
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`trigger`](/api/interfaces/FlowStateAsync.md#trigger)
|
|
265
|
+
|
|
266
|
+
***
|
|
267
|
+
|
|
268
|
+
### watch()
|
|
269
|
+
|
|
270
|
+
```ts
|
|
271
|
+
watch(tracker): void;
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
|
|
275
|
+
|
|
276
|
+
Establishes a reactive dependency without reading the value.
|
|
277
|
+
|
|
278
|
+
Registers this observable as a dependency of the given tracker, allowing it to be notified
|
|
279
|
+
when changes occur. This enables dependency tracking without accessing the actual value.
|
|
280
|
+
|
|
281
|
+
#### Parameters
|
|
282
|
+
|
|
283
|
+
| Parameter | Type | Description |
|
|
284
|
+
| ------ | ------ | ------ |
|
|
285
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
|
|
286
|
+
|
|
287
|
+
#### Returns
|
|
288
|
+
|
|
289
|
+
`void`
|
|
290
|
+
|
|
291
|
+
#### Inherited from
|
|
292
|
+
|
|
293
|
+
[`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`watch`](/api/interfaces/FlowStateAsync.md#watch)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / DerivationFunction
|
|
2
|
+
|
|
3
|
+
# Type Alias: DerivationFunction()\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type DerivationFunction<T> = (tracker, previous?) => NotPromise<T>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/nodes/sync/flowDerivation.ts:7](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowDerivation.ts#L7)
|
|
10
|
+
|
|
11
|
+
Function that derives a value from dependencies and optionally the previous value.
|
|
12
|
+
|
|
13
|
+
## Type Parameters
|
|
14
|
+
|
|
15
|
+
| Type Parameter |
|
|
16
|
+
| ------ |
|
|
17
|
+
| `T` |
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
| Parameter | Type |
|
|
22
|
+
| ------ | ------ |
|
|
23
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) |
|
|
24
|
+
| `previous?` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> |
|
|
25
|
+
|
|
26
|
+
## Returns
|
|
27
|
+
|
|
28
|
+
[`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / DerivationFunctionAsync
|
|
2
|
+
|
|
3
|
+
# Type Alias: DerivationFunctionAsync()\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type DerivationFunctionAsync<T> = (tracker, previous?) => Promise<T>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/nodes/async/flowDerivationAsync.ts:7](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowDerivationAsync.ts#L7)
|
|
10
|
+
|
|
11
|
+
Function that derives a value asynchronously from dependencies and optionally the previous value.
|
|
12
|
+
|
|
13
|
+
## Type Parameters
|
|
14
|
+
|
|
15
|
+
| Type Parameter |
|
|
16
|
+
| ------ |
|
|
17
|
+
| `T` |
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
| Parameter | Type |
|
|
22
|
+
| ------ | ------ |
|
|
23
|
+
| `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) |
|
|
24
|
+
| `previous?` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> |
|
|
25
|
+
|
|
26
|
+
## Returns
|
|
27
|
+
|
|
28
|
+
`Promise`\<`T`\>
|
|
@@ -5,42 +5,53 @@
|
|
|
5
5
|
```ts
|
|
6
6
|
type FlowArrayAction<T> =
|
|
7
7
|
| {
|
|
8
|
-
|
|
8
|
+
clearedItems: T[];
|
|
9
|
+
setItems: T[];
|
|
9
10
|
type: "set";
|
|
10
11
|
}
|
|
11
12
|
| {
|
|
13
|
+
clearedItem: T | undefined;
|
|
12
14
|
index: number;
|
|
13
|
-
|
|
14
|
-
type: "
|
|
15
|
+
setItem: T;
|
|
16
|
+
type: "update";
|
|
15
17
|
}
|
|
16
18
|
| {
|
|
17
|
-
|
|
19
|
+
addedItem: T;
|
|
18
20
|
type: "push";
|
|
19
21
|
}
|
|
20
22
|
| {
|
|
23
|
+
removedItem: T | undefined;
|
|
21
24
|
type: "pop";
|
|
22
25
|
}
|
|
23
26
|
| {
|
|
24
|
-
|
|
27
|
+
addedItem: T;
|
|
25
28
|
type: "unshift";
|
|
26
29
|
}
|
|
27
30
|
| {
|
|
31
|
+
removedItem: T | undefined;
|
|
28
32
|
type: "shift";
|
|
29
33
|
}
|
|
30
34
|
| {
|
|
35
|
+
addedItems: T[];
|
|
31
36
|
deleteCount: number;
|
|
32
|
-
|
|
37
|
+
removedItems: T[];
|
|
33
38
|
start: number;
|
|
34
39
|
type: "splice";
|
|
35
40
|
}
|
|
36
41
|
| {
|
|
42
|
+
clearedItems: T[];
|
|
37
43
|
type: "clear";
|
|
38
44
|
};
|
|
39
45
|
```
|
|
40
46
|
|
|
41
|
-
Defined in: [
|
|
47
|
+
Defined in: [api/nodes/collections/flowArray.ts:14](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L14)
|
|
42
48
|
|
|
43
|
-
|
|
49
|
+
Discriminated union representing all possible array mutation operations.
|
|
50
|
+
|
|
51
|
+
Each mutation on a FlowArray emits an action describing what changed. This enables fine-grained
|
|
52
|
+
reactive tracking - you can observe the array itself or subscribe to `$lastAction` to react only
|
|
53
|
+
to specific mutations. Use this for optimized rendering, undo/redo systems, or any scenario where
|
|
54
|
+
you need to know exactly what changed rather than just that something changed.
|
|
44
55
|
|
|
45
56
|
## Type Parameters
|
|
46
57
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowDataTracker
|
|
2
|
+
|
|
3
|
+
# Type Alias: FlowDataTracker()\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type FlowDataTracker<T> = (t) => T;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/base/flowSubscribable.ts:16](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L16)
|
|
10
|
+
|
|
11
|
+
Function that tracks reactive dependencies and returns data.
|
|
12
|
+
|
|
13
|
+
This function is called during effect execution with a tracker parameter that automatically
|
|
14
|
+
records any reactive values accessed. The tracker enables automatic dependency tracking without
|
|
15
|
+
explicit subscriptions. The returned data is passed to the `onData` callback.
|
|
16
|
+
|
|
17
|
+
## Type Parameters
|
|
18
|
+
|
|
19
|
+
| Type Parameter |
|
|
20
|
+
| ------ |
|
|
21
|
+
| `T` |
|
|
22
|
+
|
|
23
|
+
## Parameters
|
|
24
|
+
|
|
25
|
+
| Parameter | Type | Description |
|
|
26
|
+
| ------ | ------ | ------ |
|
|
27
|
+
| `t` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker object that records dependencies when reactive values are accessed |
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
`T`
|
|
32
|
+
|
|
33
|
+
The computed data of type T
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowMapAction
|
|
2
|
+
|
|
3
|
+
# Type Alias: FlowMapAction\<K, V\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type FlowMapAction<K, V> =
|
|
7
|
+
| {
|
|
8
|
+
clearedMap: Map<K, V>;
|
|
9
|
+
setMap: Map<K, V>;
|
|
10
|
+
type: "set";
|
|
11
|
+
}
|
|
12
|
+
| {
|
|
13
|
+
addedValue: V;
|
|
14
|
+
key: K;
|
|
15
|
+
type: "add";
|
|
16
|
+
}
|
|
17
|
+
| {
|
|
18
|
+
clearedValue: V;
|
|
19
|
+
key: K;
|
|
20
|
+
setValue: V;
|
|
21
|
+
type: "update";
|
|
22
|
+
}
|
|
23
|
+
| {
|
|
24
|
+
key: K;
|
|
25
|
+
removedValue: V;
|
|
26
|
+
type: "delete";
|
|
27
|
+
}
|
|
28
|
+
| {
|
|
29
|
+
clearedMap: Map<K, V>;
|
|
30
|
+
type: "clear";
|
|
31
|
+
};
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Defined in: [api/nodes/collections/flowMap.ts:14](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L14)
|
|
35
|
+
|
|
36
|
+
Discriminated union representing all possible map mutation operations.
|
|
37
|
+
|
|
38
|
+
Each mutation on a FlowMap emits an action describing what changed. This enables fine-grained
|
|
39
|
+
reactive tracking - you can observe the map itself or subscribe to `$lastAction` to react only
|
|
40
|
+
to specific mutations. Use this for optimized updates, undo/redo systems, or any scenario where
|
|
41
|
+
you need to know exactly what changed rather than just that something changed.
|
|
42
|
+
|
|
43
|
+
## Type Parameters
|
|
44
|
+
|
|
45
|
+
| Type Parameter |
|
|
46
|
+
| ------ |
|
|
47
|
+
| `K` |
|
|
48
|
+
| `V` |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowOnDataListener
|
|
2
|
+
|
|
3
|
+
# Type Alias: FlowOnDataListener()\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type FlowOnDataListener<T> = (data) => undefined;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/base/flowSubscribable.ts:30](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L30)
|
|
10
|
+
|
|
11
|
+
Callback invoked when new data is available.
|
|
12
|
+
|
|
13
|
+
This callback runs each time the effect executes successfully, receiving the data returned
|
|
14
|
+
by the tracker function. It's called immediately on effect creation and then on every reactive
|
|
15
|
+
re-execution. Use this callback to perform side effects with the computed data.
|
|
16
|
+
|
|
17
|
+
## Type Parameters
|
|
18
|
+
|
|
19
|
+
| Type Parameter |
|
|
20
|
+
| ------ |
|
|
21
|
+
| `T` |
|
|
22
|
+
|
|
23
|
+
## Parameters
|
|
24
|
+
|
|
25
|
+
| Parameter | Type | Description |
|
|
26
|
+
| ------ | ------ | ------ |
|
|
27
|
+
| `data` | `T` | The computed data from the tracker function |
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
`undefined`
|
|
32
|
+
|
|
33
|
+
Always returns undefined (callbacks are for side effects)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowOnErrorListener
|
|
2
|
+
|
|
3
|
+
# Type Alias: FlowOnErrorListener()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type FlowOnErrorListener = (error) => undefined;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/base/flowSubscribable.ts:44](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L44)
|
|
10
|
+
|
|
11
|
+
Callback invoked when an error occurs during effect execution.
|
|
12
|
+
|
|
13
|
+
If provided, this callback handles any errors thrown by the tracker function (except PendingError).
|
|
14
|
+
Without this callback, errors propagate and may crash the application. Use this for error logging,
|
|
15
|
+
recovery, or user feedback. The effect remains active and will retry on the next reactive trigger.
|
|
16
|
+
|
|
17
|
+
## Parameters
|
|
18
|
+
|
|
19
|
+
| Parameter | Type | Description |
|
|
20
|
+
| ------ | ------ | ------ |
|
|
21
|
+
| `error` | `Error` | The error that occurred, always normalized to an Error instance |
|
|
22
|
+
|
|
23
|
+
## Returns
|
|
24
|
+
|
|
25
|
+
`undefined`
|
|
26
|
+
|
|
27
|
+
Always returns undefined (callbacks are for side effects)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowOnPendingListener
|
|
2
|
+
|
|
3
|
+
# Type Alias: FlowOnPendingListener()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type FlowOnPendingListener = () => undefined;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/base/flowSubscribable.ts:57](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L57)
|
|
10
|
+
|
|
11
|
+
Callback invoked when an async computation is pending.
|
|
12
|
+
|
|
13
|
+
This callback is triggered when the tracker function throws a PendingError, indicating that
|
|
14
|
+
async dependencies are still resolving. Use this to show loading states or pending indicators.
|
|
15
|
+
The effect will automatically re-execute once the async values settle.
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`undefined`
|
|
20
|
+
|
|
21
|
+
Always returns undefined (callbacks are for side effects)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / FlowReadonly
|
|
2
|
+
|
|
3
|
+
# Type Alias: FlowReadonly\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type FlowReadonly<T> = Omit<T, "set" | "refresh" | "trigger">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/nodes/utils.ts:22](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/utils.ts#L22)
|
|
10
|
+
|
|
11
|
+
Type that restricts mutation methods to create read-only versions of reactive primitives.
|
|
12
|
+
|
|
13
|
+
This utility type removes mutation methods (`set`, `refresh`, `trigger`) from a reactive primitive,
|
|
14
|
+
creating a read-only interface. Use this when you want to expose reactive values to consumers who
|
|
15
|
+
should observe but not modify them, such as passing state to child components or external modules
|
|
16
|
+
while maintaining encapsulation of write access.
|
|
17
|
+
|
|
18
|
+
## Type Parameters
|
|
19
|
+
|
|
20
|
+
| Type Parameter |
|
|
21
|
+
| ------ |
|
|
22
|
+
| `T` |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / InitFunction
|
|
2
|
+
|
|
3
|
+
# Type Alias: InitFunction()\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type InitFunction<T> = () => NotPromise<T>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/nodes/sync/flowConstant.ts:6](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowConstant.ts#L6)
|
|
10
|
+
|
|
11
|
+
Function that initializes a value.
|
|
12
|
+
|
|
13
|
+
## Type Parameters
|
|
14
|
+
|
|
15
|
+
| Type Parameter |
|
|
16
|
+
| ------ |
|
|
17
|
+
| `T` |
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
[`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[@ersbeth/picoflow](/api/index.md) / InitFunctionAsync
|
|
2
|
+
|
|
3
|
+
# Type Alias: InitFunctionAsync()\<T\>
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type InitFunctionAsync<T> = () => Promise<T>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [api/nodes/async/flowConstantAsync.ts:5](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowConstantAsync.ts#L5)
|
|
10
|
+
|
|
11
|
+
Function that initializes a value asynchronously.
|
|
12
|
+
|
|
13
|
+
## Type Parameters
|
|
14
|
+
|
|
15
|
+
| Type Parameter |
|
|
16
|
+
| ------ |
|
|
17
|
+
| `T` |
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
`Promise`\<`T`\>
|
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
type NotPromise<T> = T extends Promise<unknown> ? never : T;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [api/nodes/utils.ts:10](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/utils.ts#L10)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Type that excludes Promise values from a type union.
|
|
12
|
+
|
|
13
|
+
This utility type ensures that synchronous reactive primitives (like `state`, `constant`, `derivation`)
|
|
14
|
+
only accept non-Promise values. Use this to prevent accidental mixing of sync and async values, which
|
|
15
|
+
would cause runtime errors. For async values, use the async variants (like `stateAsync`, `constantAsync`).
|
|
13
16
|
|
|
14
17
|
## Type Parameters
|
|
15
18
|
|