@ersbeth/picoflow 2.0.2 → 2.0.3

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.
Files changed (152) hide show
  1. package/README.md +10 -0
  2. package/SKILL.md +106 -0
  3. package/package.json +5 -1
  4. package/.gitlab-ci.yml +0 -24
  5. package/.vscode/settings.json +0 -5
  6. package/CHANGELOG.md +0 -94
  7. package/biome.json +0 -47
  8. package/docs/.vitepress/config.mts +0 -145
  9. package/docs/api/functions/array.md +0 -35
  10. package/docs/api/functions/constant.md +0 -33
  11. package/docs/api/functions/constantAsync.md +0 -69
  12. package/docs/api/functions/derivation.md +0 -34
  13. package/docs/api/functions/derivationAsync.md +0 -34
  14. package/docs/api/functions/from.md +0 -129
  15. package/docs/api/functions/isDisposable.md +0 -27
  16. package/docs/api/functions/map.md +0 -36
  17. package/docs/api/functions/signal.md +0 -21
  18. package/docs/api/functions/state.md +0 -67
  19. package/docs/api/functions/stateAsync.md +0 -69
  20. package/docs/api/functions/subscribe.md +0 -40
  21. package/docs/api/functions/writableDerivation.md +0 -33
  22. package/docs/api/functions/writableDerivationAsync.md +0 -34
  23. package/docs/api/index.md +0 -61
  24. package/docs/api/interfaces/FlowArray.md +0 -439
  25. package/docs/api/interfaces/FlowConstant.md +0 -220
  26. package/docs/api/interfaces/FlowConstantAsync.md +0 -221
  27. package/docs/api/interfaces/FlowDerivation.md +0 -241
  28. package/docs/api/interfaces/FlowDerivationAsync.md +0 -242
  29. package/docs/api/interfaces/FlowDisposable.md +0 -59
  30. package/docs/api/interfaces/FlowEffect.md +0 -64
  31. package/docs/api/interfaces/FlowMap.md +0 -374
  32. package/docs/api/interfaces/FlowObservable.md +0 -155
  33. package/docs/api/interfaces/FlowSignal.md +0 -156
  34. package/docs/api/interfaces/FlowState.md +0 -269
  35. package/docs/api/interfaces/FlowStateAsync.md +0 -268
  36. package/docs/api/interfaces/FlowSubscribable.md +0 -55
  37. package/docs/api/interfaces/FlowTracker.md +0 -61
  38. package/docs/api/interfaces/FlowValue.md +0 -222
  39. package/docs/api/interfaces/FlowWritableDerivation.md +0 -292
  40. package/docs/api/interfaces/FlowWritableDerivationAsync.md +0 -293
  41. package/docs/api/type-aliases/DerivationFunction.md +0 -28
  42. package/docs/api/type-aliases/DerivationFunctionAsync.md +0 -28
  43. package/docs/api/type-aliases/FlowArrayAction.md +0 -60
  44. package/docs/api/type-aliases/FlowDataTracker.md +0 -33
  45. package/docs/api/type-aliases/FlowMapAction.md +0 -48
  46. package/docs/api/type-aliases/FlowOnDataListener.md +0 -33
  47. package/docs/api/type-aliases/FlowOnErrorListener.md +0 -27
  48. package/docs/api/type-aliases/FlowOnPendingListener.md +0 -21
  49. package/docs/api/type-aliases/FlowReadonly.md +0 -22
  50. package/docs/api/type-aliases/InitFunction.md +0 -21
  51. package/docs/api/type-aliases/InitFunctionAsync.md +0 -21
  52. package/docs/api/type-aliases/NotPromise.md +0 -21
  53. package/docs/api/type-aliases/UpdateFunction.md +0 -27
  54. package/docs/api/type-aliases/UpdateFunctionAsync.md +0 -27
  55. package/docs/api/typedoc-sidebar.json +0 -65
  56. package/docs/examples/examples.md +0 -2311
  57. package/docs/examples/patterns.md +0 -649
  58. package/docs/guide/advanced/architecture.md +0 -1234
  59. package/docs/guide/advanced/disposal.md +0 -426
  60. package/docs/guide/advanced/migration-v1.md +0 -464
  61. package/docs/guide/advanced/migration-v2.md +0 -204
  62. package/docs/guide/advanced/solidjs.md +0 -135
  63. package/docs/guide/introduction/concepts.md +0 -57
  64. package/docs/guide/introduction/conventions.md +0 -30
  65. package/docs/guide/introduction/getting-started.md +0 -139
  66. package/docs/guide/introduction/lifecycle.md +0 -368
  67. package/docs/guide/primitives/array.md +0 -286
  68. package/docs/guide/primitives/constant.md +0 -207
  69. package/docs/guide/primitives/derivations.md +0 -281
  70. package/docs/guide/primitives/effects.md +0 -372
  71. package/docs/guide/primitives/map.md +0 -265
  72. package/docs/guide/primitives/overview.md +0 -92
  73. package/docs/guide/primitives/signal.md +0 -222
  74. package/docs/guide/primitives/state.md +0 -272
  75. package/docs/index.md +0 -47
  76. package/docs/public/logo.svg +0 -1
  77. package/src/api/base/flowDisposable.ts +0 -44
  78. package/src/api/base/flowObservable.ts +0 -28
  79. package/src/api/base/flowSubscribable.ts +0 -87
  80. package/src/api/base/flowTracker.ts +0 -7
  81. package/src/api/base/index.ts +0 -4
  82. package/src/api/index.ts +0 -2
  83. package/src/api/nodes/async/flowConstantAsync.ts +0 -36
  84. package/src/api/nodes/async/flowDerivationAsync.ts +0 -42
  85. package/src/api/nodes/async/flowStateAsync.ts +0 -47
  86. package/src/api/nodes/async/flowWritableDerivationAsync.ts +0 -33
  87. package/src/api/nodes/async/index.ts +0 -4
  88. package/src/api/nodes/collections/flowArray.ts +0 -155
  89. package/src/api/nodes/collections/flowMap.ts +0 -115
  90. package/src/api/nodes/collections/index.ts +0 -2
  91. package/src/api/nodes/flowEffect.ts +0 -42
  92. package/src/api/nodes/flowSignal.ts +0 -28
  93. package/src/api/nodes/flowValue.ts +0 -37
  94. package/src/api/nodes/index.ts +0 -7
  95. package/src/api/nodes/sync/flowConstant.ts +0 -33
  96. package/src/api/nodes/sync/flowDerivation.ts +0 -41
  97. package/src/api/nodes/sync/flowState.ts +0 -45
  98. package/src/api/nodes/sync/flowWritableDerivation.ts +0 -31
  99. package/src/api/nodes/sync/index.ts +0 -4
  100. package/src/api/nodes/utils.ts +0 -24
  101. package/src/base/disposable.ts +0 -18
  102. package/src/base/executionStack.ts +0 -42
  103. package/src/base/index.ts +0 -5
  104. package/src/base/node.ts +0 -98
  105. package/src/base/observable.ts +0 -92
  106. package/src/base/observer.ts +0 -51
  107. package/src/converters/index.ts +0 -1
  108. package/src/converters/solid.ts +0 -109
  109. package/src/index.ts +0 -2
  110. package/src/nodes/arrayNode.ts +0 -180
  111. package/src/nodes/effectNode.ts +0 -58
  112. package/src/nodes/index.ts +0 -7
  113. package/src/nodes/mapNode.ts +0 -125
  114. package/src/nodes/signalNode.ts +0 -19
  115. package/src/nodes/valueAsyncNode.ts +0 -85
  116. package/src/nodes/valueNode.ts +0 -148
  117. package/src/nodes/valueSyncNode.ts +0 -125
  118. package/src/schedulers/asyncResolver.ts +0 -78
  119. package/src/schedulers/asyncScheduler.ts +0 -66
  120. package/src/schedulers/index.ts +0 -4
  121. package/src/schedulers/pendingError.ts +0 -13
  122. package/src/schedulers/scheduler.ts +0 -9
  123. package/src/schedulers/syncResolver.ts +0 -69
  124. package/src/schedulers/syncScheduler.ts +0 -55
  125. package/test/base/pendingError.test.ts +0 -67
  126. package/test/converters/solid.derivation.browser.test.tsx +0 -69
  127. package/test/converters/solid.node.test.ts +0 -654
  128. package/test/converters/solid.state.browser.test.tsx +0 -1592
  129. package/test/reactivity/flowSignal.test.ts +0 -226
  130. package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +0 -593
  131. package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +0 -317
  132. package/test/reactivity/nodes/async/flowConstantAsync.test.ts +0 -652
  133. package/test/reactivity/nodes/async/flowDerivation.test.ts +0 -898
  134. package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +0 -1716
  135. package/test/reactivity/nodes/async/flowStateAsync.test.ts +0 -708
  136. package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +0 -614
  137. package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +0 -1289
  138. package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +0 -961
  139. package/test/reactivity/nodes/collections/flowArray.states.test.ts +0 -1035
  140. package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +0 -960
  141. package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +0 -775
  142. package/test/reactivity/nodes/collections/flowMap.states.test.ts +0 -958
  143. package/test/reactivity/nodes/sync/flowConstant.test.ts +0 -377
  144. package/test/reactivity/nodes/sync/flowDerivation.test.ts +0 -896
  145. package/test/reactivity/nodes/sync/flowState.test.ts +0 -341
  146. package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +0 -603
  147. package/test/vitest.d.ts +0 -10
  148. package/tsconfig.json +0 -37
  149. package/typedoc.json +0 -37
  150. package/vite.config.ts +0 -31
  151. package/vitest.browser.config.ts +0 -21
  152. package/vitest.config.ts +0 -17
