@ersbeth/picoflow 1.1.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +3 -3
- package/CHANGELOG.md +43 -0
- package/README.md +2 -18
- package/biome.json +45 -35
- package/dist/picoflow.js +857 -1528
- package/dist/types/api/base/flowDisposable.d.ts +41 -0
- package/dist/types/api/base/flowDisposable.d.ts.map +1 -0
- package/dist/types/api/base/flowObservable.d.ts +27 -0
- package/dist/types/api/base/flowObservable.d.ts.map +1 -0
- package/dist/types/api/base/flowSubscribable.d.ts +79 -0
- package/dist/types/api/base/flowSubscribable.d.ts.map +1 -0
- package/dist/types/api/base/flowTracker.d.ts +8 -0
- package/dist/types/api/base/flowTracker.d.ts.map +1 -0
- package/dist/types/api/base/index.d.ts +5 -0
- package/dist/types/api/base/index.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +3 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowConstantAsync.d.ts +31 -0
- package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +37 -0
- package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowStateAsync.d.ts +41 -0
- package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -0
- package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +30 -0
- package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -0
- package/dist/types/{flow → api}/nodes/async/index.d.ts +1 -2
- package/dist/types/api/nodes/async/index.d.ts.map +1 -0
- package/dist/types/api/nodes/collections/flowArray.d.ts +134 -0
- package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -0
- package/dist/types/api/nodes/collections/flowMap.d.ts +98 -0
- package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -0
- package/dist/types/api/nodes/collections/index.d.ts.map +1 -0
- package/dist/types/api/nodes/flowEffect.d.ts +28 -0
- package/dist/types/api/nodes/flowEffect.d.ts.map +1 -0
- package/dist/types/api/nodes/flowSignal.d.ts +25 -0
- package/dist/types/api/nodes/flowSignal.d.ts.map +1 -0
- package/dist/types/api/nodes/flowValue.d.ts +35 -0
- package/dist/types/api/nodes/flowValue.d.ts.map +1 -0
- package/dist/types/api/nodes/index.d.ts +8 -0
- package/dist/types/api/nodes/index.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowConstant.d.ts +29 -0
- package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowDerivation.d.ts +36 -0
- package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowState.d.ts +39 -0
- package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -0
- package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +28 -0
- package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -0
- package/dist/types/{flow → api}/nodes/sync/index.d.ts +1 -2
- package/dist/types/api/nodes/sync/index.d.ts.map +1 -0
- package/dist/types/api/nodes/utils.d.ts +22 -0
- package/dist/types/api/nodes/utils.d.ts.map +1 -0
- package/dist/types/base/disposable.d.ts +11 -0
- package/dist/types/base/disposable.d.ts.map +1 -0
- package/dist/types/base/executionStack.d.ts +14 -0
- package/dist/types/base/executionStack.d.ts.map +1 -0
- package/dist/types/base/index.d.ts +6 -0
- package/dist/types/base/index.d.ts.map +1 -0
- package/dist/types/base/node.d.ts +27 -0
- package/dist/types/base/node.d.ts.map +1 -0
- package/dist/types/base/observable.d.ts +37 -0
- package/dist/types/base/observable.d.ts.map +1 -0
- package/dist/types/base/observer.d.ts +25 -0
- package/dist/types/base/observer.d.ts.map +1 -0
- package/dist/types/converters/index.d.ts +2 -0
- package/dist/types/converters/index.d.ts.map +1 -0
- package/dist/types/converters/solid.d.ts +46 -0
- package/dist/types/converters/solid.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -63
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/nodes/arrayNode.d.ts +2 -0
- package/dist/types/nodes/arrayNode.d.ts.map +1 -0
- package/dist/types/nodes/effectNode.d.ts +2 -0
- package/dist/types/nodes/effectNode.d.ts.map +1 -0
- package/dist/types/nodes/index.d.ts +9 -0
- package/dist/types/nodes/index.d.ts.map +1 -0
- package/dist/types/nodes/mapNode.d.ts +2 -0
- package/dist/types/nodes/mapNode.d.ts.map +1 -0
- package/dist/types/nodes/signalNode.d.ts +2 -0
- package/dist/types/nodes/signalNode.d.ts.map +1 -0
- package/dist/types/nodes/valueAsyncNode.d.ts +2 -0
- package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -0
- package/dist/types/nodes/valueNode.d.ts +2 -0
- package/dist/types/nodes/valueNode.d.ts.map +1 -0
- package/dist/types/nodes/valueSyncNode.d.ts +2 -0
- package/dist/types/nodes/valueSyncNode.d.ts.map +1 -0
- package/dist/types/schedulers/asyncResolver.d.ts +2 -0
- package/dist/types/schedulers/asyncResolver.d.ts.map +1 -0
- package/dist/types/schedulers/asyncScheduler.d.ts +2 -0
- package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -0
- package/dist/types/schedulers/index.d.ts +5 -0
- package/dist/types/schedulers/index.d.ts.map +1 -0
- package/dist/types/schedulers/pendingError.d.ts +2 -0
- package/dist/types/schedulers/pendingError.d.ts.map +1 -0
- package/dist/types/schedulers/scheduler.d.ts +2 -0
- package/dist/types/schedulers/scheduler.d.ts.map +1 -0
- package/dist/types/schedulers/syncResolver.d.ts +2 -0
- package/dist/types/schedulers/syncResolver.d.ts.map +1 -0
- package/dist/types/schedulers/syncScheduler.d.ts +2 -0
- package/dist/types/schedulers/syncScheduler.d.ts.map +1 -0
- package/docs/.vitepress/config.mts +128 -93
- package/docs/api/functions/array.md +14 -37
- package/docs/api/functions/constant.md +13 -25
- package/docs/api/functions/constantAsync.md +69 -0
- package/docs/api/functions/derivation.md +14 -33
- package/docs/api/functions/derivationAsync.md +34 -0
- package/docs/api/functions/from.md +62 -153
- package/docs/api/functions/isDisposable.md +8 -30
- package/docs/api/functions/map.md +15 -36
- package/docs/api/functions/signal.md +8 -23
- package/docs/api/functions/state.md +43 -23
- package/docs/api/functions/stateAsync.md +69 -0
- package/docs/api/functions/subscribe.md +40 -0
- package/docs/api/functions/writableDerivation.md +33 -0
- package/docs/api/functions/writableDerivationAsync.md +34 -0
- package/docs/api/index.md +45 -102
- package/docs/api/interfaces/FlowArray.md +439 -0
- package/docs/api/interfaces/FlowConstant.md +220 -0
- package/docs/api/interfaces/FlowConstantAsync.md +221 -0
- package/docs/api/interfaces/FlowDerivation.md +241 -0
- package/docs/api/interfaces/FlowDerivationAsync.md +242 -0
- package/docs/api/interfaces/FlowDisposable.md +32 -38
- package/docs/api/interfaces/FlowEffect.md +64 -0
- package/docs/api/interfaces/FlowMap.md +374 -0
- package/docs/api/interfaces/FlowObservable.md +155 -0
- package/docs/api/interfaces/FlowSignal.md +156 -0
- package/docs/api/interfaces/FlowState.md +269 -0
- package/docs/api/interfaces/FlowStateAsync.md +268 -0
- package/docs/api/interfaces/FlowSubscribable.md +55 -0
- package/docs/api/interfaces/FlowTracker.md +61 -0
- package/docs/api/interfaces/FlowValue.md +222 -0
- package/docs/api/interfaces/FlowWritableDerivation.md +292 -0
- package/docs/api/interfaces/FlowWritableDerivationAsync.md +293 -0
- package/docs/api/type-aliases/DerivationFunction.md +28 -0
- package/docs/api/type-aliases/DerivationFunctionAsync.md +28 -0
- package/docs/api/type-aliases/FlowArrayAction.md +19 -8
- package/docs/api/type-aliases/FlowDataTracker.md +33 -0
- package/docs/api/type-aliases/FlowMapAction.md +48 -0
- package/docs/api/type-aliases/FlowOnDataListener.md +33 -0
- package/docs/api/type-aliases/FlowOnErrorListener.md +27 -0
- package/docs/api/type-aliases/FlowOnPendingListener.md +21 -0
- package/docs/api/type-aliases/FlowReadonly.md +22 -0
- package/docs/api/type-aliases/InitFunction.md +21 -0
- package/docs/api/type-aliases/InitFunctionAsync.md +21 -0
- package/docs/api/type-aliases/NotPromise.md +6 -3
- package/docs/api/type-aliases/UpdateFunction.md +27 -0
- package/docs/api/type-aliases/UpdateFunctionAsync.md +27 -0
- package/docs/api/typedoc-sidebar.json +1 -81
- package/docs/examples/examples.md +0 -2
- package/docs/guide/advanced/architecture.md +1234 -0
- package/docs/guide/advanced/migration-v2.md +204 -0
- package/docs/guide/advanced/solidjs.md +2 -88
- package/docs/guide/introduction/concepts.md +4 -3
- package/docs/guide/introduction/conventions.md +2 -33
- package/docs/guide/introduction/getting-started.md +28 -23
- package/docs/guide/introduction/lifecycle.md +16 -19
- package/docs/guide/primitives/array.md +102 -216
- package/docs/guide/primitives/constant.md +39 -212
- package/docs/guide/primitives/derivations.md +55 -122
- package/docs/guide/primitives/effects.md +155 -241
- package/docs/guide/primitives/map.md +64 -186
- package/docs/guide/primitives/overview.md +45 -128
- package/docs/guide/primitives/signal.md +51 -88
- package/docs/guide/primitives/state.md +34 -130
- package/package.json +56 -60
- package/src/api/base/flowDisposable.ts +44 -0
- package/src/api/base/flowObservable.ts +28 -0
- package/src/api/base/flowSubscribable.ts +87 -0
- package/src/api/base/flowTracker.ts +7 -0
- package/src/api/base/index.ts +4 -0
- package/src/{flow → api}/index.ts +0 -1
- package/src/api/nodes/async/flowConstantAsync.ts +36 -0
- package/src/api/nodes/async/flowDerivationAsync.ts +42 -0
- package/src/api/nodes/async/flowStateAsync.ts +47 -0
- package/src/api/nodes/async/flowWritableDerivationAsync.ts +33 -0
- package/src/{flow → api}/nodes/async/index.ts +1 -2
- package/src/api/nodes/collections/flowArray.ts +155 -0
- package/src/api/nodes/collections/flowMap.ts +115 -0
- package/src/api/nodes/flowEffect.ts +42 -0
- package/src/api/nodes/flowSignal.ts +28 -0
- package/src/api/nodes/flowValue.ts +36 -0
- package/src/api/nodes/index.ts +7 -0
- package/src/api/nodes/sync/flowConstant.ts +33 -0
- package/src/api/nodes/sync/flowDerivation.ts +41 -0
- package/src/api/nodes/sync/flowState.ts +45 -0
- package/src/api/nodes/sync/flowWritableDerivation.ts +31 -0
- package/src/{flow → api}/nodes/sync/index.ts +1 -2
- package/src/api/nodes/utils.ts +22 -0
- package/src/base/disposable.ts +18 -0
- package/src/base/executionStack.ts +42 -0
- package/src/base/index.ts +5 -0
- package/src/base/node.ts +98 -0
- package/src/base/observable.ts +87 -0
- package/src/base/observer.ts +51 -0
- package/src/converters/index.ts +1 -0
- package/src/converters/solid.ts +109 -0
- package/src/index.ts +2 -64
- package/src/nodes/arrayNode.ts +172 -0
- package/src/nodes/effectNode.ts +59 -0
- package/src/nodes/index.ts +8 -0
- package/src/nodes/mapNode.ts +127 -0
- package/src/nodes/signalNode.ts +21 -0
- package/src/nodes/valueAsyncNode.ts +88 -0
- package/src/nodes/valueNode.ts +144 -0
- package/src/nodes/valueSyncNode.ts +128 -0
- package/src/schedulers/asyncResolver.ts +78 -0
- package/src/schedulers/asyncScheduler.ts +66 -0
- package/src/schedulers/index.ts +4 -0
- package/src/schedulers/pendingError.ts +13 -0
- package/src/schedulers/scheduler.ts +9 -0
- package/src/schedulers/syncResolver.ts +69 -0
- package/src/schedulers/syncScheduler.ts +55 -0
- package/test/base/pendingError.test.ts +67 -0
- package/test/converters/solid.derivation.browser.test.tsx +69 -0
- package/test/converters/solid.node.test.ts +654 -0
- package/test/converters/solid.state.browser.test.tsx +1592 -0
- package/test/reactivity/flowSignal.test.ts +226 -0
- package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +593 -0
- package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +317 -0
- package/test/reactivity/nodes/async/flowConstantAsync.test.ts +652 -0
- package/test/reactivity/nodes/async/flowDerivation.test.ts +898 -0
- package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +1716 -0
- package/test/reactivity/nodes/async/flowStateAsync.test.ts +708 -0
- package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +614 -0
- package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +1289 -0
- package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +961 -0
- package/test/reactivity/nodes/collections/flowArray.states.test.ts +1035 -0
- package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +960 -0
- package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +775 -0
- package/test/reactivity/nodes/collections/flowMap.states.test.ts +958 -0
- package/test/reactivity/nodes/sync/flowConstant.test.ts +377 -0
- package/test/reactivity/nodes/sync/flowDerivation.test.ts +896 -0
- package/test/reactivity/nodes/sync/flowState.test.ts +341 -0
- package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +603 -0
- package/test/vitest.d.ts +10 -0
- package/tsconfig.json +31 -20
- package/typedoc.json +35 -35
- package/vite.config.ts +25 -23
- package/vitest.browser.config.ts +21 -0
- package/vitest.config.ts +12 -12
- package/.cursor/plans/unifier-flowresource-avec-flowderivation-c9506e24.plan.md +0 -372
- package/.cursor/plans/update-js-e795d61b.plan.md +0 -567
- package/dist/types/flow/base/flowDisposable.d.ts +0 -67
- package/dist/types/flow/base/flowDisposable.d.ts.map +0 -1
- package/dist/types/flow/base/flowEffect.d.ts +0 -127
- package/dist/types/flow/base/flowEffect.d.ts.map +0 -1
- package/dist/types/flow/base/flowGraph.d.ts +0 -97
- package/dist/types/flow/base/flowGraph.d.ts.map +0 -1
- package/dist/types/flow/base/flowSignal.d.ts +0 -134
- package/dist/types/flow/base/flowSignal.d.ts.map +0 -1
- package/dist/types/flow/base/flowTracker.d.ts +0 -15
- package/dist/types/flow/base/flowTracker.d.ts.map +0 -1
- package/dist/types/flow/base/index.d.ts +0 -7
- package/dist/types/flow/base/index.d.ts.map +0 -1
- package/dist/types/flow/base/utils.d.ts +0 -20
- package/dist/types/flow/base/utils.d.ts.map +0 -1
- package/dist/types/flow/collections/flowArray.d.ts +0 -148
- package/dist/types/flow/collections/flowArray.d.ts.map +0 -1
- package/dist/types/flow/collections/flowMap.d.ts +0 -224
- package/dist/types/flow/collections/flowMap.d.ts.map +0 -1
- package/dist/types/flow/collections/index.d.ts.map +0 -1
- package/dist/types/flow/index.d.ts +0 -4
- package/dist/types/flow/index.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowConstantAsync.d.ts +0 -137
- package/dist/types/flow/nodes/async/flowConstantAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts +0 -137
- package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowNodeAsync.d.ts +0 -343
- package/dist/types/flow/nodes/async/flowNodeAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts +0 -81
- package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/flowStateAsync.d.ts +0 -111
- package/dist/types/flow/nodes/async/flowStateAsync.d.ts.map +0 -1
- package/dist/types/flow/nodes/async/index.d.ts.map +0 -1
- package/dist/types/flow/nodes/index.d.ts +0 -3
- package/dist/types/flow/nodes/index.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowConstant.d.ts +0 -108
- package/dist/types/flow/nodes/sync/flowConstant.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowDerivation.d.ts +0 -100
- package/dist/types/flow/nodes/sync/flowDerivation.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowNode.d.ts +0 -314
- package/dist/types/flow/nodes/sync/flowNode.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowReadonly.d.ts +0 -57
- package/dist/types/flow/nodes/sync/flowReadonly.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/flowState.d.ts +0 -96
- package/dist/types/flow/nodes/sync/flowState.d.ts.map +0 -1
- package/dist/types/flow/nodes/sync/index.d.ts.map +0 -1
- package/dist/types/solid/converters.d.ts +0 -53
- package/dist/types/solid/converters.d.ts.map +0 -1
- package/dist/types/solid/index.d.ts +0 -3
- package/dist/types/solid/index.d.ts.map +0 -1
- package/dist/types/solid/primitives.d.ts +0 -181
- package/dist/types/solid/primitives.d.ts.map +0 -1
- package/docs/api/classes/FlowArray.md +0 -489
- package/docs/api/classes/FlowConstant.md +0 -350
- package/docs/api/classes/FlowDerivation.md +0 -334
- package/docs/api/classes/FlowEffect.md +0 -100
- package/docs/api/classes/FlowMap.md +0 -512
- package/docs/api/classes/FlowObservable.md +0 -306
- package/docs/api/classes/FlowResource.md +0 -380
- package/docs/api/classes/FlowResourceAsync.md +0 -362
- package/docs/api/classes/FlowSignal.md +0 -160
- package/docs/api/classes/FlowState.md +0 -368
- package/docs/api/classes/FlowStream.md +0 -367
- package/docs/api/classes/FlowStreamAsync.md +0 -364
- package/docs/api/classes/SolidDerivation.md +0 -75
- package/docs/api/classes/SolidResource.md +0 -91
- package/docs/api/classes/SolidState.md +0 -71
- package/docs/api/classes/TrackingContext.md +0 -33
- package/docs/api/functions/effect.md +0 -49
- package/docs/api/functions/resource.md +0 -52
- package/docs/api/functions/resourceAsync.md +0 -50
- package/docs/api/functions/stream.md +0 -53
- package/docs/api/functions/streamAsync.md +0 -50
- package/docs/api/interfaces/SolidObservable.md +0 -19
- package/docs/api/type-aliases/FlowStreamDisposer.md +0 -15
- package/docs/api/type-aliases/FlowStreamSetter.md +0 -27
- package/docs/api/type-aliases/FlowStreamUpdater.md +0 -32
- package/docs/api/type-aliases/SolidGetter.md +0 -17
- package/docs/guide/primitives/resources.md +0 -858
- package/docs/guide/primitives/streams.md +0 -931
- package/src/flow/base/flowDisposable.ts +0 -71
- package/src/flow/base/flowEffect.ts +0 -171
- package/src/flow/base/flowGraph.ts +0 -288
- package/src/flow/base/flowSignal.ts +0 -207
- package/src/flow/base/flowTracker.ts +0 -17
- package/src/flow/base/index.ts +0 -6
- package/src/flow/base/utils.ts +0 -19
- package/src/flow/collections/flowArray.ts +0 -409
- package/src/flow/collections/flowMap.ts +0 -398
- package/src/flow/nodes/async/flowConstantAsync.ts +0 -142
- package/src/flow/nodes/async/flowDerivationAsync.ts +0 -143
- package/src/flow/nodes/async/flowNodeAsync.ts +0 -474
- package/src/flow/nodes/async/flowReadonlyAsync.ts +0 -81
- package/src/flow/nodes/async/flowStateAsync.ts +0 -116
- package/src/flow/nodes/await/advanced/index.ts +0 -5
- package/src/flow/nodes/await/advanced/resource.ts +0 -134
- package/src/flow/nodes/await/advanced/resourceAsync.ts +0 -109
- package/src/flow/nodes/await/advanced/stream.ts +0 -188
- package/src/flow/nodes/await/advanced/streamAsync.ts +0 -176
- package/src/flow/nodes/await/flowConstantAwait.ts +0 -154
- package/src/flow/nodes/await/flowDerivationAwait.ts +0 -154
- package/src/flow/nodes/await/flowNodeAwait.ts +0 -508
- package/src/flow/nodes/await/flowReadonlyAwait.ts +0 -89
- package/src/flow/nodes/await/flowStateAwait.ts +0 -130
- package/src/flow/nodes/await/index.ts +0 -5
- package/src/flow/nodes/index.ts +0 -3
- package/src/flow/nodes/sync/flowConstant.ts +0 -111
- package/src/flow/nodes/sync/flowDerivation.ts +0 -105
- package/src/flow/nodes/sync/flowNode.ts +0 -439
- package/src/flow/nodes/sync/flowReadonly.ts +0 -57
- package/src/flow/nodes/sync/flowState.ts +0 -101
- package/src/solid/converters.ts +0 -139
- package/src/solid/index.ts +0 -2
- package/src/solid/primitives.ts +0 -215
- package/test/base/flowEffect.test.ts +0 -108
- package/test/base/flowGraph.test.ts +0 -485
- package/test/base/flowSignal.test.ts +0 -372
- package/test/collections/flowArray.asyncStates.test.ts +0 -1553
- package/test/collections/flowArray.scalars.test.ts +0 -1129
- package/test/collections/flowArray.states.test.ts +0 -1365
- package/test/collections/flowMap.asyncStates.test.ts +0 -1105
- package/test/collections/flowMap.scalars.test.ts +0 -877
- package/test/collections/flowMap.states.test.ts +0 -1097
- package/test/nodes/async/flowConstantAsync.test.ts +0 -860
- package/test/nodes/async/flowDerivationAsync.test.ts +0 -1517
- package/test/nodes/async/flowStateAsync.test.ts +0 -1387
- package/test/nodes/await/advanced/resource.test.ts +0 -129
- package/test/nodes/await/advanced/resourceAsync.test.ts +0 -108
- package/test/nodes/await/advanced/stream.test.ts +0 -198
- package/test/nodes/await/advanced/streamAsync.test.ts +0 -196
- package/test/nodes/await/flowConstantAwait.test.ts +0 -643
- package/test/nodes/await/flowDerivationAwait.test.ts +0 -1583
- package/test/nodes/await/flowStateAwait.test.ts +0 -999
- package/test/nodes/mixed/derivation.test.ts +0 -1527
- package/test/nodes/sync/flowConstant.test.ts +0 -620
- package/test/nodes/sync/flowDerivation.test.ts +0 -1373
- package/test/nodes/sync/flowState.test.ts +0 -945
- package/test/solid/converters.test.ts +0 -721
- package/test/solid/primitives.test.ts +0 -1031
- /package/dist/types/{flow → api/nodes}/collections/index.d.ts +0 -0
- /package/docs/guide/advanced/{upgrading.md → migration-v1.md} +0 -0
- /package/src/{flow → api/nodes}/collections/index.ts +0 -0
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { ResourceFetcher } from 'solid-js';
|
|
2
|
-
/**
|
|
3
|
-
* A getter function or value for Solid state/derivation.
|
|
4
|
-
*
|
|
5
|
-
* @typeParam T - The value type.
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
|
-
export type SolidGetter<T> = ((previous: T) => T) | T;
|
|
9
|
-
/**
|
|
10
|
-
* Interface for a Solid-style observable value.
|
|
11
|
-
*
|
|
12
|
-
* @typeParam T - The value type.
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
export interface SolidObservable<T> {
|
|
16
|
-
/**
|
|
17
|
-
* Returns the current value.
|
|
18
|
-
*/
|
|
19
|
-
get: () => T;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Solid-style state container wrapping SolidJS's createSignal, providing a writable reactive signal.
|
|
23
|
-
*
|
|
24
|
-
* @remarks
|
|
25
|
-
* SolidState is a thin wrapper around SolidJS's `createSignal` that provides a class-based
|
|
26
|
-
* interface consistent with PicoFlow's API style. It's used internally by PicoFlow's Solid
|
|
27
|
-
* integration but can also be used directly in Solid components.
|
|
28
|
-
*
|
|
29
|
-
* Unlike PicoFlow's {@link FlowState} which uses explicit tracking context, SolidState
|
|
30
|
-
* relies on SolidJS's automatic dependency tracking within reactive contexts like
|
|
31
|
-
* `createEffect` or component render functions.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* const count = new SolidState(0);
|
|
36
|
-
*
|
|
37
|
-
* // In a Solid component
|
|
38
|
-
* function Counter() {
|
|
39
|
-
* return <div>{count.get()}</div>; // Automatically reactive
|
|
40
|
-
* }
|
|
41
|
-
*
|
|
42
|
-
* // Update the value
|
|
43
|
-
* count.set(1);
|
|
44
|
-
* count.set(prev => prev + 1);
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* @typeParam T - The value type.
|
|
48
|
-
* @public
|
|
49
|
-
*/
|
|
50
|
-
export declare class SolidState<T> implements SolidObservable<T> {
|
|
51
|
-
/**
|
|
52
|
-
* Returns the current value.
|
|
53
|
-
*/
|
|
54
|
-
readonly get: () => T;
|
|
55
|
-
/**
|
|
56
|
-
* Sets the value or updates it using a getter function.
|
|
57
|
-
*/
|
|
58
|
-
readonly set: (param: SolidGetter<T>) => void;
|
|
59
|
-
/**
|
|
60
|
-
* Creates a new SolidState with the given initial value.
|
|
61
|
-
* @param initialValue - The initial value.
|
|
62
|
-
*/
|
|
63
|
-
constructor(initialValue: T);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Solid-style derivation wrapping SolidJS's createMemo, providing a computed reactive value.
|
|
67
|
-
*
|
|
68
|
-
* @remarks
|
|
69
|
-
* SolidDerivation is a thin wrapper around SolidJS's `createMemo` that provides a class-based
|
|
70
|
-
* interface consistent with PicoFlow's API style. It creates a memoized computation that
|
|
71
|
-
* automatically tracks its dependencies and recomputes only when they change.
|
|
72
|
-
*
|
|
73
|
-
* Unlike PicoFlow's {@link FlowDerivation} which uses explicit tracking context, SolidDerivation
|
|
74
|
-
* relies on SolidJS's automatic dependency tracking. The computation function runs within
|
|
75
|
-
* SolidJS's reactive scope and automatically subscribes to any signals accessed during execution.
|
|
76
|
-
*
|
|
77
|
-
* **Memoization:**
|
|
78
|
-
* The computed value is cached and only recomputed when tracked dependencies change,
|
|
79
|
-
* providing efficient derived state management.
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```typescript
|
|
83
|
-
* const firstName = new SolidState('John');
|
|
84
|
-
* const lastName = new SolidState('Doe');
|
|
85
|
-
*
|
|
86
|
-
* const fullName = new SolidDerivation(() => {
|
|
87
|
-
* return `${firstName.get()} ${lastName.get()}`;
|
|
88
|
-
* });
|
|
89
|
-
*
|
|
90
|
-
* // In a Solid component
|
|
91
|
-
* function Display() {
|
|
92
|
-
* return <div>{fullName.get()}</div>; // Automatically updates
|
|
93
|
-
* }
|
|
94
|
-
* ```
|
|
95
|
-
*
|
|
96
|
-
* @typeParam T - The value type.
|
|
97
|
-
* @public
|
|
98
|
-
*/
|
|
99
|
-
export declare class SolidDerivation<T> implements SolidObservable<T> {
|
|
100
|
-
/**
|
|
101
|
-
* Returns the current derived value.
|
|
102
|
-
*/
|
|
103
|
-
readonly get: () => T;
|
|
104
|
-
/**
|
|
105
|
-
* Creates a new SolidDerivation from a getter function or value.
|
|
106
|
-
* @param calculator - The getter function or value.
|
|
107
|
-
*/
|
|
108
|
-
constructor(calculator: SolidGetter<T>);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Solid-style resource wrapping SolidJS's createResource, providing async data loading with reactive state.
|
|
112
|
-
*
|
|
113
|
-
* @remarks
|
|
114
|
-
* SolidResource is a thin wrapper around SolidJS's `createResource` that provides a class-based
|
|
115
|
-
* interface consistent with PicoFlow's API style. It manages asynchronous data fetching with
|
|
116
|
-
* built-in loading states, error handling, and automatic reactivity.
|
|
117
|
-
*
|
|
118
|
-
* Unlike PicoFlow's {@link FlowResource} or {@link FlowResourceAsync}, SolidResource integrates
|
|
119
|
-
* directly with SolidJS's Suspense and ErrorBoundary mechanisms, providing a first-class async
|
|
120
|
-
* data loading experience in Solid applications.
|
|
121
|
-
*
|
|
122
|
-
* **Resource States:**
|
|
123
|
-
* - `unresolved`: Initial state before first fetch
|
|
124
|
-
* - `pending`: Fetch is in progress
|
|
125
|
-
* - `ready`: Data has been successfully loaded
|
|
126
|
-
* - `refreshing`: Refetching while previous data is still available
|
|
127
|
-
* - `errored`: Fetch failed with an error
|
|
128
|
-
*
|
|
129
|
-
* **Properties:**
|
|
130
|
-
* - `get()`: Returns the current value (or undefined if not ready)
|
|
131
|
-
* - `state()`: Returns the current loading state
|
|
132
|
-
* - `latest()`: Returns the most recent successfully loaded value
|
|
133
|
-
* - `refetch()`: Triggers a new fetch operation
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* ```typescript
|
|
137
|
-
* const user = new SolidResource(async () => {
|
|
138
|
-
* const res = await fetch('/api/user');
|
|
139
|
-
* return res.json();
|
|
140
|
-
* });
|
|
141
|
-
*
|
|
142
|
-
* // In a Solid component
|
|
143
|
-
* function UserProfile() {
|
|
144
|
-
* return (
|
|
145
|
-
* <div>
|
|
146
|
-
* {user.state() === 'pending' && <p>Loading...</p>}
|
|
147
|
-
* {user.state() === 'ready' && <p>Name: {user.get()?.name}</p>}
|
|
148
|
-
* <button onClick={() => user.refetch()}>Refresh</button>
|
|
149
|
-
* </div>
|
|
150
|
-
* );
|
|
151
|
-
* }
|
|
152
|
-
* ```
|
|
153
|
-
*
|
|
154
|
-
* @typeParam T - The value type.
|
|
155
|
-
* @public
|
|
156
|
-
*/
|
|
157
|
-
export declare class SolidResource<T> implements SolidObservable<T | undefined> {
|
|
158
|
-
/**
|
|
159
|
-
* Returns the current value (or undefined if not yet loaded).
|
|
160
|
-
*/
|
|
161
|
-
readonly get: () => T | undefined;
|
|
162
|
-
/**
|
|
163
|
-
* Returns the current resource state.
|
|
164
|
-
*/
|
|
165
|
-
readonly state: () => "unresolved" | "pending" | "errored" | "ready" | "refreshing";
|
|
166
|
-
/**
|
|
167
|
-
* Returns the latest successfully loaded value (or undefined).
|
|
168
|
-
*/
|
|
169
|
-
readonly latest: () => T | undefined;
|
|
170
|
-
/**
|
|
171
|
-
* Triggers a refetch of the resource.
|
|
172
|
-
*/
|
|
173
|
-
readonly refetch: () => void;
|
|
174
|
-
readonly set: (param: SolidGetter<T>) => void;
|
|
175
|
-
/**
|
|
176
|
-
* Creates a new SolidResource from a fetcher function.
|
|
177
|
-
* @param fetcher - The async fetcher function.
|
|
178
|
-
*/
|
|
179
|
-
constructor(fetcher: ResourceFetcher<true, T, unknown>);
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/solid/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,eAAe,EACpB,MAAM,UAAU,CAAC;AAElB;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE9C;;;OAGG;gBACS,YAAY,EAAE,CAAC;CAK3B;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC5D;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEtB;;;OAGG;gBACS,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;CAItC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC;IACtE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MACb,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,GACP,YAAY,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACrC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAE7B,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE9C;;;OAGG;gBACS,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;CAStD"}
|
|
@@ -1,489 +0,0 @@
|
|
|
1
|
-
[@ersbeth/picoflow](/api/index.md) / FlowArray
|
|
2
|
-
|
|
3
|
-
# Class: FlowArray\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: [advanced/array.ts:46](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L46)
|
|
6
|
-
|
|
7
|
-
Represents a reactive array.
|
|
8
|
-
|
|
9
|
-
## Extends
|
|
10
|
-
|
|
11
|
-
- [`FlowObservable`](/api/classes/FlowObservable.md)\<`T`[]\>
|
|
12
|
-
|
|
13
|
-
## Type Parameters
|
|
14
|
-
|
|
15
|
-
| Type Parameter |
|
|
16
|
-
| ------ |
|
|
17
|
-
| `T` |
|
|
18
|
-
|
|
19
|
-
## Constructors
|
|
20
|
-
|
|
21
|
-
### Constructor
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
new FlowArray<T>(value): FlowArray<T>;
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Defined in: [advanced/array.ts:58](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L58)
|
|
28
|
-
|
|
29
|
-
Creates an instance of FlowArray.
|
|
30
|
-
|
|
31
|
-
#### Parameters
|
|
32
|
-
|
|
33
|
-
| Parameter | Type | Default value | Description |
|
|
34
|
-
| ------ | ------ | ------ | ------ |
|
|
35
|
-
| `value` | `T`[] | `[]` | Initial array value. |
|
|
36
|
-
|
|
37
|
-
#### Returns
|
|
38
|
-
|
|
39
|
-
`FlowArray`\<`T`\>
|
|
40
|
-
|
|
41
|
-
#### Overrides
|
|
42
|
-
|
|
43
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`constructor`](/api/classes/FlowObservable.md#constructor)
|
|
44
|
-
|
|
45
|
-
## Properties
|
|
46
|
-
|
|
47
|
-
| Property | Modifier | Type | Description | Defined in |
|
|
48
|
-
| ------ | ------ | ------ | ------ | ------ |
|
|
49
|
-
| <a id="lastaction"></a> `$lastAction` | `public` | [`FlowState`](/api/classes/FlowState.md)\<[`FlowArrayAction`](/api/type-aliases/FlowArrayAction.md)\<`T`\>\> | Last action performed on the FlowArray. | [advanced/array.ts:51](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L51) |
|
|
50
|
-
|
|
51
|
-
## Accessors
|
|
52
|
-
|
|
53
|
-
### disposed
|
|
54
|
-
|
|
55
|
-
#### Get Signature
|
|
56
|
-
|
|
57
|
-
```ts
|
|
58
|
-
get disposed(): boolean;
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Defined in: [basic/signal.ts:97](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L97)
|
|
62
|
-
|
|
63
|
-
Indicates whether the FlowSignal has been disposed.
|
|
64
|
-
|
|
65
|
-
##### Remarks
|
|
66
|
-
|
|
67
|
-
Once disposed, the signal should not be used.
|
|
68
|
-
|
|
69
|
-
##### Returns
|
|
70
|
-
|
|
71
|
-
`boolean`
|
|
72
|
-
|
|
73
|
-
#### Inherited from
|
|
74
|
-
|
|
75
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`disposed`](/api/classes/FlowObservable.md#disposed)
|
|
76
|
-
|
|
77
|
-
***
|
|
78
|
-
|
|
79
|
-
### length
|
|
80
|
-
|
|
81
|
-
#### Get Signature
|
|
82
|
-
|
|
83
|
-
```ts
|
|
84
|
-
get length(): number;
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Defined in: [advanced/array.ts:72](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L72)
|
|
88
|
-
|
|
89
|
-
Gets the current length of the array.
|
|
90
|
-
|
|
91
|
-
##### Returns
|
|
92
|
-
|
|
93
|
-
`number`
|
|
94
|
-
|
|
95
|
-
The length of the array.
|
|
96
|
-
|
|
97
|
-
## Methods
|
|
98
|
-
|
|
99
|
-
### clear()
|
|
100
|
-
|
|
101
|
-
```ts
|
|
102
|
-
clear(): void;
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Defined in: [advanced/array.ts:195](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L195)
|
|
106
|
-
|
|
107
|
-
Clears all items from the array.
|
|
108
|
-
|
|
109
|
-
#### Returns
|
|
110
|
-
|
|
111
|
-
`void`
|
|
112
|
-
|
|
113
|
-
***
|
|
114
|
-
|
|
115
|
-
### dispose()
|
|
116
|
-
|
|
117
|
-
```ts
|
|
118
|
-
dispose(options?): void;
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Defined in: [advanced/array.ts:211](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L211)
|
|
122
|
-
|
|
123
|
-
Disposes the FlowArray and its items.
|
|
124
|
-
|
|
125
|
-
#### Parameters
|
|
126
|
-
|
|
127
|
-
| Parameter | Type | Description |
|
|
128
|
-
| ------ | ------ | ------ |
|
|
129
|
-
| `options?` | \{ `self`: `boolean`; \} | Disposal options. |
|
|
130
|
-
| `options.self?` | `boolean` | - |
|
|
131
|
-
|
|
132
|
-
#### Returns
|
|
133
|
-
|
|
134
|
-
`void`
|
|
135
|
-
|
|
136
|
-
#### Overrides
|
|
137
|
-
|
|
138
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`dispose`](/api/classes/FlowObservable.md#dispose)
|
|
139
|
-
|
|
140
|
-
***
|
|
141
|
-
|
|
142
|
-
### get()
|
|
143
|
-
|
|
144
|
-
```ts
|
|
145
|
-
get(context): T[];
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Defined in: [basic/observable.ts:47](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L47)
|
|
149
|
-
|
|
150
|
-
Gets the current value with optional dependency tracking.
|
|
151
|
-
|
|
152
|
-
#### Parameters
|
|
153
|
-
|
|
154
|
-
| Parameter | Type | Description |
|
|
155
|
-
| ------ | ------ | ------ |
|
|
156
|
-
| `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. |
|
|
157
|
-
|
|
158
|
-
#### Returns
|
|
159
|
-
|
|
160
|
-
`T`[]
|
|
161
|
-
|
|
162
|
-
The current value of type T.
|
|
163
|
-
|
|
164
|
-
#### Remarks
|
|
165
|
-
|
|
166
|
-
Use `get(t)` within effects and derivations to create reactive dependencies.
|
|
167
|
-
Use `get(null)` when you need to read a value without tracking (though `pick()` is more idiomatic).
|
|
168
|
-
|
|
169
|
-
#### Example
|
|
170
|
-
|
|
171
|
-
```typescript
|
|
172
|
-
effect((t) => {
|
|
173
|
-
const tracked = $state.get(t); // Dependency registered
|
|
174
|
-
const untracked = $other.get(null); // No dependency
|
|
175
|
-
});
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
#### Inherited from
|
|
179
|
-
|
|
180
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`get`](/api/classes/FlowObservable.md#get)
|
|
181
|
-
|
|
182
|
-
***
|
|
183
|
-
|
|
184
|
-
### pick()
|
|
185
|
-
|
|
186
|
-
```ts
|
|
187
|
-
pick(): T[];
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
Defined in: [basic/observable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L82)
|
|
191
|
-
|
|
192
|
-
Gets the current value without any dependency tracking.
|
|
193
|
-
|
|
194
|
-
#### Returns
|
|
195
|
-
|
|
196
|
-
`T`[]
|
|
197
|
-
|
|
198
|
-
The current value of type T.
|
|
199
|
-
|
|
200
|
-
#### Remarks
|
|
201
|
-
|
|
202
|
-
This method is equivalent to calling `get(null)` but provides a more semantic and readable API.
|
|
203
|
-
Use `pick()` when you want to read a snapshot of the current value without creating a reactive
|
|
204
|
-
dependency. This is useful for:
|
|
205
|
-
- Reading initial values
|
|
206
|
-
- Accessing configuration that shouldn't trigger updates
|
|
207
|
-
- Mixing tracked and untracked reads in the same effect
|
|
208
|
-
|
|
209
|
-
#### Example
|
|
210
|
-
|
|
211
|
-
```typescript
|
|
212
|
-
// Read a snapshot outside reactive context
|
|
213
|
-
const currentValue = $state.pick();
|
|
214
|
-
|
|
215
|
-
// Mix tracked and untracked reads
|
|
216
|
-
effect((t) => {
|
|
217
|
-
const tracked = $reactive.get(t); // Triggers re-runs
|
|
218
|
-
const snapshot = $config.pick(); // Doesn't trigger re-runs
|
|
219
|
-
processData(tracked, snapshot);
|
|
220
|
-
});
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
#### Inherited from
|
|
224
|
-
|
|
225
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`pick`](/api/classes/FlowObservable.md#pick)
|
|
226
|
-
|
|
227
|
-
***
|
|
228
|
-
|
|
229
|
-
### pop()
|
|
230
|
-
|
|
231
|
-
```ts
|
|
232
|
-
pop(): void;
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
Defined in: [advanced/array.ts:133](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L133)
|
|
236
|
-
|
|
237
|
-
Removes the last item from the array.
|
|
238
|
-
|
|
239
|
-
#### Returns
|
|
240
|
-
|
|
241
|
-
`void`
|
|
242
|
-
|
|
243
|
-
***
|
|
244
|
-
|
|
245
|
-
### push()
|
|
246
|
-
|
|
247
|
-
```ts
|
|
248
|
-
push(item): void;
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
Defined in: [advanced/array.ts:122](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L122)
|
|
252
|
-
|
|
253
|
-
Appends an item to the end of the array.
|
|
254
|
-
|
|
255
|
-
#### Parameters
|
|
256
|
-
|
|
257
|
-
| Parameter | Type | Description |
|
|
258
|
-
| ------ | ------ | ------ |
|
|
259
|
-
| `item` | `T` | The item to append. |
|
|
260
|
-
|
|
261
|
-
#### Returns
|
|
262
|
-
|
|
263
|
-
`void`
|
|
264
|
-
|
|
265
|
-
***
|
|
266
|
-
|
|
267
|
-
### set()
|
|
268
|
-
|
|
269
|
-
```ts
|
|
270
|
-
set(items): void;
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Defined in: [advanced/array.ts:91](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L91)
|
|
274
|
-
|
|
275
|
-
Replaces the entire array with new items.
|
|
276
|
-
|
|
277
|
-
#### Parameters
|
|
278
|
-
|
|
279
|
-
| Parameter | Type | Description |
|
|
280
|
-
| ------ | ------ | ------ |
|
|
281
|
-
| `items` | `T`[] | The new array of items. |
|
|
282
|
-
|
|
283
|
-
#### Returns
|
|
284
|
-
|
|
285
|
-
`void`
|
|
286
|
-
|
|
287
|
-
***
|
|
288
|
-
|
|
289
|
-
### setItem()
|
|
290
|
-
|
|
291
|
-
```ts
|
|
292
|
-
setItem(index, item): void;
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
Defined in: [advanced/array.ts:107](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L107)
|
|
296
|
-
|
|
297
|
-
Replaces an item at a specific index.
|
|
298
|
-
|
|
299
|
-
#### Parameters
|
|
300
|
-
|
|
301
|
-
| Parameter | Type | Description |
|
|
302
|
-
| ------ | ------ | ------ |
|
|
303
|
-
| `index` | `number` | The index of the item to replace. |
|
|
304
|
-
| `item` | `T` | The new item. |
|
|
305
|
-
|
|
306
|
-
#### Returns
|
|
307
|
-
|
|
308
|
-
`void`
|
|
309
|
-
|
|
310
|
-
***
|
|
311
|
-
|
|
312
|
-
### shift()
|
|
313
|
-
|
|
314
|
-
```ts
|
|
315
|
-
shift(): void;
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
Defined in: [advanced/array.ts:159](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L159)
|
|
319
|
-
|
|
320
|
-
Removes the first item from the array.
|
|
321
|
-
|
|
322
|
-
#### Returns
|
|
323
|
-
|
|
324
|
-
`void`
|
|
325
|
-
|
|
326
|
-
***
|
|
327
|
-
|
|
328
|
-
### splice()
|
|
329
|
-
|
|
330
|
-
```ts
|
|
331
|
-
splice(
|
|
332
|
-
start,
|
|
333
|
-
deleteCount, ...
|
|
334
|
-
newItems): void;
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
Defined in: [advanced/array.ts:176](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L176)
|
|
338
|
-
|
|
339
|
-
Changes the content of the array.
|
|
340
|
-
|
|
341
|
-
#### Parameters
|
|
342
|
-
|
|
343
|
-
| Parameter | Type | Description |
|
|
344
|
-
| ------ | ------ | ------ |
|
|
345
|
-
| `start` | `number` | The starting index. |
|
|
346
|
-
| `deleteCount` | `number` | Number of items to remove. |
|
|
347
|
-
| ...`newItems` | `T`[] | New items to add. |
|
|
348
|
-
|
|
349
|
-
#### Returns
|
|
350
|
-
|
|
351
|
-
`void`
|
|
352
|
-
|
|
353
|
-
***
|
|
354
|
-
|
|
355
|
-
### subscribe()
|
|
356
|
-
|
|
357
|
-
```ts
|
|
358
|
-
subscribe(listener): () => void;
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
Defined in: [basic/observable.ts:103](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/observable.ts#L103)
|
|
362
|
-
|
|
363
|
-
Subscribes a listener function to changes of the observable.
|
|
364
|
-
The listener is executed immediately with the current value and on subsequent updates.
|
|
365
|
-
|
|
366
|
-
#### Parameters
|
|
367
|
-
|
|
368
|
-
| Parameter | Type | Description |
|
|
369
|
-
| ------ | ------ | ------ |
|
|
370
|
-
| `listener` | (`value`) => `void` | A callback function that receives the new value. |
|
|
371
|
-
|
|
372
|
-
#### Returns
|
|
373
|
-
|
|
374
|
-
A disposer function to cancel the subscription.
|
|
375
|
-
|
|
376
|
-
```ts
|
|
377
|
-
(): void;
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
##### Returns
|
|
381
|
-
|
|
382
|
-
`void`
|
|
383
|
-
|
|
384
|
-
#### Inherited from
|
|
385
|
-
|
|
386
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`subscribe`](/api/classes/FlowObservable.md#subscribe)
|
|
387
|
-
|
|
388
|
-
***
|
|
389
|
-
|
|
390
|
-
### trigger()
|
|
391
|
-
|
|
392
|
-
```ts
|
|
393
|
-
trigger(): void;
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
Defined in: [basic/signal.ts:19](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L19)
|
|
397
|
-
|
|
398
|
-
Triggers the FlowSignal.
|
|
399
|
-
Notifies all registered listeners and schedules execution of associated effects.
|
|
400
|
-
|
|
401
|
-
#### Returns
|
|
402
|
-
|
|
403
|
-
`void`
|
|
404
|
-
|
|
405
|
-
#### Throws
|
|
406
|
-
|
|
407
|
-
If the FlowSignal has already been disposed.
|
|
408
|
-
|
|
409
|
-
#### Inherited from
|
|
410
|
-
|
|
411
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`trigger`](/api/classes/FlowObservable.md#trigger)
|
|
412
|
-
|
|
413
|
-
***
|
|
414
|
-
|
|
415
|
-
### unshift()
|
|
416
|
-
|
|
417
|
-
```ts
|
|
418
|
-
unshift(item): void;
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
Defined in: [advanced/array.ts:148](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L148)
|
|
422
|
-
|
|
423
|
-
Inserts an item at the beginning of the array.
|
|
424
|
-
|
|
425
|
-
#### Parameters
|
|
426
|
-
|
|
427
|
-
| Parameter | Type | Description |
|
|
428
|
-
| ------ | ------ | ------ |
|
|
429
|
-
| `item` | `T` | The item to insert. |
|
|
430
|
-
|
|
431
|
-
#### Returns
|
|
432
|
-
|
|
433
|
-
`void`
|
|
434
|
-
|
|
435
|
-
***
|
|
436
|
-
|
|
437
|
-
### watch()
|
|
438
|
-
|
|
439
|
-
```ts
|
|
440
|
-
watch(context): void;
|
|
441
|
-
```
|
|
442
|
-
|
|
443
|
-
Defined in: [basic/signal.ts:57](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/basic/signal.ts#L57)
|
|
444
|
-
|
|
445
|
-
Watches the signal, registering it as a dependency in the tracking context.
|
|
446
|
-
|
|
447
|
-
#### Parameters
|
|
448
|
-
|
|
449
|
-
| Parameter | Type | Description |
|
|
450
|
-
| ------ | ------ | ------ |
|
|
451
|
-
| `context` | [`TrackingContext`](/api/classes/TrackingContext.md) | The tracking context in which to register this signal as a dependency. |
|
|
452
|
-
|
|
453
|
-
#### Returns
|
|
454
|
-
|
|
455
|
-
`void`
|
|
456
|
-
|
|
457
|
-
#### Remarks
|
|
458
|
-
|
|
459
|
-
Use `watch()` when you want to track a signal without reading its value (signals don't
|
|
460
|
-
have values to read). This is useful for triggering effects based on signal events
|
|
461
|
-
without needing associated data.
|
|
462
|
-
|
|
463
|
-
When the signal is triggered via `trigger()`, any effects or derivations that have
|
|
464
|
-
watched this signal will automatically re-execute.
|
|
465
|
-
|
|
466
|
-
This method must be called within an effect or derivation context where a TrackingContext
|
|
467
|
-
is available. For observables (which hold values), use `.get(t)` instead, which both
|
|
468
|
-
reads the value and watches for changes.
|
|
469
|
-
|
|
470
|
-
#### Throws
|
|
471
|
-
|
|
472
|
-
Error if the signal has been disposed.
|
|
473
|
-
|
|
474
|
-
#### Example
|
|
475
|
-
|
|
476
|
-
```typescript
|
|
477
|
-
const $signal = signal();
|
|
478
|
-
|
|
479
|
-
effect((t) => {
|
|
480
|
-
$signal.watch(t); // Track the signal
|
|
481
|
-
console.log('Signal triggered!');
|
|
482
|
-
});
|
|
483
|
-
|
|
484
|
-
$signal.trigger(); // Logs: "Signal triggered!"
|
|
485
|
-
```
|
|
486
|
-
|
|
487
|
-
#### Inherited from
|
|
488
|
-
|
|
489
|
-
[`FlowObservable`](/api/classes/FlowObservable.md).[`watch`](/api/classes/FlowObservable.md#watch)
|