@ersbeth/picoflow 1.1.2 → 2.0.1
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 +854 -1520
- 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 +29 -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 +36 -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 +23 -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 +35 -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 +25 -0
- package/dist/types/nodes/arrayNode.d.ts.map +1 -0
- package/dist/types/nodes/effectNode.d.ts +16 -0
- package/dist/types/nodes/effectNode.d.ts.map +1 -0
- package/dist/types/nodes/index.d.ts +8 -0
- package/dist/types/nodes/index.d.ts.map +1 -0
- package/dist/types/nodes/mapNode.d.ts +19 -0
- package/dist/types/nodes/mapNode.d.ts.map +1 -0
- package/dist/types/nodes/signalNode.d.ts +10 -0
- package/dist/types/nodes/signalNode.d.ts.map +1 -0
- package/dist/types/nodes/valueAsyncNode.d.ts +23 -0
- package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -0
- package/dist/types/nodes/valueNode.d.ts +20 -0
- package/dist/types/nodes/valueNode.d.ts.map +1 -0
- package/dist/types/nodes/valueSyncNode.d.ts +23 -0
- package/dist/types/nodes/valueSyncNode.d.ts.map +1 -0
- package/dist/types/schedulers/asyncResolver.d.ts +19 -0
- package/dist/types/schedulers/asyncResolver.d.ts.map +1 -0
- package/dist/types/schedulers/asyncScheduler.d.ts +20 -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 +9 -0
- package/dist/types/schedulers/pendingError.d.ts.map +1 -0
- package/dist/types/schedulers/scheduler.d.ts +10 -0
- package/dist/types/schedulers/scheduler.d.ts.map +1 -0
- package/dist/types/schedulers/syncResolver.d.ts +19 -0
- package/dist/types/schedulers/syncResolver.d.ts.map +1 -0
- package/dist/types/schedulers/syncScheduler.d.ts +19 -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 +63 -79
- 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 +37 -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 +24 -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 +92 -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 +180 -0
- package/src/nodes/effectNode.ts +58 -0
- package/src/nodes/index.ts +7 -0
- package/src/nodes/mapNode.ts +125 -0
- package/src/nodes/signalNode.ts +19 -0
- package/src/nodes/valueAsyncNode.ts +85 -0
- package/src/nodes/valueNode.ts +148 -0
- package/src/nodes/valueSyncNode.ts +125 -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FlowMap, FlowMapAction, NotPromise, UpdateFunction } from '../api';
|
|
2
|
+
import { ValueSyncNode } from './valueSyncNode';
|
|
3
|
+
/**
|
|
4
|
+
* Internal implementation of reactive map with mutation tracking.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare class MapNode<K, V> extends ValueSyncNode<Map<K, V>> implements FlowMap<K, V> {
|
|
8
|
+
$lastAction: ValueSyncNode<FlowMapAction<K, V>>;
|
|
9
|
+
protected _value: Map<K, V>;
|
|
10
|
+
constructor(value?: Map<K, V>);
|
|
11
|
+
add(key: K, value: V): void;
|
|
12
|
+
update(key: K, value: V): V;
|
|
13
|
+
delete(key: K): V;
|
|
14
|
+
set(map: NotPromise<Map<K, V>>): Map<K, V>;
|
|
15
|
+
set(updater: UpdateFunction<Map<K, V>>): Map<K, V>;
|
|
16
|
+
clear(): Map<K, V>;
|
|
17
|
+
dispose(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=mapNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/mapNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,UAAkB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAExB,KAAK,GAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAa;IASxC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAiBpB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAuB3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAkBR,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAoB3D,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAiBT,OAAO,IAAI,IAAI;CAO3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowSignal } from '../api';
|
|
2
|
+
import { Observable } from '../base';
|
|
3
|
+
/**
|
|
4
|
+
* Manual trigger that notifies subscribers without carrying data.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare class SignalNode extends Observable<void> implements FlowSignal {
|
|
8
|
+
subscribe(onTrigger: FlowOnDataListener<void>, onError?: FlowOnErrorListener, onPending?: FlowOnPendingListener): FlowEffect;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=signalNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signalNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/signalNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrH,OAAO,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAGpD;;;GAGG;AACH,qBAAa,UAAW,SAAQ,UAAU,CAAC,IAAI,CAAE,YAAW,UAAU;IAClE,SAAS,CACL,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EACnC,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAKhB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DerivationFunctionAsync, InitFunctionAsync, NotPromise, UpdateFunctionAsync } from '../api';
|
|
2
|
+
import { AsyncScheduler } from '../schedulers';
|
|
3
|
+
import { ValueNode } from './valueNode';
|
|
4
|
+
/**
|
|
5
|
+
* Function that computes a value asynchronously (either initialization or derivation).
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export type ComputeFunctionAsync<T> = InitFunctionAsync<T> | DerivationFunctionAsync<T>;
|
|
9
|
+
/**
|
|
10
|
+
* Asynchronous reactive value that resolves promises and propagates results when settled.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class ValueAsyncNode<T extends NotPromise<unknown>> extends ValueNode<T> {
|
|
14
|
+
protected _scheduler: AsyncScheduler<T>;
|
|
15
|
+
private _compute;
|
|
16
|
+
constructor(promiseOrCompute: Promise<T> | ComputeFunctionAsync<T>);
|
|
17
|
+
private _onResolve;
|
|
18
|
+
private _onReject;
|
|
19
|
+
set(promise: Promise<T>): void;
|
|
20
|
+
set(updater: UpdateFunctionAsync<T>): void;
|
|
21
|
+
refresh(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=valueAsyncNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueAsyncNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueAsyncNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACxF;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAmB;gBAEvB,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAiBlE,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,SAAS;IAMjB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAC9B,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAgC1C,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker, NotPromise } from '../api';
|
|
2
|
+
import { Node } from '../base';
|
|
3
|
+
import { Scheduler } from '../schedulers';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for reactive values that compute, cache, and propagate changes through the dependency graph.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class ValueNode<T> extends Node<T> {
|
|
9
|
+
protected abstract _scheduler: Scheduler;
|
|
10
|
+
protected _value?: NotPromise<T>;
|
|
11
|
+
protected _error?: unknown;
|
|
12
|
+
watch(tracker: FlowTracker): void;
|
|
13
|
+
notify(): void;
|
|
14
|
+
dispose(): void;
|
|
15
|
+
get(tracker: FlowTracker): T;
|
|
16
|
+
pick(): Promise<T>;
|
|
17
|
+
execute(): void;
|
|
18
|
+
subscribe(onValue: FlowOnDataListener<T>, onError?: FlowOnErrorListener, onPending?: FlowOnPendingListener): FlowEffect;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=valueNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACb,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAkB,IAAI,EAAwC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAG7D;;;GAGG;AACH,8BAAsB,SAAS,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IACzC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IA6BjC,MAAM,IAAI,IAAI;IAUd,OAAO,IAAI,IAAI;IAKxB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC;IA8BtB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAkCxB,OAAO,IAAI,IAAI;IASf,SAAS,CACL,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAKhB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DerivationFunction, InitFunction, NotPromise, UpdateFunction } from '../api';
|
|
2
|
+
import { SyncScheduler } from '../schedulers';
|
|
3
|
+
import { ValueNode } from './valueNode';
|
|
4
|
+
/**
|
|
5
|
+
* Function that computes a value (either initialization or derivation).
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export type ComputeFunction<T> = InitFunction<T> | DerivationFunction<T>;
|
|
9
|
+
/**
|
|
10
|
+
* Synchronous reactive value that computes immediately without async scheduling.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class ValueSyncNode<T extends NotPromise<unknown>> extends ValueNode<T> {
|
|
14
|
+
protected _scheduler: SyncScheduler<T>;
|
|
15
|
+
private _compute;
|
|
16
|
+
constructor(valueOrCompute: NotPromise<T> | ComputeFunction<T>);
|
|
17
|
+
private _onResolve;
|
|
18
|
+
private _onReject;
|
|
19
|
+
set(value: NotPromise<T>): void;
|
|
20
|
+
set(updater: UpdateFunction<T>): void;
|
|
21
|
+
refresh(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=valueSyncNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueSyncNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueSyncNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAEzE;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC1E,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAU;gBAEd,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAuB9D,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAKjB,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAC/B,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAiDrC,OAAO,IAAI,IAAI;CAsBlB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages asynchronous computation lifecycle with iteration tracking to prevent race conditions.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare class AsyncResolver<T> {
|
|
6
|
+
private readonly _compute;
|
|
7
|
+
private readonly _computed;
|
|
8
|
+
private _iteration;
|
|
9
|
+
private _aborted;
|
|
10
|
+
private _finished;
|
|
11
|
+
constructor(compute: () => Promise<T>);
|
|
12
|
+
get computed(): Promise<T>;
|
|
13
|
+
get aborted(): boolean;
|
|
14
|
+
get finished(): boolean;
|
|
15
|
+
compute(): void;
|
|
16
|
+
overwrite(promise: Promise<T>): void;
|
|
17
|
+
abort(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=asyncResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncResolver.d.ts","sourceRoot":"","sources":["../../../src/schedulers/asyncResolver.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAYrC,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAEzB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,IAAI,IAAI;IAmBf,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAiBpC,KAAK,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Scheduler } from './scheduler';
|
|
2
|
+
/**
|
|
3
|
+
* Scheduler that manages asynchronous computation lifecycle with resolver instances.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare class AsyncScheduler<T> implements Scheduler {
|
|
7
|
+
private readonly _compute;
|
|
8
|
+
private _resolver;
|
|
9
|
+
private _onResolve;
|
|
10
|
+
private _onReject;
|
|
11
|
+
private _settled;
|
|
12
|
+
private _disposed;
|
|
13
|
+
constructor(compute: () => Promise<T>, onResolve: (value: T) => void, onReject: (error: unknown) => void);
|
|
14
|
+
get settled(): Promise<void>;
|
|
15
|
+
get disposed(): boolean;
|
|
16
|
+
overwrite(promise: Promise<T>): void;
|
|
17
|
+
compute(): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=asyncScheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/asyncScheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAWxG,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAapC,OAAO,IAAI,IAAI;IAaf,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schedulers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when an async computation is pending, encapsulating its promise for cascading dependencies.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare class PendingError extends Error {
|
|
6
|
+
readonly pendingPromise: Promise<unknown>;
|
|
7
|
+
constructor(promise: Promise<unknown>);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=pendingError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingError.d.ts","sourceRoot":"","sources":["../../../src/schedulers/pendingError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAE9B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;CAKxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/scheduler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages synchronous computation lifecycle with iteration tracking to prevent race conditions.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare class SyncResolver<T> {
|
|
6
|
+
private readonly _compute;
|
|
7
|
+
private _iteration;
|
|
8
|
+
private _aborted;
|
|
9
|
+
private _finished;
|
|
10
|
+
private _onValue;
|
|
11
|
+
private _onError;
|
|
12
|
+
constructor(compute: () => T, onValue: (value: T) => void, onError: (error: unknown) => void);
|
|
13
|
+
get aborted(): boolean;
|
|
14
|
+
get finished(): boolean;
|
|
15
|
+
compute(): void;
|
|
16
|
+
overwrite(value: T): void;
|
|
17
|
+
abort(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=syncResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncResolver.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncResolver.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAM5F,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,IAAI,IAAI;IAsBf,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAazB,KAAK,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Scheduler } from './scheduler';
|
|
2
|
+
/**
|
|
3
|
+
* Scheduler that manages synchronous computation lifecycle with resolver instances.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare class SyncScheduler<T> implements Scheduler {
|
|
7
|
+
private readonly _compute;
|
|
8
|
+
private _resolver;
|
|
9
|
+
private _onResolve;
|
|
10
|
+
private _onReject;
|
|
11
|
+
private _settled;
|
|
12
|
+
private _disposed;
|
|
13
|
+
constructor(compute: () => T, onResolve: (value: T) => void, onReject: (error: unknown) => void);
|
|
14
|
+
get settled(): Promise<void>;
|
|
15
|
+
overwrite(value: T): void;
|
|
16
|
+
compute(): void;
|
|
17
|
+
dispose(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=syncScheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAa/F,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IASzB,OAAO,IAAI,IAAI;IASf,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -3,108 +3,143 @@ import { withMermaid } from "vitepress-plugin-mermaid";
|
|
|
3
3
|
import typedocSidebar from "../api/typedoc-sidebar.json";
|
|
4
4
|
|
|
5
5
|
export default withMermaid(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
defineConfig({
|
|
7
|
+
title: "PicoFlow",
|
|
8
|
+
description: "Lightweight reactive dataflow library for TypeScript",
|
|
9
|
+
base: "/picoflow/",
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
mermaid: {},
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
head: [["link", { rel: "icon", type: "image/svg+xml", href: "/logo.svg" }]],
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
themeConfig: {
|
|
16
|
+
logo: "/logo.svg",
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
nav: [
|
|
19
|
+
{ text: "Guide", link: "/guide/introduction/getting-started" },
|
|
20
|
+
// { text: "Examples", link: "/examples/patterns" },
|
|
21
|
+
{ text: "API Reference", link: "/api/" },
|
|
22
|
+
],
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
items: [
|
|
56
|
-
{
|
|
57
|
-
text: "Disposal",
|
|
58
|
-
link: "/guide/advanced/disposal",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
text: "Use with SolidJS",
|
|
62
|
-
link: "/guide/advanced/solidjs",
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
text: "Upgrade from v0.x",
|
|
66
|
-
link: "/guide/advanced/upgrading",
|
|
67
|
-
},
|
|
68
|
-
],
|
|
69
|
-
},
|
|
70
|
-
],
|
|
24
|
+
sidebar: {
|
|
25
|
+
"/guide/": [
|
|
26
|
+
{
|
|
27
|
+
text: "Introduction",
|
|
28
|
+
items: [
|
|
29
|
+
{
|
|
30
|
+
text: "Getting Started",
|
|
31
|
+
link: "/guide/introduction/getting-started",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
text: "Conventions",
|
|
35
|
+
link: "/guide/introduction/conventions",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
text: "Concepts",
|
|
39
|
+
link: "/guide/introduction/concepts",
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
text: "Primitives",
|
|
45
|
+
items: [
|
|
46
|
+
{
|
|
47
|
+
text: "Overview",
|
|
48
|
+
link: "/guide/primitives/overview",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
text: "Signals",
|
|
52
|
+
link: "/guide/primitives/signal",
|
|
53
|
+
},
|
|
54
|
+
{ text: "Constants", link: "/guide/primitives/constant" },
|
|
71
55
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
56
|
+
{ text: "States", link: "/guide/primitives/state" },
|
|
57
|
+
{
|
|
58
|
+
text: "Derivations",
|
|
59
|
+
link: "/guide/primitives/derivations",
|
|
60
|
+
},
|
|
61
|
+
{ text: "Maps", link: "/guide/primitives/map" },
|
|
62
|
+
{ text: "Arrays", link: "/guide/primitives/array" },
|
|
63
|
+
{
|
|
64
|
+
text: "Side Effects",
|
|
65
|
+
link: "/guide/primitives/effects",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
text: "Advanced",
|
|
71
|
+
items: [
|
|
72
|
+
{
|
|
73
|
+
text: "Use with SolidJS",
|
|
74
|
+
link: "/guide/advanced/solidjs",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
text: "Upgrade to v2",
|
|
78
|
+
link: "/guide/advanced/migration-v2",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
text: "Upgrade to v1",
|
|
82
|
+
link: "/guide/advanced/migration-v1",
|
|
83
|
+
},
|
|
84
|
+
// {
|
|
85
|
+
// text: "Lifecycle",
|
|
86
|
+
// link: "/guide/introduction/lifecycle",
|
|
87
|
+
// },
|
|
88
|
+
// {
|
|
89
|
+
// text: "Disposal",
|
|
90
|
+
// link: "/guide/advanced/disposal",
|
|
91
|
+
// },
|
|
92
|
+
// {
|
|
93
|
+
// text: "Architecture",
|
|
94
|
+
// link: "/guide/advanced/architecture",
|
|
95
|
+
// },
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
],
|
|
81
99
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
100
|
+
// "/examples/": [
|
|
101
|
+
// {
|
|
102
|
+
// text: "Examples",
|
|
103
|
+
// items: [
|
|
104
|
+
// {
|
|
105
|
+
// text: "Common Patterns",
|
|
106
|
+
// link: "/examples/patterns",
|
|
107
|
+
// },
|
|
108
|
+
// {
|
|
109
|
+
// text: "Code Examples",
|
|
110
|
+
// link: "/examples/examples",
|
|
111
|
+
// },
|
|
112
|
+
// ],
|
|
113
|
+
// },
|
|
114
|
+
// ],
|
|
89
115
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
116
|
+
"/api/": [
|
|
117
|
+
{
|
|
118
|
+
text: "API Reference",
|
|
119
|
+
items: typedocSidebar,
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
},
|
|
93
123
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
124
|
+
socialLinks: [
|
|
125
|
+
{
|
|
126
|
+
icon: "gitlab",
|
|
127
|
+
link: "https://gitlab.com/ersbeth-web/picoflow",
|
|
128
|
+
},
|
|
129
|
+
],
|
|
97
130
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
text: "Edit this page on GitLab",
|
|
102
|
-
},
|
|
131
|
+
search: {
|
|
132
|
+
provider: "local",
|
|
133
|
+
},
|
|
103
134
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
135
|
+
editLink: {
|
|
136
|
+
pattern: "https://gitlab.com/ersbeth-web/picoflow/-/edit/main/docs/:path",
|
|
137
|
+
text: "Edit this page on GitLab",
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
footer: {
|
|
141
|
+
copyright: "Copyright ©2025 <a href='https://gitlab.com/ersbeth/'>Ersbeth</a>",
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
}),
|
|
110
145
|
);
|
|
@@ -6,53 +6,30 @@
|
|
|
6
6
|
function array<T>(initial?): FlowArray<T>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [api/nodes/collections/flowArray.ts:153](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L153)
|
|
10
10
|
|
|
11
|
-
Creates a
|
|
11
|
+
Creates a reactive array with mutation methods and fine-grained action tracking.
|
|
12
|
+
|
|
13
|
+
The array starts with the provided initial items (or empty if none provided). All mutation methods
|
|
14
|
+
(push, pop, splice, etc.) notify dependents and emit detailed action information to `$lastAction`.
|
|
15
|
+
Use the array itself for coarse-grained reactivity, or subscribe to `$lastAction` for fine-grained
|
|
16
|
+
reactivity to specific mutation types. Useful for reactive lists, collections, or any data that
|
|
17
|
+
needs array-like operations with automatic change propagation.
|
|
12
18
|
|
|
13
19
|
## Type Parameters
|
|
14
20
|
|
|
15
|
-
| Type Parameter |
|
|
16
|
-
| ------ |
|
|
17
|
-
| `T` |
|
|
21
|
+
| Type Parameter |
|
|
22
|
+
| ------ |
|
|
23
|
+
| `T` |
|
|
18
24
|
|
|
19
25
|
## Parameters
|
|
20
26
|
|
|
21
27
|
| Parameter | Type | Description |
|
|
22
28
|
| ------ | ------ | ------ |
|
|
23
|
-
| `initial?` | `T`[] |
|
|
29
|
+
| `initial?` | `T`[] | Optional initial array of items |
|
|
24
30
|
|
|
25
31
|
## Returns
|
|
26
32
|
|
|
27
|
-
[`FlowArray`](/api/
|
|
28
|
-
|
|
29
|
-
A new instance of [FlowArray](/api/classes/FlowArray.md).
|
|
30
|
-
|
|
31
|
-
## Remarks
|
|
32
|
-
|
|
33
|
-
A reactive array provides array-like mutation methods (push, pop, shift, unshift, splice)
|
|
34
|
-
and tracks the last operation performed via `$lastAction`. This enables both whole-array
|
|
35
|
-
reactivity and fine-grained tracking of specific mutations.
|
|
36
|
-
|
|
37
|
-
The array automatically disposes disposable items when they are removed (if they implement
|
|
38
|
-
the FlowDisposable interface).
|
|
33
|
+
[`FlowArray`](/api/interfaces/FlowArray.md)\<`T`\>
|
|
39
34
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
const $items = array([1, 2, 3]);
|
|
44
|
-
|
|
45
|
-
// Track the whole array
|
|
46
|
-
effect((t) => {
|
|
47
|
-
console.log('Items:', $items.get(t));
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// Track the last action
|
|
51
|
-
effect((t) => {
|
|
52
|
-
const action = $items.$lastAction.get(t);
|
|
53
|
-
console.log('Action:', action.type);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
$items.push(4); // Logs action: "push"
|
|
57
|
-
$items.pop(); // Logs action: "pop"
|
|
58
|
-
```
|
|
35
|
+
A FlowArray with reactive mutation methods
|
|
@@ -3,43 +3,31 @@
|
|
|
3
3
|
# Function: constant()
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
|
-
function constant<T>(
|
|
6
|
+
function constant<T>(initializer): FlowConstant<T>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [api/nodes/sync/flowConstant.ts:31](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowConstant.ts#L31)
|
|
10
10
|
|
|
11
|
-
Creates a
|
|
11
|
+
Creates a constant reactive value that initializes lazily and never recomputes.
|
|
12
|
+
|
|
13
|
+
The initializer function runs once on first access, and the result is cached permanently.
|
|
14
|
+
Unlike state or derivations, constants never react to changes - they represent immutable values
|
|
15
|
+
in the reactive graph. Useful for expensive one-time computations or static configuration.
|
|
12
16
|
|
|
13
17
|
## Type Parameters
|
|
14
18
|
|
|
15
|
-
| Type Parameter |
|
|
16
|
-
| ------ |
|
|
17
|
-
| `T` |
|
|
19
|
+
| Type Parameter |
|
|
20
|
+
| ------ |
|
|
21
|
+
| `T` |
|
|
18
22
|
|
|
19
23
|
## Parameters
|
|
20
24
|
|
|
21
25
|
| Parameter | Type | Description |
|
|
22
26
|
| ------ | ------ | ------ |
|
|
23
|
-
| `
|
|
27
|
+
| `initializer` | [`InitFunction`](/api/type-aliases/InitFunction.md)\<`T`\> | Function that computes the constant value on first access |
|
|
24
28
|
|
|
25
29
|
## Returns
|
|
26
30
|
|
|
27
|
-
[`FlowConstant`](/api/
|
|
28
|
-
|
|
29
|
-
A new instance of [FlowConstant](/api/classes/FlowConstant.md).
|
|
30
|
-
|
|
31
|
-
## Remarks
|
|
32
|
-
|
|
33
|
-
A constant is an immutable reactive value that never changes after initialization.
|
|
34
|
-
It can be initialized eagerly (direct value) or lazily (function). Use constants for
|
|
35
|
-
configuration, computed-once values, or expensive initialization that should only run once.
|
|
31
|
+
[`FlowConstant`](/api/interfaces/FlowConstant.md)\<`T`\>
|
|
36
32
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
// Eager initialization
|
|
41
|
-
const $config = constant({ apiUrl: 'https://api.example.com' });
|
|
42
|
-
|
|
43
|
-
// Lazy initialization
|
|
44
|
-
const $computed = constant(() => expensiveCalculation());
|
|
45
|
-
```
|
|
33
|
+
A FlowConstant that provides read-only access to the cached value
|