@juulsgaard/signal-tools 22.0.1 → 22.0.2
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/dist/index.d.ts +5 -2
- package/dist/operators.mjs +13 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -829,7 +829,10 @@ declare function pairwiseSignal<T>(inputSignal: Signal<T>, firstValue: T): Signa
|
|
|
829
829
|
* @param getter - The getter for the proxy
|
|
830
830
|
* @param setter - The setter for the proxy
|
|
831
831
|
*/
|
|
832
|
-
declare function proxySignal<T, TOut>(signal: WritableSignal<T>, getter: (value: T) => TOut, setter: (value: TOut) => T):
|
|
832
|
+
declare function proxySignal<T, TOut>(signal: WritableSignal<T>, getter: (value: T) => TOut, setter: (value: TOut) => T): ProxySignal<TOut>;
|
|
833
|
+
type ProxySignal<T> = WritableSignal<T> & {
|
|
834
|
+
readonly error: Signal<Error | undefined>;
|
|
835
|
+
};
|
|
833
836
|
|
|
834
837
|
export { AsyncRequestState, EmptyRequestState, ErrorRequestState, IRequestState, IValueRequestState, LoadingRequestState, RequestTracker, SignalMap, SignalQueue, SignalSet, SignalStack, StaticRequestState, ValueRequestTracker, WritableRequestState, debouncedSignal, debouncedThrottledSignal, loadingSignal, pairwiseSignal, proxySignal, requestState, requestTracker, searchSignal, signalMap, signalQueue, signalSet, signalStack, subjectToSignal, throttledSignal, toLoadingSignal };
|
|
835
|
-
export type { CreateLoadingSignalOptions, LoadingSignal, LoadingSignalOptions, ReadonlySignalMap, ReadonlySignalSet, SignalQueueDelta, SignalQueueOptions, SignalStackDelta };
|
|
838
|
+
export type { CreateLoadingSignalOptions, LoadingSignal, LoadingSignalOptions, ProxySignal, ReadonlySignalMap, ReadonlySignalSet, SignalQueueDelta, SignalQueueOptions, SignalStackDelta };
|
package/dist/operators.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { computed, linkedSignal } from '@angular/core';
|
|
2
|
+
import { parseError } from '@juulsgaard/ts-tools';
|
|
2
3
|
|
|
3
4
|
function pairwiseSignal(inputSignal, firstValue) {
|
|
4
5
|
let prevValue = firstValue;
|
|
@@ -11,7 +12,18 @@ function pairwiseSignal(inputSignal, firstValue) {
|
|
|
11
12
|
}
|
|
12
13
|
function proxySignal(signal, getter, setter) {
|
|
13
14
|
const output = linkedSignal(() => getter(signal()));
|
|
14
|
-
|
|
15
|
+
const error = linkedSignal({
|
|
16
|
+
source: signal,
|
|
17
|
+
computation: () => void 0
|
|
18
|
+
});
|
|
19
|
+
output.set = (value) => {
|
|
20
|
+
try {
|
|
21
|
+
signal.set(setter(value));
|
|
22
|
+
} catch (e) {
|
|
23
|
+
error.set(parseError(e));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
output.error = error.asReadonly();
|
|
15
27
|
return output;
|
|
16
28
|
}
|
|
17
29
|
|
package/package.json
CHANGED