@fluixi/reactive 1.0.0-alpha.82 → 1.0.0-alpha.84
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/README.md +4 -0
- package/dist/cdn/reactive.cjs +2673 -1
- package/dist/cdn/reactive.global.js +2 -1
- package/dist/cdn/reactive.mjs +2657 -1
- package/dist/cdn/signal.cjs +299 -1
- package/dist/cdn/signal.d.ts +1 -1
- package/dist/cdn/signal.global.js +2 -1
- package/dist/cdn/signal.js +1 -1
- package/dist/cdn/signal.mjs +276 -1
- package/dist/index.cjs +2673 -1
- package/dist/index.mjs +2657 -1
- package/dist/lib/index.cjs +2674 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.mjs +2659 -1
- package/dist/lib/observable/index.cjs +386 -1
- package/dist/lib/observable/index.mjs +364 -1
- package/dist/lib/observable/observable.cjs +384 -1
- package/dist/lib/observable/observable.d.ts +0 -137
- package/dist/lib/observable/observable.d.ts.map +1 -1
- package/dist/lib/observable/observable.js +0 -71
- package/dist/lib/observable/observable.mjs +361 -1
- package/dist/lib/observable/subscription.cjs +180 -1
- package/dist/lib/observable/subscription.d.ts +0 -12
- package/dist/lib/observable/subscription.d.ts.map +1 -1
- package/dist/lib/observable/subscription.js +0 -12
- package/dist/lib/observable/subscription.mjs +157 -1
- package/dist/lib/observable/types.cjs +18 -1
- package/dist/lib/observable/types.d.ts.map +1 -1
- package/dist/lib/predicates.cjs +44 -1
- package/dist/lib/predicates.d.ts +2 -2
- package/dist/lib/predicates.js +2 -2
- package/dist/lib/predicates.mjs +23 -1
- package/dist/lib/signal/api.cjs +571 -1
- package/dist/lib/signal/api.d.ts +211 -1
- package/dist/lib/signal/api.d.ts.map +1 -1
- package/dist/lib/signal/api.js +207 -12
- package/dist/lib/signal/api.mjs +548 -1
- package/dist/lib/signal/cached-resource.cjs +672 -1
- package/dist/lib/signal/cached-resource.d.ts +28 -16
- package/dist/lib/signal/cached-resource.d.ts.map +1 -1
- package/dist/lib/signal/cached-resource.js +35 -29
- package/dist/lib/signal/cached-resource.mjs +650 -1
- package/dist/lib/signal/graph/children.cjs +325 -1
- package/dist/lib/signal/graph/children.js +1 -1
- package/dist/lib/signal/graph/children.mjs +302 -1
- package/dist/lib/signal/graph/compat.cjs +578 -1
- package/dist/lib/signal/graph/compat.d.ts +13 -13
- package/dist/lib/signal/graph/compat.d.ts.map +1 -1
- package/dist/lib/signal/graph/compat.js +51 -32
- package/dist/lib/signal/graph/compat.mjs +556 -1
- package/dist/lib/signal/graph/core.cjs +295 -1
- package/dist/lib/signal/graph/core.d.ts +28 -24
- package/dist/lib/signal/graph/core.d.ts.map +1 -1
- package/dist/lib/signal/graph/core.js +45 -31
- package/dist/lib/signal/graph/core.mjs +273 -1
- package/dist/lib/signal/graph/debounced.cjs +668 -1
- package/dist/lib/signal/graph/debounced.d.ts +5 -5
- package/dist/lib/signal/graph/debounced.d.ts.map +1 -1
- package/dist/lib/signal/graph/debounced.js +5 -5
- package/dist/lib/signal/graph/debounced.mjs +645 -1
- package/dist/lib/signal/graph/derived.cjs +496 -1
- package/dist/lib/signal/graph/derived.d.ts +1 -1
- package/dist/lib/signal/graph/derived.js +1 -1
- package/dist/lib/signal/graph/derived.mjs +473 -1
- package/dist/lib/signal/graph/detect.cjs +66 -1
- package/dist/lib/signal/graph/detect.mjs +45 -1
- package/dist/lib/signal/graph/error-boundary.cjs +301 -1
- package/dist/lib/signal/graph/error-boundary.js +3 -3
- package/dist/lib/signal/graph/error-boundary.mjs +278 -1
- package/dist/lib/signal/graph/index.cjs +305 -1
- package/dist/lib/signal/graph/index.d.ts +7 -6
- package/dist/lib/signal/graph/index.d.ts.map +1 -1
- package/dist/lib/signal/graph/index.js +7 -6
- package/dist/lib/signal/graph/index.mjs +283 -1
- package/dist/lib/signal/graph/observe.cjs +163 -0
- package/dist/lib/signal/graph/observe.d.ts +141 -0
- package/dist/lib/signal/graph/observe.d.ts.map +1 -0
- package/dist/lib/signal/graph/observe.js +149 -0
- package/dist/lib/signal/graph/observe.mjs +140 -0
- package/dist/lib/signal/graph/resource.cjs +620 -1
- package/dist/lib/signal/graph/resource.d.ts +1 -1
- package/dist/lib/signal/graph/resource.js +7 -8
- package/dist/lib/signal/graph/resource.mjs +597 -1
- package/dist/lib/signal/graph/runtime.cjs +501 -1
- package/dist/lib/signal/graph/runtime.d.ts +9 -9
- package/dist/lib/signal/graph/runtime.d.ts.map +1 -1
- package/dist/lib/signal/graph/runtime.js +56 -37
- package/dist/lib/signal/graph/runtime.mjs +478 -1
- package/dist/lib/signal/graph/signal-next.cjs +1208 -1
- package/dist/lib/signal/graph/signal-next.d.ts +5 -5
- package/dist/lib/signal/graph/signal-next.d.ts.map +1 -1
- package/dist/lib/signal/graph/signal-next.js +14 -12
- package/dist/lib/signal/graph/signal-next.mjs +1186 -1
- package/dist/lib/signal/graph/ssr-hooks.cjs +60 -1
- package/dist/lib/signal/graph/ssr-hooks.d.ts +6 -7
- package/dist/lib/signal/graph/ssr-hooks.d.ts.map +1 -1
- package/dist/lib/signal/graph/ssr-hooks.js +6 -7
- package/dist/lib/signal/graph/ssr-hooks.mjs +39 -1
- package/dist/lib/signal/graph/state.cjs +72 -1
- package/dist/lib/signal/graph/state.d.ts +43 -10
- package/dist/lib/signal/graph/state.d.ts.map +1 -1
- package/dist/lib/signal/graph/state.js +83 -21
- package/dist/lib/signal/graph/state.mjs +49 -1
- package/dist/lib/signal/graph/suspense.cjs +301 -1
- package/dist/lib/signal/graph/suspense.js +4 -4
- package/dist/lib/signal/graph/suspense.mjs +278 -1
- package/dist/lib/signal/index-legacy.cjs +2540 -1
- package/dist/lib/signal/index-legacy.d.ts +1 -1
- package/dist/lib/signal/index-legacy.js +1 -1
- package/dist/lib/signal/index-legacy.mjs +2518 -1
- package/dist/lib/signal/index.cjs +1275 -1
- package/dist/lib/signal/index.d.ts +5 -2
- package/dist/lib/signal/index.d.ts.map +1 -1
- package/dist/lib/signal/index.js +8 -3
- package/dist/lib/signal/index.mjs +1253 -1
- package/dist/lib/signal/list.cjs +549 -1
- package/dist/lib/signal/list.d.ts +5 -5
- package/dist/lib/signal/list.js +10 -10
- package/dist/lib/signal/list.mjs +526 -1
- package/dist/lib/signal/resource-api.cjs +626 -1
- package/dist/lib/signal/resource-api.d.ts +5 -5
- package/dist/lib/signal/resource-api.js +5 -5
- package/dist/lib/signal/resource-api.mjs +603 -1
- package/dist/lib/signal/signal.cjs +2023 -1
- package/dist/lib/signal/signal.d.ts +4 -4
- package/dist/lib/signal/signal.d.ts.map +1 -1
- package/dist/lib/signal/signal.js +22 -23
- package/dist/lib/signal/signal.mjs +2000 -1
- package/dist/lib/signal/types.cjs +38 -1
- package/dist/lib/signal/types.d.ts.map +1 -1
- package/dist/lib/signal/types.js +2 -2
- package/dist/lib/signal/types.mjs +17 -1
- package/dist/lib/signal/utilities.cjs +1012 -1
- package/dist/lib/signal/utilities.d.ts +0 -108
- package/dist/lib/signal/utilities.d.ts.map +1 -1
- package/dist/lib/signal/utilities.js +0 -158
- package/dist/lib/signal/utilities.mjs +990 -1
- package/dist/lib/store/api.cjs +612 -1
- package/dist/lib/store/api.d.ts +33 -0
- package/dist/lib/store/api.d.ts.map +1 -1
- package/dist/lib/store/api.js +41 -8
- package/dist/lib/store/api.mjs +596 -1
- package/dist/lib/store/index.cjs +691 -1
- package/dist/lib/store/index.js +1 -1
- package/dist/lib/store/index.mjs +676 -1
- package/dist/lib/store/setter.types.cjs +18 -1
- package/dist/lib/store/setter.types.d.ts +43 -3
- package/dist/lib/store/setter.types.d.ts.map +1 -1
- package/dist/lib/store/store.cjs +658 -1
- package/dist/lib/store/store.d.ts +72 -0
- package/dist/lib/store/store.d.ts.map +1 -1
- package/dist/lib/store/store.js +294 -11
- package/dist/lib/store/store.mjs +644 -1
- package/dist/lib/store/types.cjs +18 -1
- package/dist/lib/store/types.d.ts +1 -1
- package/dist/lib/store/types.d.ts.map +1 -1
- package/dist/lib/store/utils.cjs +43 -1
- package/dist/lib/store/utils.d.ts +1 -1
- package/dist/lib/store/utils.js +1 -1
- package/dist/lib/store/utils.mjs +22 -1
- package/dist/lib/subject.cjs +450 -1
- package/dist/lib/subject.js +3 -91
- package/dist/lib/subject.mjs +427 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/version.generated.cjs +27 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +2 -2
- package/dist/version.generated.mjs +7 -1
- package/package.json +5 -4
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Signal Utility Functions
|
|
3
|
-
* @description Common utility functions for transforming and combining signals
|
|
4
|
-
* @version 1.0.0
|
|
5
|
-
*/
|
|
6
1
|
import { type Accessor, type MemoOptions, type EnhancedSignal } from './signal.js';
|
|
7
2
|
import { Observable } from '../observable/observable.js';
|
|
8
3
|
/**
|
|
9
4
|
* Transform a signal value through a mapping function
|
|
10
|
-
* @template T - Input signal type
|
|
11
|
-
* @template U - Output signal type
|
|
12
|
-
* @param signal - Source signal to transform
|
|
13
|
-
* @param fn - Mapping function to apply to signal value
|
|
14
|
-
* @param options - Memo options for equality checking
|
|
15
|
-
* @returns New accessor with transformed value
|
|
16
5
|
*
|
|
17
6
|
* @example
|
|
18
7
|
* ```typescript
|
|
@@ -24,11 +13,6 @@ import { Observable } from '../observable/observable.js';
|
|
|
24
13
|
export declare function mapSignal<T, U>(signal: Accessor<T>, fn: (value: T) => U, options?: MemoOptions<U>): Accessor<U>;
|
|
25
14
|
/**
|
|
26
15
|
* Filter an array signal using a predicate function
|
|
27
|
-
* @template T - Array element type
|
|
28
|
-
* @param signal - Source signal containing array
|
|
29
|
-
* @param predicate - Filter function to test each element
|
|
30
|
-
* @param options - Memo options for equality checking
|
|
31
|
-
* @returns New accessor with filtered array
|
|
32
16
|
*
|
|
33
17
|
* @example
|
|
34
18
|
* ```typescript
|
|
@@ -40,13 +24,6 @@ export declare function mapSignal<T, U>(signal: Accessor<T>, fn: (value: T) => U
|
|
|
40
24
|
export declare function filterSignal<T>(signal: Accessor<T[]>, predicate: (value: T, index: number) => boolean, options?: MemoOptions<T[]>): Accessor<T[]>;
|
|
41
25
|
/**
|
|
42
26
|
* Reduce an array signal to a single value
|
|
43
|
-
* @template T - Array element type
|
|
44
|
-
* @template U - Accumulator type
|
|
45
|
-
* @param signal - Source signal containing array
|
|
46
|
-
* @param reducer - Reducer function
|
|
47
|
-
* @param initialValue - Initial accumulator value
|
|
48
|
-
* @param options - Memo options for equality checking
|
|
49
|
-
* @returns New accessor with reduced value
|
|
50
27
|
*
|
|
51
28
|
* @example
|
|
52
29
|
* ```typescript
|
|
@@ -58,11 +35,6 @@ export declare function filterSignal<T>(signal: Accessor<T[]>, predicate: (value
|
|
|
58
35
|
export declare function reduceSignal<T, U>(signal: Accessor<T[]>, reducer: (accumulator: U, current: T, index: number) => U, initialValue: U, options?: MemoOptions<U>): Accessor<U>;
|
|
59
36
|
/**
|
|
60
37
|
* Find first element in array signal matching predicate
|
|
61
|
-
* @template T - Array element type
|
|
62
|
-
* @param signal - Source signal containing array
|
|
63
|
-
* @param predicate - Predicate function to test elements
|
|
64
|
-
* @param options - Memo options for equality checking
|
|
65
|
-
* @returns New accessor with found element or undefined
|
|
66
38
|
*
|
|
67
39
|
* @example
|
|
68
40
|
* ```typescript
|
|
@@ -74,11 +46,6 @@ export declare function reduceSignal<T, U>(signal: Accessor<T[]>, reducer: (accu
|
|
|
74
46
|
export declare function findSignal<T>(signal: Accessor<T[]>, predicate: (value: T, index: number) => boolean, options?: MemoOptions<T | undefined>): Accessor<T | undefined>;
|
|
75
47
|
/**
|
|
76
48
|
* Check if any element in array signal matches predicate
|
|
77
|
-
* @template T - Array element type
|
|
78
|
-
* @param signal - Source signal containing array
|
|
79
|
-
* @param predicate - Predicate function to test elements
|
|
80
|
-
* @param options - Memo options for equality checking
|
|
81
|
-
* @returns New accessor returning boolean
|
|
82
49
|
*
|
|
83
50
|
* @example
|
|
84
51
|
* ```typescript
|
|
@@ -90,11 +57,6 @@ export declare function findSignal<T>(signal: Accessor<T[]>, predicate: (value:
|
|
|
90
57
|
export declare function someSignal<T>(signal: Accessor<T[]>, predicate: (value: T, index: number) => boolean, options?: MemoOptions<boolean>): Accessor<boolean>;
|
|
91
58
|
/**
|
|
92
59
|
* Check if all elements in array signal match predicate
|
|
93
|
-
* @template T - Array element type
|
|
94
|
-
* @param signal - Source signal containing array
|
|
95
|
-
* @param predicate - Predicate function to test elements
|
|
96
|
-
* @param options - Memo options for equality checking
|
|
97
|
-
* @returns New accessor returning boolean
|
|
98
60
|
*
|
|
99
61
|
* @example
|
|
100
62
|
* ```typescript
|
|
@@ -106,11 +68,6 @@ export declare function someSignal<T>(signal: Accessor<T[]>, predicate: (value:
|
|
|
106
68
|
export declare function everySignal<T>(signal: Accessor<T[]>, predicate: (value: T, index: number) => boolean, options?: MemoOptions<boolean>): Accessor<boolean>;
|
|
107
69
|
/**
|
|
108
70
|
* Sort an array signal
|
|
109
|
-
* @template T - Array element type
|
|
110
|
-
* @param signal - Source signal containing array
|
|
111
|
-
* @param compareFn - Optional compare function for sorting
|
|
112
|
-
* @param options - Memo options for equality checking
|
|
113
|
-
* @returns New accessor with sorted array
|
|
114
71
|
*
|
|
115
72
|
* @example
|
|
116
73
|
* ```typescript
|
|
@@ -122,10 +79,6 @@ export declare function everySignal<T>(signal: Accessor<T[]>, predicate: (value:
|
|
|
122
79
|
export declare function sortSignal<T>(signal: Accessor<T[]>, compareFn?: (a: T, b: T) => number, options?: MemoOptions<T[]>): Accessor<T[]>;
|
|
123
80
|
/**
|
|
124
81
|
* Get unique values from array signal
|
|
125
|
-
* @template T - Array element type
|
|
126
|
-
* @param signal - Source signal containing array
|
|
127
|
-
* @param options - Memo options for equality checking
|
|
128
|
-
* @returns New accessor with unique values
|
|
129
82
|
*
|
|
130
83
|
* @example
|
|
131
84
|
* ```typescript
|
|
@@ -137,12 +90,6 @@ export declare function sortSignal<T>(signal: Accessor<T[]>, compareFn?: (a: T,
|
|
|
137
90
|
export declare function distinctSignal<T>(signal: Accessor<T[]>, options?: MemoOptions<T[]>): Accessor<T[]>;
|
|
138
91
|
/**
|
|
139
92
|
* Combine multiple signals into a single computed signal
|
|
140
|
-
* @template T - Tuple type of signal values
|
|
141
|
-
* @template U - Result type
|
|
142
|
-
* @param signals - Array of signals to combine
|
|
143
|
-
* @param combiner - Function to combine signal values
|
|
144
|
-
* @param options - Memo options for equality checking
|
|
145
|
-
* @returns New accessor with combined value
|
|
146
93
|
*
|
|
147
94
|
* @example
|
|
148
95
|
* ```typescript
|
|
@@ -163,11 +110,6 @@ export declare function combineSignals<T extends any[]>(...signals: {
|
|
|
163
110
|
}): Observable<T>;
|
|
164
111
|
/**
|
|
165
112
|
* Merge two signals, returning value from first truthy signal
|
|
166
|
-
* @template T - Signal value type
|
|
167
|
-
* @param primary - Primary signal
|
|
168
|
-
* @param fallback - Fallback signal if primary is falsy
|
|
169
|
-
* @param options - Memo options for equality checking
|
|
170
|
-
* @returns New accessor with merged value
|
|
171
113
|
*
|
|
172
114
|
* @example
|
|
173
115
|
* ```typescript
|
|
@@ -180,14 +122,6 @@ export declare function combineSignals<T extends any[]>(...signals: {
|
|
|
180
122
|
export declare function mergeSignal<T>(primary: Accessor<T>, fallback: Accessor<T>, options?: MemoOptions<T>): Accessor<T>;
|
|
181
123
|
/**
|
|
182
124
|
* Combine two signals using a binary operator
|
|
183
|
-
* @template T - First signal type
|
|
184
|
-
* @template U - Second signal type
|
|
185
|
-
* @template V - Result type
|
|
186
|
-
* @param a - First signal
|
|
187
|
-
* @param b - Second signal
|
|
188
|
-
* @param operator - Binary operator function
|
|
189
|
-
* @param options - Memo options for equality checking
|
|
190
|
-
* @returns New accessor with combined value
|
|
191
125
|
*
|
|
192
126
|
* @example
|
|
193
127
|
* ```typescript
|
|
@@ -201,12 +135,6 @@ export declare function zipSignal<T, U, V>(a: Accessor<T>, b: Accessor<U>, opera
|
|
|
201
135
|
/**
|
|
202
136
|
* Select a derived value from a signal with custom equality
|
|
203
137
|
* Only updates when selected value changes according to equals function
|
|
204
|
-
* @template T - Signal type
|
|
205
|
-
* @template U - Selected value type
|
|
206
|
-
* @param signal - Source signal
|
|
207
|
-
* @param selector - Function to select value from signal
|
|
208
|
-
* @param equals - Optional equality function (defaults to Object.is)
|
|
209
|
-
* @returns New accessor with selected value
|
|
210
138
|
*
|
|
211
139
|
* @example
|
|
212
140
|
* ```typescript
|
|
@@ -218,12 +146,6 @@ export declare function zipSignal<T, U, V>(a: Accessor<T>, b: Accessor<U>, opera
|
|
|
218
146
|
export declare function selectSignal<T, U>(signal: Accessor<T>, selector: (value: T) => U, equals?: (a: U, b: U) => boolean): Accessor<U>;
|
|
219
147
|
/**
|
|
220
148
|
* Pick specific properties from an object signal
|
|
221
|
-
* @template T - Object type
|
|
222
|
-
* @template K - Property keys
|
|
223
|
-
* @param signal - Source signal containing object
|
|
224
|
-
* @param keys - Array of property keys to pick
|
|
225
|
-
* @param options - Memo options for equality checking
|
|
226
|
-
* @returns New accessor with picked properties
|
|
227
149
|
*
|
|
228
150
|
* @example
|
|
229
151
|
* ```typescript
|
|
@@ -235,12 +157,6 @@ export declare function selectSignal<T, U>(signal: Accessor<T>, selector: (value
|
|
|
235
157
|
export declare function pickSignal<T extends Record<string, any>, K extends keyof T>(signal: Accessor<T>, keys: K[], options?: MemoOptions<Pick<T, K>>): Accessor<Pick<T, K>>;
|
|
236
158
|
/**
|
|
237
159
|
* Omit specific properties from an object signal
|
|
238
|
-
* @template T - Object type
|
|
239
|
-
* @template K - Property keys to omit
|
|
240
|
-
* @param signal - Source signal containing object
|
|
241
|
-
* @param keys - Array of property keys to omit
|
|
242
|
-
* @param options - Memo options for equality checking
|
|
243
|
-
* @returns New accessor with omitted properties
|
|
244
160
|
*
|
|
245
161
|
* @example
|
|
246
162
|
* ```typescript
|
|
@@ -252,12 +168,6 @@ export declare function pickSignal<T extends Record<string, any>, K extends keyo
|
|
|
252
168
|
export declare function omitSignal<T extends Record<string, any>, K extends keyof T>(signal: Accessor<T>, keys: K[], options?: MemoOptions<Omit<T, K>>): Accessor<Omit<T, K>>;
|
|
253
169
|
/**
|
|
254
170
|
* Conditionally compute signal based on condition
|
|
255
|
-
* @template T - Result type
|
|
256
|
-
* @param condition - Condition signal or accessor
|
|
257
|
-
* @param whenTrue - Accessor to use when condition is true
|
|
258
|
-
* @param whenFalse - Accessor to use when condition is false
|
|
259
|
-
* @param options - Memo options for equality checking
|
|
260
|
-
* @returns New accessor with conditional value
|
|
261
171
|
*
|
|
262
172
|
* @example
|
|
263
173
|
* ```typescript
|
|
@@ -271,11 +181,6 @@ export declare function omitSignal<T extends Record<string, any>, K extends keyo
|
|
|
271
181
|
export declare function whenSignal<T>(condition: Accessor<boolean>, whenTrue: Accessor<T>, whenFalse: Accessor<T>, options?: MemoOptions<T>): Accessor<T>;
|
|
272
182
|
/**
|
|
273
183
|
* Compute signal only when condition is true, otherwise return undefined
|
|
274
|
-
* @template T - Result type
|
|
275
|
-
* @param condition - Condition signal or accessor
|
|
276
|
-
* @param accessor - Accessor to use when condition is true
|
|
277
|
-
* @param options - Memo options for equality checking
|
|
278
|
-
* @returns New accessor with conditional value or undefined
|
|
279
184
|
*
|
|
280
185
|
* @example
|
|
281
186
|
* ```typescript
|
|
@@ -288,11 +193,6 @@ export declare function whenSignal<T>(condition: Accessor<boolean>, whenTrue: Ac
|
|
|
288
193
|
export declare function guardSignal<T>(condition: Accessor<boolean>, accessor: Accessor<T>, options?: MemoOptions<T | undefined>): Accessor<T | undefined>;
|
|
289
194
|
/**
|
|
290
195
|
* Debounce a signal - only update after delay period with no changes
|
|
291
|
-
* @template T - Signal type
|
|
292
|
-
* @param signal - Source signal to debounce
|
|
293
|
-
* @param delay - Delay in milliseconds
|
|
294
|
-
* @param options - Memo options for equality checking
|
|
295
|
-
* @returns New accessor with debounced value
|
|
296
196
|
*
|
|
297
197
|
* @example
|
|
298
198
|
* ```typescript
|
|
@@ -304,11 +204,6 @@ export declare function guardSignal<T>(condition: Accessor<boolean>, accessor: A
|
|
|
304
204
|
export declare function debounceSignal<T>(signal: Accessor<T>, delay: number, options?: MemoOptions<T>): Accessor<T>;
|
|
305
205
|
/**
|
|
306
206
|
* Throttle a signal - limit update frequency
|
|
307
|
-
* @template T - Signal type
|
|
308
|
-
* @param signal - Source signal to throttle
|
|
309
|
-
* @param delay - Minimum delay between updates in milliseconds
|
|
310
|
-
* @param options - Memo options for equality checking
|
|
311
|
-
* @returns New accessor with throttled value
|
|
312
207
|
*
|
|
313
208
|
* @example
|
|
314
209
|
* ```typescript
|
|
@@ -327,9 +222,6 @@ export { type Accessor, type MemoOptions } from './signal.js';
|
|
|
327
222
|
* Useful for converting callback-based APIs to promises, implementing timeouts,
|
|
328
223
|
* or coordinating complex async flows.
|
|
329
224
|
*
|
|
330
|
-
* @template T - The type of the value the promise resolves with
|
|
331
|
-
* @returns An object containing the promise, resolve function, and reject function
|
|
332
|
-
*
|
|
333
225
|
* @example
|
|
334
226
|
* ```typescript
|
|
335
227
|
* // Create a promise with external controls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../src/lib/signal/utilities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../src/lib/signal/utilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Signal Utility Functions
|
|
3
|
-
* @description Common utility functions for transforming and combining signals
|
|
4
|
-
* @version 1.0.0
|
|
5
|
-
*/
|
|
6
1
|
import { createSignal, createMemo, createEffect } from './graph/compat.js';
|
|
7
2
|
import { Observable } from '../observable/observable.js';
|
|
8
3
|
// ============================================================================
|
|
@@ -10,12 +5,6 @@ import { Observable } from '../observable/observable.js';
|
|
|
10
5
|
// ============================================================================
|
|
11
6
|
/**
|
|
12
7
|
* Transform a signal value through a mapping function
|
|
13
|
-
* @template T - Input signal type
|
|
14
|
-
* @template U - Output signal type
|
|
15
|
-
* @param signal - Source signal to transform
|
|
16
|
-
* @param fn - Mapping function to apply to signal value
|
|
17
|
-
* @param options - Memo options for equality checking
|
|
18
|
-
* @returns New accessor with transformed value
|
|
19
8
|
*
|
|
20
9
|
* @example
|
|
21
10
|
* ```typescript
|
|
@@ -29,11 +18,6 @@ export function mapSignal(signal, fn, options) {
|
|
|
29
18
|
}
|
|
30
19
|
/**
|
|
31
20
|
* Filter an array signal using a predicate function
|
|
32
|
-
* @template T - Array element type
|
|
33
|
-
* @param signal - Source signal containing array
|
|
34
|
-
* @param predicate - Filter function to test each element
|
|
35
|
-
* @param options - Memo options for equality checking
|
|
36
|
-
* @returns New accessor with filtered array
|
|
37
21
|
*
|
|
38
22
|
* @example
|
|
39
23
|
* ```typescript
|
|
@@ -47,13 +31,6 @@ export function filterSignal(signal, predicate, options) {
|
|
|
47
31
|
}
|
|
48
32
|
/**
|
|
49
33
|
* Reduce an array signal to a single value
|
|
50
|
-
* @template T - Array element type
|
|
51
|
-
* @template U - Accumulator type
|
|
52
|
-
* @param signal - Source signal containing array
|
|
53
|
-
* @param reducer - Reducer function
|
|
54
|
-
* @param initialValue - Initial accumulator value
|
|
55
|
-
* @param options - Memo options for equality checking
|
|
56
|
-
* @returns New accessor with reduced value
|
|
57
34
|
*
|
|
58
35
|
* @example
|
|
59
36
|
* ```typescript
|
|
@@ -67,11 +44,6 @@ export function reduceSignal(signal, reducer, initialValue, options) {
|
|
|
67
44
|
}
|
|
68
45
|
/**
|
|
69
46
|
* Find first element in array signal matching predicate
|
|
70
|
-
* @template T - Array element type
|
|
71
|
-
* @param signal - Source signal containing array
|
|
72
|
-
* @param predicate - Predicate function to test elements
|
|
73
|
-
* @param options - Memo options for equality checking
|
|
74
|
-
* @returns New accessor with found element or undefined
|
|
75
47
|
*
|
|
76
48
|
* @example
|
|
77
49
|
* ```typescript
|
|
@@ -85,11 +57,6 @@ export function findSignal(signal, predicate, options) {
|
|
|
85
57
|
}
|
|
86
58
|
/**
|
|
87
59
|
* Check if any element in array signal matches predicate
|
|
88
|
-
* @template T - Array element type
|
|
89
|
-
* @param signal - Source signal containing array
|
|
90
|
-
* @param predicate - Predicate function to test elements
|
|
91
|
-
* @param options - Memo options for equality checking
|
|
92
|
-
* @returns New accessor returning boolean
|
|
93
60
|
*
|
|
94
61
|
* @example
|
|
95
62
|
* ```typescript
|
|
@@ -103,11 +70,6 @@ export function someSignal(signal, predicate, options) {
|
|
|
103
70
|
}
|
|
104
71
|
/**
|
|
105
72
|
* Check if all elements in array signal match predicate
|
|
106
|
-
* @template T - Array element type
|
|
107
|
-
* @param signal - Source signal containing array
|
|
108
|
-
* @param predicate - Predicate function to test elements
|
|
109
|
-
* @param options - Memo options for equality checking
|
|
110
|
-
* @returns New accessor returning boolean
|
|
111
73
|
*
|
|
112
74
|
* @example
|
|
113
75
|
* ```typescript
|
|
@@ -121,11 +83,6 @@ export function everySignal(signal, predicate, options) {
|
|
|
121
83
|
}
|
|
122
84
|
/**
|
|
123
85
|
* Sort an array signal
|
|
124
|
-
* @template T - Array element type
|
|
125
|
-
* @param signal - Source signal containing array
|
|
126
|
-
* @param compareFn - Optional compare function for sorting
|
|
127
|
-
* @param options - Memo options for equality checking
|
|
128
|
-
* @returns New accessor with sorted array
|
|
129
86
|
*
|
|
130
87
|
* @example
|
|
131
88
|
* ```typescript
|
|
@@ -139,10 +96,6 @@ export function sortSignal(signal, compareFn, options) {
|
|
|
139
96
|
}
|
|
140
97
|
/**
|
|
141
98
|
* Get unique values from array signal
|
|
142
|
-
* @template T - Array element type
|
|
143
|
-
* @param signal - Source signal containing array
|
|
144
|
-
* @param options - Memo options for equality checking
|
|
145
|
-
* @returns New accessor with unique values
|
|
146
99
|
*
|
|
147
100
|
* @example
|
|
148
101
|
* ```typescript
|
|
@@ -159,12 +112,6 @@ export function distinctSignal(signal, options) {
|
|
|
159
112
|
// ============================================================================
|
|
160
113
|
/**
|
|
161
114
|
* Combine multiple signals into a single computed signal
|
|
162
|
-
* @template T - Tuple type of signal values
|
|
163
|
-
* @template U - Result type
|
|
164
|
-
* @param signals - Array of signals to combine
|
|
165
|
-
* @param combiner - Function to combine signal values
|
|
166
|
-
* @param options - Memo options for equality checking
|
|
167
|
-
* @returns New accessor with combined value
|
|
168
115
|
*
|
|
169
116
|
* @example
|
|
170
117
|
* ```typescript
|
|
@@ -211,72 +158,14 @@ export function combineSignals(...signals) {
|
|
|
211
158
|
});
|
|
212
159
|
};
|
|
213
160
|
});
|
|
214
|
-
// return {
|
|
215
|
-
// subscribe(
|
|
216
|
-
// observerOrNext?: ((value: T) => void) | Partial<SignalObserver<T>>,
|
|
217
|
-
// error?: (error: any) => void,
|
|
218
|
-
// complete?: () => void
|
|
219
|
-
// ): Subscription {
|
|
220
|
-
// const observer = typeof observerOrNext === 'function'
|
|
221
|
-
// ? { next: observerOrNext, error, complete }
|
|
222
|
-
// : observerOrNext || {};
|
|
223
|
-
// const getValues = () => signals.map(s =>
|
|
224
|
-
// typeof s === 'function' ? s() : s.get()
|
|
225
|
-
// ) as T;
|
|
226
|
-
// if (observer.next) {
|
|
227
|
-
// observer.next(getValues());
|
|
228
|
-
// }
|
|
229
|
-
// const disposers = signals.map(signal => {
|
|
230
|
-
// if (typeof signal === 'function' && (signal as any).subscribe) {
|
|
231
|
-
// return (signal as any).subscribe(() => {
|
|
232
|
-
// if (observer.next) {
|
|
233
|
-
// observer.next(getValues());
|
|
234
|
-
// }
|
|
235
|
-
// });
|
|
236
|
-
// } else if (typeof signal !== 'function') {
|
|
237
|
-
// return signal.subscribe(() => {
|
|
238
|
-
// if (observer.next) {
|
|
239
|
-
// observer.next(getValues());
|
|
240
|
-
// }
|
|
241
|
-
// });
|
|
242
|
-
// }
|
|
243
|
-
// return createEffect(() => {
|
|
244
|
-
// getValues();
|
|
245
|
-
// if (observer.next) {
|
|
246
|
-
// observer.next(getValues());
|
|
247
|
-
// }
|
|
248
|
-
// });
|
|
249
|
-
// });
|
|
250
|
-
// return {
|
|
251
|
-
// unsubscribe: () => {
|
|
252
|
-
// disposers.forEach(dispose => {
|
|
253
|
-
// if (typeof dispose === 'function') dispose();
|
|
254
|
-
// else if (dispose && typeof dispose.unsubscribe === 'function') {
|
|
255
|
-
// dispose.unsubscribe();
|
|
256
|
-
// }
|
|
257
|
-
// });
|
|
258
|
-
// },
|
|
259
|
-
// closed: false
|
|
260
|
-
// };
|
|
261
161
|
// },
|
|
262
162
|
// pipe(...operators: any[]): Observable<any> {
|
|
263
163
|
// throw new Error('Pipe requires RxJS');
|
|
264
164
|
// }
|
|
265
165
|
// };
|
|
266
166
|
}
|
|
267
|
-
// export function isSignal<T>(fn: any): fn is () => T {
|
|
268
|
-
// return typeof fn === 'function' && fn.length === 0;
|
|
269
|
-
// }
|
|
270
|
-
// export function isEffect(fn: any): fn is SignalObserver {
|
|
271
|
-
// return typeof fn === 'function' && 'dependencies' in fn;
|
|
272
|
-
// }
|
|
273
167
|
/**
|
|
274
168
|
* Merge two signals, returning value from first truthy signal
|
|
275
|
-
* @template T - Signal value type
|
|
276
|
-
* @param primary - Primary signal
|
|
277
|
-
* @param fallback - Fallback signal if primary is falsy
|
|
278
|
-
* @param options - Memo options for equality checking
|
|
279
|
-
* @returns New accessor with merged value
|
|
280
169
|
*
|
|
281
170
|
* @example
|
|
282
171
|
* ```typescript
|
|
@@ -291,14 +180,6 @@ export function mergeSignal(primary, fallback, options) {
|
|
|
291
180
|
}
|
|
292
181
|
/**
|
|
293
182
|
* Combine two signals using a binary operator
|
|
294
|
-
* @template T - First signal type
|
|
295
|
-
* @template U - Second signal type
|
|
296
|
-
* @template V - Result type
|
|
297
|
-
* @param a - First signal
|
|
298
|
-
* @param b - Second signal
|
|
299
|
-
* @param operator - Binary operator function
|
|
300
|
-
* @param options - Memo options for equality checking
|
|
301
|
-
* @returns New accessor with combined value
|
|
302
183
|
*
|
|
303
184
|
* @example
|
|
304
185
|
* ```typescript
|
|
@@ -317,12 +198,6 @@ export function zipSignal(a, b, operator, options) {
|
|
|
317
198
|
/**
|
|
318
199
|
* Select a derived value from a signal with custom equality
|
|
319
200
|
* Only updates when selected value changes according to equals function
|
|
320
|
-
* @template T - Signal type
|
|
321
|
-
* @template U - Selected value type
|
|
322
|
-
* @param signal - Source signal
|
|
323
|
-
* @param selector - Function to select value from signal
|
|
324
|
-
* @param equals - Optional equality function (defaults to Object.is)
|
|
325
|
-
* @returns New accessor with selected value
|
|
326
201
|
*
|
|
327
202
|
* @example
|
|
328
203
|
* ```typescript
|
|
@@ -339,12 +214,6 @@ export function selectSignal(signal, selector, equals) {
|
|
|
339
214
|
}
|
|
340
215
|
/**
|
|
341
216
|
* Pick specific properties from an object signal
|
|
342
|
-
* @template T - Object type
|
|
343
|
-
* @template K - Property keys
|
|
344
|
-
* @param signal - Source signal containing object
|
|
345
|
-
* @param keys - Array of property keys to pick
|
|
346
|
-
* @param options - Memo options for equality checking
|
|
347
|
-
* @returns New accessor with picked properties
|
|
348
217
|
*
|
|
349
218
|
* @example
|
|
350
219
|
* ```typescript
|
|
@@ -365,12 +234,6 @@ export function pickSignal(signal, keys, options) {
|
|
|
365
234
|
}
|
|
366
235
|
/**
|
|
367
236
|
* Omit specific properties from an object signal
|
|
368
|
-
* @template T - Object type
|
|
369
|
-
* @template K - Property keys to omit
|
|
370
|
-
* @param signal - Source signal containing object
|
|
371
|
-
* @param keys - Array of property keys to omit
|
|
372
|
-
* @param options - Memo options for equality checking
|
|
373
|
-
* @returns New accessor with omitted properties
|
|
374
237
|
*
|
|
375
238
|
* @example
|
|
376
239
|
* ```typescript
|
|
@@ -394,12 +257,6 @@ export function omitSignal(signal, keys, options) {
|
|
|
394
257
|
// ============================================================================
|
|
395
258
|
/**
|
|
396
259
|
* Conditionally compute signal based on condition
|
|
397
|
-
* @template T - Result type
|
|
398
|
-
* @param condition - Condition signal or accessor
|
|
399
|
-
* @param whenTrue - Accessor to use when condition is true
|
|
400
|
-
* @param whenFalse - Accessor to use when condition is false
|
|
401
|
-
* @param options - Memo options for equality checking
|
|
402
|
-
* @returns New accessor with conditional value
|
|
403
260
|
*
|
|
404
261
|
* @example
|
|
405
262
|
* ```typescript
|
|
@@ -415,11 +272,6 @@ export function whenSignal(condition, whenTrue, whenFalse, options) {
|
|
|
415
272
|
}
|
|
416
273
|
/**
|
|
417
274
|
* Compute signal only when condition is true, otherwise return undefined
|
|
418
|
-
* @template T - Result type
|
|
419
|
-
* @param condition - Condition signal or accessor
|
|
420
|
-
* @param accessor - Accessor to use when condition is true
|
|
421
|
-
* @param options - Memo options for equality checking
|
|
422
|
-
* @returns New accessor with conditional value or undefined
|
|
423
275
|
*
|
|
424
276
|
* @example
|
|
425
277
|
* ```typescript
|
|
@@ -437,11 +289,6 @@ export function guardSignal(condition, accessor, options) {
|
|
|
437
289
|
// ============================================================================
|
|
438
290
|
/**
|
|
439
291
|
* Debounce a signal - only update after delay period with no changes
|
|
440
|
-
* @template T - Signal type
|
|
441
|
-
* @param signal - Source signal to debounce
|
|
442
|
-
* @param delay - Delay in milliseconds
|
|
443
|
-
* @param options - Memo options for equality checking
|
|
444
|
-
* @returns New accessor with debounced value
|
|
445
292
|
*
|
|
446
293
|
* @example
|
|
447
294
|
* ```typescript
|
|
@@ -462,11 +309,6 @@ export function debounceSignal(signal, delay, options) {
|
|
|
462
309
|
}
|
|
463
310
|
/**
|
|
464
311
|
* Throttle a signal - limit update frequency
|
|
465
|
-
* @template T - Signal type
|
|
466
|
-
* @param signal - Source signal to throttle
|
|
467
|
-
* @param delay - Minimum delay between updates in milliseconds
|
|
468
|
-
* @param options - Memo options for equality checking
|
|
469
|
-
* @returns New accessor with throttled value
|
|
470
312
|
*
|
|
471
313
|
* @example
|
|
472
314
|
* ```typescript
|