@@ -1,129 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / from
2
-
3
- # Function: from()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function from<T>(flow): Resource<T>;
9
- ```
10
-
11
- Defined in: [converters/solid.ts:97](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/converters/solid.ts#L97)
12
-
13
- Converts a PicoFlow observable or getter function into a SolidJS resource.
14
-
15
- ### Type Parameters
16
-
17
- | Type Parameter |
18
- | ------ |
19
- | `T` |
20
-
21
- ### Parameters
22
-
23
- | Parameter | Type | Description |
24
- | ------ | ------ | ------ |
25
- | `flow` | [`FlowObservable`](/api/interfaces/FlowObservable.md)\<`T`\> | The FlowObservable or getter function to convert. |
26
-
27
- ### Returns
28
-
29
- `Resource`\<`T`\>
30
-
31
- A SolidJS Resource that wraps the value or computation.
32
-
33
- ### Remarks
34
-
35
- This function bridges PicoFlow's reactive system with SolidJS, allowing you to use
36
- PicoFlow primitives and computations within Solid components. All conversions return a
37
- SolidJS Resource, which can handle both synchronous and asynchronous values seamlessly.
38
-
39
- The conversion works with:
40
- - **FlowObservable**: Any PicoFlow reactive primitive (e.g., from `state()`, `derivation()`, `stateAsync()`, `derivationAsync()`)
41
- - **Getter functions**: Computation functions that use a FlowTracker to access reactive values
42
-
43
- The created Resource automatically subscribes to the PicoFlow observables and updates
44
- when their values change. The subscription is properly cleaned up when the Solid
45
- component unmounts.
46
-
47
- ### Example
48
-
49
- ```typescript
50
- import { from } from 'picoflow/solid';
51
- import { state, derivation } from 'picoflow';
52
-
53
- // Convert a PicoFlow state to a Solid resource
54
- const $count = state(0);
55
- const solidCount = from($count);
56
-
57
- // Use in a Solid component
58
- function Counter() {
59
- return <div>Count: {solidCount()}</div>;
60
- }
61
-
62
- // Or convert a computation function
63
- const solidDerived = from((t) => {
64
- return $count.get(t) * 2;
65
- });
66
- ```
67
-
68
- ## Call Signature
69
-
70
- ```ts
71
- function from<T>(flow): Resource<T>;
72
- ```
73
-
74
- Defined in: [converters/solid.ts:98](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/converters/solid.ts#L98)
75
-
76
- Converts a PicoFlow observable or getter function into a SolidJS resource.
77
-
78
- ### Type Parameters
79
-
80
- | Type Parameter |
81
- | ------ |
82
- | `T` |
83
-
84
- ### Parameters
85
-
86
- | Parameter | Type | Description |
87
- | ------ | ------ | ------ |
88
- | `flow` | (`t`) => [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> | The FlowObservable or getter function to convert. |
89
-
90
- ### Returns
91
-
92
- `Resource`\<`T`\>
93
-
94
- A SolidJS Resource that wraps the value or computation.
95
-
96
- ### Remarks
97
-
98
- This function bridges PicoFlow's reactive system with SolidJS, allowing you to use
99
- PicoFlow primitives and computations within Solid components. All conversions return a
100
- SolidJS Resource, which can handle both synchronous and asynchronous values seamlessly.
101
-
102
- The conversion works with:
103
- - **FlowObservable**: Any PicoFlow reactive primitive (e.g., from `state()`, `derivation()`, `stateAsync()`, `derivationAsync()`)
104
- - **Getter functions**: Computation functions that use a FlowTracker to access reactive values
105
-
106
- The created Resource automatically subscribes to the PicoFlow observables and updates
107
- when their values change. The subscription is properly cleaned up when the Solid
108
- component unmounts.
109
-
110
- ### Example
111
-
112
- ```typescript
113
- import { from } from 'picoflow/solid';
114
- import { state, derivation } from 'picoflow';
115
-
116
- // Convert a PicoFlow state to a Solid resource
117
- const $count = state(0);
118
- const solidCount = from($count);
119
-
120
- // Use in a Solid component
121
- function Counter() {
122
- return <div>Count: {solidCount()}</div>;
123
- }
124
-
125
- // Or convert a computation function
126
- const solidDerived = from((t) => {
127
- return $count.get(t) * 2;
128
- });
129
- ```
@@ -1,27 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / isDisposable
2
-
3
- # Function: isDisposable()
4
-
5
- ```ts
6
- function isDisposable(obj): obj is FlowDisposable;
7
- ```
8
-
9
- Defined in: [api/base/flowDisposable.ts:42](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L42)
10
-
11
- Type guard to check if an object implements the FlowDisposable interface.
12
-
13
- Useful for conditionally disposing objects that may or may not be disposable,
14
- such as when cleaning up mixed collections of values. Returns true if the object
15
- has a `dispose` method, providing type-safe access to disposal functionality.
16
-
17
- ## Parameters
18
-
19
- | Parameter | Type | Description |
20
- | ------ | ------ | ------ |
21
- | `obj` | `unknown` | The object to check |
22
-
23
- ## Returns
24
-
25
- `obj is FlowDisposable`
26
-
27
- True if the object implements FlowDisposable, false otherwise
@@ -1,36 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / map
2
-
3
- # Function: map()
4
-
5
- ```ts
6
- function map<K, V>(initial?): FlowMap<K, V>;
7
- ```
8
-
9
- Defined in: [api/nodes/collections/flowMap.ts:110](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L110)
10
-
11
- Creates a reactive map with mutation methods and fine-grained action tracking.
12
-
13
- The map starts with the provided initial entries (or empty if none provided). All mutation methods
14
- (add, update, delete) notify dependents and emit detailed action information to `$lastAction`.
15
- Use the map itself for coarse-grained reactivity, or subscribe to `$lastAction` for fine-grained
16
- reactivity to specific mutation types. Useful for entity stores, lookup tables, or any key-value
17
- data that needs reactive updates.
18
-
19
- ## Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `K` *extends* `string` \| `number` \| `symbol` |
24
- | `V` |
25
-
26
- ## Parameters
27
-
28
- | Parameter | Type | Description |
29
- | ------ | ------ | ------ |
30
- | `initial?` | `Record`\<`K`, `V`\> \| `Map`\<`K`, `V`\> | Optional initial entries as a Record or Map |
31
-
32
- ## Returns
33
-
34
- [`FlowMap`](/api/interfaces/FlowMap.md)\<`K`, `V`\>
35
-
36
- A FlowMap with reactive mutation methods
@@ -1,21 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / signal
2
-
3
- # Function: signal()
4
-
5
- ```ts
6
- function signal(): FlowSignal;
7
- ```
8
-
9
- Defined in: [api/nodes/flowSignal.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowSignal.ts#L26)
10
-
11
- Creates a signal that can be manually triggered to notify dependents.
12
-
13
- Signals act as event emitters in the reactive graph. Call `trigger()` to notify all subscribers
14
- and reactive computations that depend on the signal. Unlike state or derivations, signals don't
15
- carry data values - they simply represent that an event occurred.
16
-
17
- ## Returns
18
-
19
- [`FlowSignal`](/api/interfaces/FlowSignal.md)
20
-
21
- A FlowSignal that can be triggered manually and subscribed to
@@ -1,67 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / state
2
-
3
- # Function: state()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function state<T>(value): FlowState<T>;
9
- ```
10
-
11
- Defined in: [api/nodes/sync/flowState.ts:41](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L41)
12
-
13
- Creates a mutable reactive state that can be read and updated imperatively.
14
-
15
- State can be initialized with a direct value or a lazy initializer function. Changes propagate
16
- automatically to all reactive computations that depend on this state. Use state for data that
17
- changes through user actions, external events, or application logic rather than derived computations.
18
-
19
- ### Type Parameters
20
-
21
- | Type Parameter |
22
- | ------ |
23
- | `T` |
24
-
25
- ### Parameters
26
-
27
- | Parameter | Type | Description |
28
- | ------ | ------ | ------ |
29
- | `value` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> | Initial value for the state, or lazy initializer function |
30
-
31
- ### Returns
32
-
33
- [`FlowState`](/api/interfaces/FlowState.md)\<`T`\>
34
-
35
- A FlowState that can be read and modified
36
-
37
- ## Call Signature
38
-
39
- ```ts
40
- function state<T>(initializer): FlowState<T>;
41
- ```
42
-
43
- Defined in: [api/nodes/sync/flowState.ts:42](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowState.ts#L42)
44
-
45
- Creates a mutable reactive state that can be read and updated imperatively.
46
-
47
- State can be initialized with a direct value or a lazy initializer function. Changes propagate
48
- automatically to all reactive computations that depend on this state. Use state for data that
49
- changes through user actions, external events, or application logic rather than derived computations.
50
-
51
- ### Type Parameters
52
-
53
- | Type Parameter |
54
- | ------ |
55
- | `T` |
56
-
57
- ### Parameters
58
-
59
- | Parameter | Type |
60
- | ------ | ------ |
61
- | `initializer` | [`InitFunction`](/api/type-aliases/InitFunction.md)\<`T`\> |
62
-
63
- ### Returns
64
-
65
- [`FlowState`](/api/interfaces/FlowState.md)\<`T`\>
66
-
67
- A FlowState that can be read and modified
@@ -1,69 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / stateAsync
2
-
3
- # Function: stateAsync()
4
-
5
- ## Call Signature
6
-
7
- ```ts
8
- function stateAsync<T>(value): FlowStateAsync<T>;
9
- ```
10
-
11
- Defined in: [api/nodes/async/flowStateAsync.ts:43](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L43)
12
-
13
- Creates a mutable async reactive state that resolves promises and can be updated imperatively.
14
-
15
- State can be initialized with a direct promise or a lazy async initializer function. Update the state by
16
- calling `set()` with a new promise or an async updater function. Changes propagate automatically to all
17
- reactive computations that depend on this state. Use for async data that changes through user actions or
18
- application logic, such as loading user profiles, fetching search results, or any async state updates.
19
-
20
- ### Type Parameters
21
-
22
- | Type Parameter |
23
- | ------ |
24
- | `T` |
25
-
26
- ### Parameters
27
-
28
- | Parameter | Type | Description |
29
- | ------ | ------ | ------ |
30
- | `value` | `Promise`\<`T`\> | Initial promise to resolve, or lazy async initializer function |
31
-
32
- ### Returns
33
-
34
- [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)\<`T`\>
35
-
36
- A FlowStateAsync that can be read and modified with promises
37
-
38
- ## Call Signature
39
-
40
- ```ts
41
- function stateAsync<T>(initializer): FlowStateAsync<T>;
42
- ```
43
-
44
- Defined in: [api/nodes/async/flowStateAsync.ts:44](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L44)
45
-
46
- Creates a mutable async reactive state that resolves promises and can be updated imperatively.
47
-
48
- State can be initialized with a direct promise or a lazy async initializer function. Update the state by
49
- calling `set()` with a new promise or an async updater function. Changes propagate automatically to all
50
- reactive computations that depend on this state. Use for async data that changes through user actions or
51
- application logic, such as loading user profiles, fetching search results, or any async state updates.
52
-
53
- ### Type Parameters
54
-
55
- | Type Parameter |
56
- | ------ |
57
- | `T` |
58
-
59
- ### Parameters
60
-
61
- | Parameter | Type |
62
- | ------ | ------ |
63
- | `initializer` | [`InitFunctionAsync`](/api/type-aliases/InitFunctionAsync.md)\<`T`\> |
64
-
65
- ### Returns
66
-
67
- [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)\<`T`\>
68
-
69
- A FlowStateAsync that can be read and modified with promises
@@ -1,40 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / subscribe
2
-
3
- # Function: subscribe()
4
-
5
- ```ts
6
- function subscribe<T>(
7
- data,
8
- onData,
9
- onError?,
10
- onPending?): FlowEffect;
11
- ```
12
-
13
- Defined in: [api/nodes/flowEffect.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowEffect.ts#L35)
14
-
15
- Creates a reactive effect that runs immediately and automatically re-runs when dependencies change.
16
-
17
- The effect function tracks any reactive values accessed and subscribes to their changes.
18
- When any tracked value changes, the effect re-executes with the new values.
19
- Optional callbacks handle errors and pending async states.
20
-
21
- ## Type Parameters
22
-
23
- | Type Parameter |
24
- | ------ |
25
- | `T` |
26
-
27
- ## Parameters
28
-
29
- | Parameter | Type | Description |
30
- | ------ | ------ | ------ |
31
- | `data` | [`FlowDataTracker`](/api/type-aliases/FlowDataTracker.md)\<`T`\> | Function that accesses reactive dependencies and returns data |
32
- | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
33
- | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
34
- | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
35
-
36
- ## Returns
37
-
38
- [`FlowEffect`](/api/interfaces/FlowEffect.md)
39
-
40
- A FlowEffect handle with a `dispose()` method to stop the effect
@@ -1,33 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / writableDerivation
2
-
3
- # Function: writableDerivation()
4
-
5
- ```ts
6
- function writableDerivation<T>(compute): FlowWritableDerivation<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/sync/flowWritableDerivation.ts:29](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowWritableDerivation.ts#L29)
10
-
11
- Creates a derived value that recomputes automatically but can also be manually overridden.
12
-
13
- The compute function tracks dependencies and recomputes when they change, just like a regular derivation.
14
- However, you can also call `set()` to override the computed value. Use this for values that are normally
15
- derived but need occasional manual adjustments, such as editable calculated fields or user-correctable totals.
16
-
17
- ## Type Parameters
18
-
19
- | Type Parameter |
20
- | ------ |
21
- | `T` |
22
-
23
- ## Parameters
24
-
25
- | Parameter | Type | Description |
26
- | ------ | ------ | ------ |
27
- | `compute` | [`DerivationFunction`](/api/type-aliases/DerivationFunction.md)\<`T`\> | Function that accesses dependencies and computes the derived value |
28
-
29
- ## Returns
30
-
31
- [`FlowWritableDerivation`](/api/interfaces/FlowWritableDerivation.md)\<`T`\>
32
-
33
- A FlowWritableDerivation that provides both reactive computation and manual control
@@ -1,34 +0,0 @@
1
- [@ersbeth/picoflow](/api/index.md) / writableDerivationAsync
2
-
3
- # Function: writableDerivationAsync()
4
-
5
- ```ts
6
- function writableDerivationAsync<T>(compute): FlowWritableDerivationAsync<T>;
7
- ```
8
-
9
- Defined in: [api/nodes/async/flowWritableDerivationAsync.ts:31](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowWritableDerivationAsync.ts#L31)
10
-
11
- Creates an async derived value that recomputes automatically but can also be manually overridden.
12
-
13
- The async compute function tracks dependencies and returns a promise. When any tracked dependency changes,
14
- the function runs again and returns a new promise. However, you can also call `set()` to override the computed
15
- value with a new promise. Use for async values that are normally derived but need occasional manual adjustments,
16
- such as editable async calculated fields or user-correctable async totals.
17
-
18
- ## Type Parameters
19
-
20
- | Type Parameter |
21
- | ------ |
22
- | `T` |
23
-
24
- ## Parameters
25
-
26
- | Parameter | Type | Description |
27
- | ------ | ------ | ------ |
28
- | `compute` | [`DerivationFunctionAsync`](/api/type-aliases/DerivationFunctionAsync.md)\<`T`\> | Async function that accesses dependencies and returns a promise of the derived value |
29
-
30
- ## Returns
31
-
32
- [`FlowWritableDerivationAsync`](/api/interfaces/FlowWritableDerivationAsync.md)\<`T`\>
33
-
34
- A FlowWritableDerivationAsync that provides both reactive async computation and manual control
package/docs/api/index.md DELETED
@@ -1,61 +0,0 @@
1
- # @ersbeth/picoflow
2
-
3
- ## Interfaces
4
-
5
- | Interface | Description |
6
- | ------ | ------ |
7
- | [FlowArray](/api/interfaces/FlowArray.md) | Reactive array with standard mutation methods and fine-grained change tracking. |
8
- | [FlowConstant](/api/interfaces/FlowConstant.md) | Read-only reactive value that computes once on initialization and never changes. |
9
- | [FlowConstantAsync](/api/interfaces/FlowConstantAsync.md) | Read-only reactive value that resolves once from a promise or async initializer. |
10
- | [FlowDerivation](/api/interfaces/FlowDerivation.md) | Read-only reactive value that recomputes automatically when dependencies change. |
11
- | [FlowDerivationAsync](/api/interfaces/FlowDerivationAsync.md) | Read-only reactive value that recomputes asynchronously when dependencies change. |
12
- | [FlowDisposable](/api/interfaces/FlowDisposable.md) | Contract for resources that can be explicitly released to prevent memory leaks. |
13
- | [FlowEffect](/api/interfaces/FlowEffect.md) | Handle to a reactive effect that automatically tracks dependencies and re-executes when they change. |
14
- | [FlowMap](/api/interfaces/FlowMap.md) | Reactive map with standard mutation methods and fine-grained change tracking. |
15
- | [FlowObservable](/api/interfaces/FlowObservable.md) | Contract for reactive primitives that emit changes and notify their dependents in the reactivity graph. |
16
- | [FlowSignal](/api/interfaces/FlowSignal.md) | Manual trigger that notifies subscribers without carrying data. |
17
- | [FlowState](/api/interfaces/FlowState.md) | Writable reactive value that can be updated manually and notifies dependents on changes. |
18
- | [FlowStateAsync](/api/interfaces/FlowStateAsync.md) | Writable reactive value that resolves promises and can be updated with new promises. |
19
- | [FlowSubscribable](/api/interfaces/FlowSubscribable.md) | Contract for observables that can be subscribed to with lifecycle callbacks. |
20
- | [FlowTracker](/api/interfaces/FlowTracker.md) | Contract for reactive computations that track dependencies and react to changes in the reactivity graph. |
21
- | [FlowValue](/api/interfaces/FlowValue.md) | Base interface for reactive values that can be read synchronously or asynchronously. |
22
- | [FlowWritableDerivation](/api/interfaces/FlowWritableDerivation.md) | Writable reactive value that recomputes automatically when dependencies change, but can be manually overridden. |
23
- | [FlowWritableDerivationAsync](/api/interfaces/FlowWritableDerivationAsync.md) | Writable reactive value that recomputes asynchronously when dependencies change, but can be manually overridden. |
24
-
25
- ## Type Aliases
26
-
27
- | Type Alias | Description |
28
- | ------ | ------ |
29
- | [DerivationFunction](/api/type-aliases/DerivationFunction.md) | Function that derives a value from dependencies and optionally the previous value. |
30
- | [DerivationFunctionAsync](/api/type-aliases/DerivationFunctionAsync.md) | Function that derives a value asynchronously from dependencies and optionally the previous value. |
31
- | [FlowArrayAction](/api/type-aliases/FlowArrayAction.md) | Discriminated union representing all possible array mutation operations. |
32
- | [FlowDataTracker](/api/type-aliases/FlowDataTracker.md) | Function that tracks reactive dependencies and returns data. |
33
- | [FlowMapAction](/api/type-aliases/FlowMapAction.md) | Discriminated union representing all possible map mutation operations. |
34
- | [FlowOnDataListener](/api/type-aliases/FlowOnDataListener.md) | Callback invoked when new data is available. |
35
- | [FlowOnErrorListener](/api/type-aliases/FlowOnErrorListener.md) | Callback invoked when an error occurs during effect execution. |
36
- | [FlowOnPendingListener](/api/type-aliases/FlowOnPendingListener.md) | Callback invoked when an async computation is pending. |
37
- | [FlowReadonly](/api/type-aliases/FlowReadonly.md) | Type that restricts mutation methods to create read-only versions of reactive primitives. |
38
- | [InitFunction](/api/type-aliases/InitFunction.md) | Function that initializes a value. |
39
- | [InitFunctionAsync](/api/type-aliases/InitFunctionAsync.md) | Function that initializes a value asynchronously. |
40
- | [NotPromise](/api/type-aliases/NotPromise.md) | Type that excludes Promise values from a type union. |
41
- | [UpdateFunction](/api/type-aliases/UpdateFunction.md) | Function that updates a value based on the previous value. |
42
- | [UpdateFunctionAsync](/api/type-aliases/UpdateFunctionAsync.md) | Function that updates a value asynchronously based on the previous value. |
43
-
44
- ## Functions
45
-
46
- | Function | Description |
47
- | ------ | ------ |
48
- | [array](/api/functions/array.md) | Creates a reactive array with mutation methods and fine-grained action tracking. |
49
- | [constant](/api/functions/constant.md) | Creates a constant reactive value that initializes lazily and never recomputes. |
50
- | [constantAsync](/api/functions/constantAsync.md) | Creates a constant reactive value from a promise or async initializer that resolves once and never recomputes. |
51
- | [derivation](/api/functions/derivation.md) | Creates a derived reactive value that automatically recomputes when dependencies change. |
52
- | [derivationAsync](/api/functions/derivationAsync.md) | Creates an async derived value that automatically recomputes when dependencies change. |
53
- | [from](/api/functions/from.md) | Converts a PicoFlow observable or getter function into a SolidJS resource. |
54
- | [isDisposable](/api/functions/isDisposable.md) | Type guard to check if an object implements the FlowDisposable interface. |
55
- | [map](/api/functions/map.md) | Creates a reactive map with mutation methods and fine-grained action tracking. |
56
- | [signal](/api/functions/signal.md) | Creates a signal that can be manually triggered to notify dependents. |
57
- | [state](/api/functions/state.md) | Creates a mutable reactive state that can be read and updated imperatively. |
58
- | [stateAsync](/api/functions/stateAsync.md) | Creates a mutable async reactive state that resolves promises and can be updated imperatively. |
59
- | [subscribe](/api/functions/subscribe.md) | Creates a reactive effect that runs immediately and automatically re-runs when dependencies change. |
60
- | [writableDerivation](/api/functions/writableDerivation.md) | Creates a derived value that recomputes automatically but can also be manually overridden. |
61
- | [writableDerivationAsync](/api/functions/writableDerivationAsync.md) | Creates an async derived value that recomputes automatically but can also be manually overridden. |