@fncts/observable 0.0.18 → 0.0.20
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/ObservableRef/api.d.ts +19 -20
- package/ObservableRef/atomic.d.ts +6 -28
- package/ObservableRef/definition.d.ts +24 -25
- package/ObservableRef.d.ts +3 -0
- package/_cjs/ObservableRef/api.cjs +46 -19
- package/_cjs/ObservableRef/api.cjs.map +1 -1
- package/_cjs/ObservableRef/atomic.cjs +13 -75
- package/_cjs/ObservableRef/atomic.cjs.map +1 -1
- package/_cjs/ObservableRef/definition.cjs +10 -2
- package/_cjs/ObservableRef/definition.cjs.map +1 -1
- package/_cjs/ObservableRef.cjs +39 -0
- package/_cjs/ObservableRef.cjs.map +1 -0
- package/_mjs/ObservableRef/api.mjs +46 -19
- package/_mjs/ObservableRef/api.mjs.map +1 -1
- package/_mjs/ObservableRef/atomic.mjs +11 -71
- package/_mjs/ObservableRef/atomic.mjs.map +1 -1
- package/_mjs/ObservableRef/definition.mjs +8 -2
- package/_mjs/ObservableRef/definition.mjs.map +1 -1
- package/_mjs/ObservableRef.mjs +5 -0
- package/_mjs/ObservableRef.mjs.map +1 -0
- package/_src/ObservableRef/api.ts +84 -52
- package/_src/ObservableRef/atomic.ts +11 -75
- package/_src/ObservableRef/definition.ts +25 -24
- package/_src/ObservableRef.ts +5 -0
- package/package.json +2 -2
|
@@ -1,57 +1,58 @@
|
|
|
1
|
-
import type { URIO } from "@fncts/io/IO";
|
|
2
1
|
import type { Observable } from "@fncts/observable/Observable";
|
|
3
2
|
|
|
4
|
-
type Readable_<
|
|
5
|
-
type Writable_<
|
|
3
|
+
type Readable_<A> = Readable<A>;
|
|
4
|
+
type Writable_<A> = Writable<A>;
|
|
6
5
|
|
|
7
6
|
export declare namespace ObservableRef {
|
|
8
|
-
type Readable<
|
|
9
|
-
type Writable<
|
|
7
|
+
type Readable<A> = Readable_<A>;
|
|
8
|
+
type Writable<A> = Writable_<A>;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
export class ObservableRefDescriptor<A> {
|
|
13
|
-
constructor(readonly
|
|
12
|
+
constructor(readonly initial: A) {}
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
export interface CommonObservableRef
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
19
|
-
readonly delete: URIO<R, void>;
|
|
15
|
+
export interface CommonObservableRef {
|
|
16
|
+
readonly unsafeClear: () => void;
|
|
17
|
+
readonly clear: UIO<void>;
|
|
20
18
|
}
|
|
21
19
|
|
|
22
20
|
/**
|
|
23
21
|
* @tsplus type fncts.observable.ObservableRef.Readable
|
|
24
22
|
*/
|
|
25
|
-
export interface Readable<out
|
|
26
|
-
readonly _R: (_: never) => R;
|
|
23
|
+
export interface Readable<out A> extends CommonObservableRef {
|
|
27
24
|
readonly _Out: (_: never) => A;
|
|
28
|
-
readonly get:
|
|
29
|
-
readonly
|
|
25
|
+
readonly get: UIO<A>;
|
|
26
|
+
readonly unsafeGet: () => A;
|
|
27
|
+
readonly observable: Observable<never, never, A>;
|
|
30
28
|
}
|
|
31
29
|
|
|
32
30
|
/**
|
|
33
31
|
* @tsplus type fncts.observable.ObservableRef.Writable
|
|
34
32
|
*/
|
|
35
|
-
export interface Writable<
|
|
36
|
-
readonly _R: (_: never) => R;
|
|
33
|
+
export interface Writable<in A> extends CommonObservableRef {
|
|
37
34
|
readonly _In: (_: A) => void;
|
|
38
|
-
set(a: A):
|
|
35
|
+
set(a: A): UIO<void>;
|
|
36
|
+
unsafeSet: (a: A) => void;
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
/**
|
|
42
40
|
* @tsplus type fncts.observable.ObservableRef
|
|
43
41
|
* @tsplus companion fncts.observable.ObservableRefOps
|
|
44
42
|
*/
|
|
45
|
-
export abstract class ObservableRef<
|
|
46
|
-
declare _R: (_: never) => R;
|
|
43
|
+
export abstract class ObservableRef<in A, out B> implements Readable<B>, Writable<A> {
|
|
47
44
|
declare _In: (_: A) => void;
|
|
48
45
|
declare _Out: (_: never) => B;
|
|
49
46
|
|
|
50
47
|
constructor(readonly descriptor: ObservableRefDescriptor<any>) {}
|
|
51
48
|
|
|
52
|
-
abstract
|
|
53
|
-
|
|
54
|
-
abstract
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
abstract unsafeGet(): B;
|
|
50
|
+
readonly get: UIO<B> = IO(this.unsafeGet());
|
|
51
|
+
abstract unsafeSet(a: A): void;
|
|
52
|
+
set(a: A): UIO<void> {
|
|
53
|
+
return IO(this.unsafeSet(a));
|
|
54
|
+
}
|
|
55
|
+
abstract unsafeClear(): void;
|
|
56
|
+
readonly clear = IO(this.unsafeClear());
|
|
57
|
+
abstract readonly observable: Observable<never, never, B>;
|
|
57
58
|
}
|