@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
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
[@ersbeth/picoflow](/api/index.md) / FlowResourceAsync
|
|
2
|
-
|
|
3
|
-
# Class: FlowResourceAsync\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: [advanced/resourceAsync.ts:38](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/resourceAsync.ts#L38)
|
|
6
|
-
|
|
7
|
-
Represents a reactive resource that asynchronously fetches its value and always returns a Promise.
|
|
8
|
-
|
|
9
|
-
## Remarks
|
|
10
|
-
|
|
11
|
-
FlowResourceAsync extends FlowObservable and encapsulates an asynchronous fetch function.
|
|
12
|
-
Unlike [FlowResource](/api/classes/FlowResource.md) which returns `T | undefined`, FlowResourceAsync always returns
|
|
13
|
-
a `Promise<T>`, making it suitable for async/await patterns.
|
|
14
|
-
|
|
15
|
-
**Key Characteristics:**
|
|
16
|
-
- The first call to `get()` or `pick()` creates and caches a Promise
|
|
17
|
-
- Subsequent calls return the same Promise until `fetch()` is called
|
|
18
|
-
- Calling `fetch()` creates a new Promise and notifies subscribers
|
|
19
|
-
- The Promise resolves to the fetched value of type T
|
|
20
|
-
|
|
21
|
-
**Lazy Promise Creation:**
|
|
22
|
-
The fetch function doesn't execute until the resource's value is first accessed.
|
|
23
|
-
This allows you to define resources without immediately triggering network requests.
|
|
24
|
-
|
|
25
|
-
## Example
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
const $user = resourceAsync(() => fetchUserFromAPI());
|
|
29
|
-
|
|
30
|
-
effect(async (t) => {
|
|
31
|
-
const user = await $user.get(t); // Tracked, effect re-runs on fetch()
|
|
32
|
-
console.log(user.name);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
// Trigger a refetch
|
|
36
|
-
await $user.fetch();
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Extends
|
|
40
|
-
|
|
41
|
-
- [`FlowObservable`](/api/classes/FlowObservable.md)\<`Promise`\<`T`\>\>
|
|
42
|
-
|
|
43
|
-
## Type Parameters
|
|
44
|
-
|
|
45
|
-
| Type Parameter | Description |
|
|
46
|
-
| ------ | ------ |
|
|
47
|
-
| `T` | The type of the resource value (not the Promise itself). |
|
|
48
|
-
|
|
49
|
-
## Constructors
|
|
50
|
-
|
|
51
|
-
### Constructor
|
|
52
|
-
|
|
53
|
-
```ts
|
|
54
|
-
new FlowResourceAsync<T>(fetch): FlowResourceAsync<T>;
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Defined in: [advanced/resourceAsync.ts:44](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/resourceAsync.ts#L44)
|
|
58
|
-
|
|
59
|
-
Creates a new FlowResource.
|
|
60
|
-
|
|
61
|
-
#### Parameters
|
|
62
|
-
|
|
63
|
-
| Parameter | Type | Description |
|
|
64
|
-
| ------ | ------ | ------ |
|
|
65
|
-
| `fetch` | () => `Promise`\<`T`\> | An asynchronous function that retrieves the resource's value. |
|
|
66
|
-
|
|
67
|
-
#### Returns
|
|
68
|
-
|
|
69
|
-
`FlowResourceAsync`\<`T`\>
|
|
70
|
-
|
|
71
|
-
#### Overrides
|
|
72
|
-
|
|
73
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`constructor`](/api/classes/FlowObservable.md#constructor)
|
|
74
|
-
|
|
75
|
-
## Accessors
|
|
76
|
-
|
|
77
|
-
### disposed
|
|
78
|
-
|
|
79
|
-
#### Get Signature
|
|
80
|
-
|
|
81
|
-
```ts
|
|
82
|
-
get disposed(): boolean;
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Defined in: [basic/signal.ts:97](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L97)
|
|
86
|
-
|
|
87
|
-
Indicates whether the FlowSignal has been disposed.
|
|
88
|
-
|
|
89
|
-
##### Remarks
|
|
90
|
-
|
|
91
|
-
Once disposed, the signal should not be used.
|
|
92
|
-
|
|
93
|
-
##### Returns
|
|
94
|
-
|
|
95
|
-
`boolean`
|
|
96
|
-
|
|
97
|
-
#### Inherited from
|
|
98
|
-
|
|
99
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`disposed`](/api/classes/FlowObservable.md#disposed)
|
|
100
|
-
|
|
101
|
-
## Methods
|
|
102
|
-
|
|
103
|
-
### dispose()
|
|
104
|
-
|
|
105
|
-
```ts
|
|
106
|
-
dispose(options?): void;
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Defined in: [basic/signal.ts:69](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L69)
|
|
110
|
-
|
|
111
|
-
Disposes the FlowSignal.
|
|
112
|
-
Cleans up all registered effects, listeners, and dependencies.
|
|
113
|
-
Once disposed, further usage of the signal will throw an error.
|
|
114
|
-
|
|
115
|
-
#### Parameters
|
|
116
|
-
|
|
117
|
-
| Parameter | Type |
|
|
118
|
-
| ------ | ------ |
|
|
119
|
-
| `options?` | \{ `self`: `boolean`; \} |
|
|
120
|
-
| `options.self?` | `boolean` |
|
|
121
|
-
|
|
122
|
-
#### Returns
|
|
123
|
-
|
|
124
|
-
`void`
|
|
125
|
-
|
|
126
|
-
#### Throws
|
|
127
|
-
|
|
128
|
-
If the FlowSignal is already disposed.
|
|
129
|
-
|
|
130
|
-
#### Inherited from
|
|
131
|
-
|
|
132
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`dispose`](/api/classes/FlowObservable.md#dispose)
|
|
133
|
-
|
|
134
|
-
***
|
|
135
|
-
|
|
136
|
-
### fetch()
|
|
137
|
-
|
|
138
|
-
```ts
|
|
139
|
-
fetch(): Promise<void>;
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Defined in: [advanced/resourceAsync.ts:68](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/resourceAsync.ts#L68)
|
|
143
|
-
|
|
144
|
-
Asynchronously fetches a new value for the resource.
|
|
145
|
-
|
|
146
|
-
#### Returns
|
|
147
|
-
|
|
148
|
-
`Promise`\<`void`\>
|
|
149
|
-
|
|
150
|
-
A Promise that resolves when the fetch operation is complete.
|
|
151
|
-
|
|
152
|
-
#### Remarks
|
|
153
|
-
|
|
154
|
-
Executes the internal fetch function. If the fetched value differs from the current one,
|
|
155
|
-
updates the resource's value and notifies subscribers.
|
|
156
|
-
|
|
157
|
-
#### Throws
|
|
158
|
-
|
|
159
|
-
Error if the resource is disposed.
|
|
160
|
-
|
|
161
|
-
***
|
|
162
|
-
|
|
163
|
-
### get()
|
|
164
|
-
|
|
165
|
-
```ts
|
|
166
|
-
get(context): Promise;
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Defined in: [basic/observable.ts:47](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L47)
|
|
170
|
-
|
|
171
|
-
Gets the current value with optional dependency tracking.
|
|
172
|
-
|
|
173
|
-
#### Parameters
|
|
174
|
-
|
|
175
|
-
| Parameter | Type | Description |
|
|
176
|
-
| ------ | ------ | ------ |
|
|
177
|
-
| `context` | [`TrackingContext`](/api/classes/TrackingContext.md) \| `null` | The tracking context for reactive tracking, or null for untracked access. When a context is provided, this observable is registered as a dependency. When null, the value is read without any tracking. |
|
|
178
|
-
|
|
179
|
-
#### Returns
|
|
180
|
-
|
|
181
|
-
`Promise`
|
|
182
|
-
|
|
183
|
-
The current value of type T.
|
|
184
|
-
|
|
185
|
-
#### Remarks
|
|
186
|
-
|
|
187
|
-
Use `get(t)` within effects and derivations to create reactive dependencies.
|
|
188
|
-
Use `get(null)` when you need to read a value without tracking (though `pick()` is more idiomatic).
|
|
189
|
-
|
|
190
|
-
#### Example
|
|
191
|
-
|
|
192
|
-
```typescript
|
|
193
|
-
effect((t) => {
|
|
194
|
-
const tracked = $state.get(t); // Dependency registered
|
|
195
|
-
const untracked = $other.get(null); // No dependency
|
|
196
|
-
});
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
#### Inherited from
|
|
200
|
-
|
|
201
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`get`](/api/classes/FlowObservable.md#get)
|
|
202
|
-
|
|
203
|
-
***
|
|
204
|
-
|
|
205
|
-
### pick()
|
|
206
|
-
|
|
207
|
-
```ts
|
|
208
|
-
pick(): Promise;
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
Defined in: [basic/observable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L82)
|
|
212
|
-
|
|
213
|
-
Gets the current value without any dependency tracking.
|
|
214
|
-
|
|
215
|
-
#### Returns
|
|
216
|
-
|
|
217
|
-
`Promise`
|
|
218
|
-
|
|
219
|
-
The current value of type T.
|
|
220
|
-
|
|
221
|
-
#### Remarks
|
|
222
|
-
|
|
223
|
-
This method is equivalent to calling `get(null)` but provides a more semantic and readable API.
|
|
224
|
-
Use `pick()` when you want to read a snapshot of the current value without creating a reactive
|
|
225
|
-
dependency. This is useful for:
|
|
226
|
-
- Reading initial values
|
|
227
|
-
- Accessing configuration that shouldn't trigger updates
|
|
228
|
-
- Mixing tracked and untracked reads in the same effect
|
|
229
|
-
|
|
230
|
-
#### Example
|
|
231
|
-
|
|
232
|
-
```typescript
|
|
233
|
-
// Read a snapshot outside reactive context
|
|
234
|
-
const currentValue = $state.pick();
|
|
235
|
-
|
|
236
|
-
// Mix tracked and untracked reads
|
|
237
|
-
effect((t) => {
|
|
238
|
-
const tracked = $reactive.get(t); // Triggers re-runs
|
|
239
|
-
const snapshot = $config.pick(); // Doesn't trigger re-runs
|
|
240
|
-
processData(tracked, snapshot);
|
|
241
|
-
});
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
#### Inherited from
|
|
245
|
-
|
|
246
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`pick`](/api/classes/FlowObservable.md#pick)
|
|
247
|
-
|
|
248
|
-
***
|
|
249
|
-
|
|
250
|
-
### subscribe()
|
|
251
|
-
|
|
252
|
-
```ts
|
|
253
|
-
subscribe(listener): () => void;
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
Defined in: [basic/observable.ts:103](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L103)
|
|
257
|
-
|
|
258
|
-
Subscribes a listener function to changes of the observable.
|
|
259
|
-
The listener is executed immediately with the current value and on subsequent updates.
|
|
260
|
-
|
|
261
|
-
#### Parameters
|
|
262
|
-
|
|
263
|
-
| Parameter | Type | Description |
|
|
264
|
-
| ------ | ------ | ------ |
|
|
265
|
-
| `listener` | (`value`) => `void` | A callback function that receives the new value. |
|
|
266
|
-
|
|
267
|
-
#### Returns
|
|
268
|
-
|
|
269
|
-
A disposer function to cancel the subscription.
|
|
270
|
-
|
|
271
|
-
```ts
|
|
272
|
-
(): void;
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
##### Returns
|
|
276
|
-
|
|
277
|
-
`void`
|
|
278
|
-
|
|
279
|
-
#### Inherited from
|
|
280
|
-
|
|
281
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`subscribe`](/api/classes/FlowObservable.md#subscribe)
|
|
282
|
-
|
|
283
|
-
***
|
|
284
|
-
|
|
285
|
-
### trigger()
|
|
286
|
-
|
|
287
|
-
```ts
|
|
288
|
-
trigger(): void;
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
Defined in: [basic/signal.ts:19](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L19)
|
|
292
|
-
|
|
293
|
-
Triggers the FlowSignal.
|
|
294
|
-
Notifies all registered listeners and schedules execution of associated effects.
|
|
295
|
-
|
|
296
|
-
#### Returns
|
|
297
|
-
|
|
298
|
-
`void`
|
|
299
|
-
|
|
300
|
-
#### Throws
|
|
301
|
-
|
|
302
|
-
If the FlowSignal has already been disposed.
|
|
303
|
-
|
|
304
|
-
#### Inherited from
|
|
305
|
-
|
|
306
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`trigger`](/api/classes/FlowObservable.md#trigger)
|
|
307
|
-
|
|
308
|
-
***
|
|
309
|
-
|
|
310
|
-
### watch()
|
|
311
|
-
|
|
312
|
-
```ts
|
|
313
|
-
watch(context): void;
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
Defined in: [basic/signal.ts:57](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L57)
|
|
317
|
-
|
|
318
|
-
Watches the signal, registering it as a dependency in the tracking context.
|
|
319
|
-
|
|
320
|
-
#### Parameters
|
|
321
|
-
|
|
322
|
-
| Parameter | Type | Description |
|
|
323
|
-
| ------ | ------ | ------ |
|
|
324
|
-
| `context` | [`TrackingContext`](/api/classes/TrackingContext.md) | The tracking context in which to register this signal as a dependency. |
|
|
325
|
-
|
|
326
|
-
#### Returns
|
|
327
|
-
|
|
328
|
-
`void`
|
|
329
|
-
|
|
330
|
-
#### Remarks
|
|
331
|
-
|
|
332
|
-
Use `watch()` when you want to track a signal without reading its value (signals don't
|
|
333
|
-
have values to read). This is useful for triggering effects based on signal events
|
|
334
|
-
without needing associated data.
|
|
335
|
-
|
|
336
|
-
When the signal is triggered via `trigger()`, any effects or derivations that have
|
|
337
|
-
watched this signal will automatically re-execute.
|
|
338
|
-
|
|
339
|
-
This method must be called within an effect or derivation context where a TrackingContext
|
|
340
|
-
is available. For observables (which hold values), use `.get(t)` instead, which both
|
|
341
|
-
reads the value and watches for changes.
|
|
342
|
-
|
|
343
|
-
#### Throws
|
|
344
|
-
|
|
345
|
-
Error if the signal has been disposed.
|
|
346
|
-
|
|
347
|
-
#### Example
|
|
348
|
-
|
|
349
|
-
```typescript
|
|
350
|
-
const $signal = signal();
|
|
351
|
-
|
|
352
|
-
effect((t) => {
|
|
353
|
-
$signal.watch(t); // Track the signal
|
|
354
|
-
console.log('Signal triggered!');
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
$signal.trigger(); // Logs: "Signal triggered!"
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
#### Inherited from
|
|
361
|
-
|
|
362
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`watch`](/api/classes/FlowObservable.md#watch)
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
[@ersbeth/picoflow](/api/index.md) / FlowSignal
|
|
2
|
-
|
|
3
|
-
# Class: FlowSignal
|
|
4
|
-
|
|
5
|
-
Defined in: [basic/signal.ts:12](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L12)
|
|
6
|
-
|
|
7
|
-
Represents a reactive signal.
|
|
8
|
-
|
|
9
|
-
## Remarks
|
|
10
|
-
|
|
11
|
-
Use FlowSignal to create reactive streams that notify listeners and execute associated effects.
|
|
12
|
-
Signals can be triggered and disposed. Once disposed, interactions with the signal will throw errors.
|
|
13
|
-
|
|
14
|
-
## Extended by
|
|
15
|
-
|
|
16
|
-
- [`FlowObservable`](/api/classes/FlowObservable.md)
|
|
17
|
-
|
|
18
|
-
## Implements
|
|
19
|
-
|
|
20
|
-
- [`FlowDisposable`](/api/interfaces/FlowDisposable.md)
|
|
21
|
-
|
|
22
|
-
## Constructors
|
|
23
|
-
|
|
24
|
-
### Constructor
|
|
25
|
-
|
|
26
|
-
```ts
|
|
27
|
-
new FlowSignal(): FlowSignal;
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
#### Returns
|
|
31
|
-
|
|
32
|
-
`FlowSignal`
|
|
33
|
-
|
|
34
|
-
## Accessors
|
|
35
|
-
|
|
36
|
-
### disposed
|
|
37
|
-
|
|
38
|
-
#### Get Signature
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
get disposed(): boolean;
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Defined in: [basic/signal.ts:97](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L97)
|
|
45
|
-
|
|
46
|
-
Indicates whether the FlowSignal has been disposed.
|
|
47
|
-
|
|
48
|
-
##### Remarks
|
|
49
|
-
|
|
50
|
-
Once disposed, the signal should not be used.
|
|
51
|
-
|
|
52
|
-
##### Returns
|
|
53
|
-
|
|
54
|
-
`boolean`
|
|
55
|
-
|
|
56
|
-
## Methods
|
|
57
|
-
|
|
58
|
-
### dispose()
|
|
59
|
-
|
|
60
|
-
```ts
|
|
61
|
-
dispose(options?): void;
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Defined in: [basic/signal.ts:69](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L69)
|
|
65
|
-
|
|
66
|
-
Disposes the FlowSignal.
|
|
67
|
-
Cleans up all registered effects, listeners, and dependencies.
|
|
68
|
-
Once disposed, further usage of the signal will throw an error.
|
|
69
|
-
|
|
70
|
-
#### Parameters
|
|
71
|
-
|
|
72
|
-
| Parameter | Type |
|
|
73
|
-
| ------ | ------ |
|
|
74
|
-
| `options?` | \{ `self`: `boolean`; \} |
|
|
75
|
-
| `options.self?` | `boolean` |
|
|
76
|
-
|
|
77
|
-
#### Returns
|
|
78
|
-
|
|
79
|
-
`void`
|
|
80
|
-
|
|
81
|
-
#### Throws
|
|
82
|
-
|
|
83
|
-
If the FlowSignal is already disposed.
|
|
84
|
-
|
|
85
|
-
#### Implementation of
|
|
86
|
-
|
|
87
|
-
[`FlowDisposable`](/api/interfaces/FlowDisposable.md).[`dispose`](/api/interfaces/FlowDisposable.md#dispose)
|
|
88
|
-
|
|
89
|
-
***
|
|
90
|
-
|
|
91
|
-
### trigger()
|
|
92
|
-
|
|
93
|
-
```ts
|
|
94
|
-
trigger(): void;
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Defined in: [basic/signal.ts:19](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L19)
|
|
98
|
-
|
|
99
|
-
Triggers the FlowSignal.
|
|
100
|
-
Notifies all registered listeners and schedules execution of associated effects.
|
|
101
|
-
|
|
102
|
-
#### Returns
|
|
103
|
-
|
|
104
|
-
`void`
|
|
105
|
-
|
|
106
|
-
#### Throws
|
|
107
|
-
|
|
108
|
-
If the FlowSignal has already been disposed.
|
|
109
|
-
|
|
110
|
-
***
|
|
111
|
-
|
|
112
|
-
### watch()
|
|
113
|
-
|
|
114
|
-
```ts
|
|
115
|
-
watch(context): void;
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Defined in: [basic/signal.ts:57](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L57)
|
|
119
|
-
|
|
120
|
-
Watches the signal, registering it as a dependency in the tracking context.
|
|
121
|
-
|
|
122
|
-
#### Parameters
|
|
123
|
-
|
|
124
|
-
| Parameter | Type | Description |
|
|
125
|
-
| ------ | ------ | ------ |
|
|
126
|
-
| `context` | [`TrackingContext`](/api/classes/TrackingContext.md) | The tracking context in which to register this signal as a dependency. |
|
|
127
|
-
|
|
128
|
-
#### Returns
|
|
129
|
-
|
|
130
|
-
`void`
|
|
131
|
-
|
|
132
|
-
#### Remarks
|
|
133
|
-
|
|
134
|
-
Use `watch()` when you want to track a signal without reading its value (signals don't
|
|
135
|
-
have values to read). This is useful for triggering effects based on signal events
|
|
136
|
-
without needing associated data.
|
|
137
|
-
|
|
138
|
-
When the signal is triggered via `trigger()`, any effects or derivations that have
|
|
139
|
-
watched this signal will automatically re-execute.
|
|
140
|
-
|
|
141
|
-
This method must be called within an effect or derivation context where a TrackingContext
|
|
142
|
-
is available. For observables (which hold values), use `.get(t)` instead, which both
|
|
143
|
-
reads the value and watches for changes.
|
|
144
|
-
|
|
145
|
-
#### Throws
|
|
146
|
-
|
|
147
|
-
Error if the signal has been disposed.
|
|
148
|
-
|
|
149
|
-
#### Example
|
|
150
|
-
|
|
151
|
-
```typescript
|
|
152
|
-
const $signal = signal();
|
|
153
|
-
|
|
154
|
-
effect((t) => {
|
|
155
|
-
$signal.watch(t); // Track the signal
|
|
156
|
-
console.log('Signal triggered!');
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
$signal.trigger(); // Logs: "Signal triggered!"
|
|
160
|
-
```
|