@cascateer/core 2.3.49 → 2.3.50
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/package.json +1 -1
- package/src/observable/Signal.ts +17 -16
package/package.json
CHANGED
package/src/observable/Signal.ts
CHANGED
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
import { Transform } from "../types";
|
|
13
13
|
|
|
14
14
|
class SignalEnumerator<T> {
|
|
15
|
-
constructor(private
|
|
15
|
+
constructor(private enumerator: Enumerator<T> = nthArg(1)) {}
|
|
16
16
|
|
|
17
17
|
findIndex = (key: PropertyKey) => (value: T) =>
|
|
18
|
-
asEnumerable(value).map(this.
|
|
18
|
+
asEnumerable(value).map(this.enumerator).indexOf(key);
|
|
19
19
|
|
|
20
|
-
enumerate = (value: T) => asEnumerable(value).map(this.
|
|
20
|
+
enumerate = (value: T) => asEnumerable(value).map(this.enumerator);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
class SignalAdapter<T> {
|
|
@@ -25,10 +25,11 @@ class SignalAdapter<T> {
|
|
|
25
25
|
public lift: (transform: Transform<T>) => Transform<unknown> = identity,
|
|
26
26
|
) {}
|
|
27
27
|
|
|
28
|
-
connect
|
|
28
|
+
connect<U>(
|
|
29
29
|
connector: UnaryFunction<Transform<U>, Transform<T>>,
|
|
30
|
-
): SignalAdapter<U>
|
|
31
|
-
new SignalAdapter((transform) => this.lift(connector(transform)));
|
|
30
|
+
): SignalAdapter<U> {
|
|
31
|
+
return new SignalAdapter((transform) => this.lift(connector(transform)));
|
|
32
|
+
}
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
export class Signal<T> extends ProxyObservable<T> {
|
|
@@ -61,18 +62,18 @@ export class Signal<T> extends ProxyObservable<T> {
|
|
|
61
62
|
private project<U>(
|
|
62
63
|
projector: UnaryFunction<T, U>,
|
|
63
64
|
connector: UnaryFunction<Transform<U>, Transform<T>>,
|
|
64
|
-
|
|
65
|
+
enumerator?: Enumerator<U>,
|
|
65
66
|
): Signal<U> {
|
|
66
67
|
return new Signal({
|
|
67
68
|
value: this.pipe(map(projector), distinctUntilChanged()),
|
|
68
|
-
enumerator: new SignalEnumerator(
|
|
69
|
+
enumerator: new SignalEnumerator(enumerator),
|
|
69
70
|
adapter: this.adapter.connect(connector),
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
protected property<K extends keyof T>(
|
|
74
75
|
key: K,
|
|
75
|
-
|
|
76
|
+
enumerator?: Enumerator<T[K]>,
|
|
76
77
|
): Signal<T[K]> {
|
|
77
78
|
const findProperty: UnaryFunction<T, T[K]> = property(key);
|
|
78
79
|
|
|
@@ -85,13 +86,13 @@ export class Signal<T> extends ProxyObservable<T> {
|
|
|
85
86
|
|
|
86
87
|
return value;
|
|
87
88
|
},
|
|
88
|
-
|
|
89
|
+
enumerator,
|
|
89
90
|
);
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
protected item(
|
|
93
94
|
key: PropertyKey,
|
|
94
|
-
|
|
95
|
+
enumerator?: Enumerator<EnumerableItem<T>>,
|
|
95
96
|
): Signal<EnumerableItem<T>> {
|
|
96
97
|
const findIndex = this.enumerator.findIndex(key);
|
|
97
98
|
const findItem: UnaryFunction<T, EnumerableItem<T>> = (value) =>
|
|
@@ -106,7 +107,7 @@ export class Signal<T> extends ProxyObservable<T> {
|
|
|
106
107
|
|
|
107
108
|
return value;
|
|
108
109
|
},
|
|
109
|
-
|
|
110
|
+
enumerator,
|
|
110
111
|
);
|
|
111
112
|
}
|
|
112
113
|
|
|
@@ -149,16 +150,16 @@ export class Signal<T> extends ProxyObservable<T> {
|
|
|
149
150
|
export class ComputedSignal<T> extends Signal<T> {
|
|
150
151
|
property<K extends keyof T>(
|
|
151
152
|
key: K,
|
|
152
|
-
|
|
153
|
+
enumerator?: Enumerator<T[K]>,
|
|
153
154
|
): ComputedSignal<T[K]> {
|
|
154
|
-
return new ComputedSignal(super.property(key,
|
|
155
|
+
return new ComputedSignal(super.property(key, enumerator));
|
|
155
156
|
}
|
|
156
157
|
|
|
157
158
|
item(
|
|
158
159
|
key: PropertyKey,
|
|
159
|
-
|
|
160
|
+
enumerator?: Enumerator<EnumerableItem<T>>,
|
|
160
161
|
): ComputedSignal<EnumerableItem<T>> {
|
|
161
|
-
return new ComputedSignal(super.item(key,
|
|
162
|
+
return new ComputedSignal(super.item(key, enumerator));
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
collection<K extends keyof EnumerableItem<T>>(
|