@fncts/observable 0.0.18 → 0.0.19

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.
@@ -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_<R, A> = Readable<R, A>;
5
- type Writable_<R, A> = Writable<R, A>;
3
+ type Readable_<A> = Readable<A>;
4
+ type Writable_<A> = Writable<A>;
6
5
 
7
6
  export declare namespace ObservableRef {
8
- type Readable<R, A> = Readable_<R, A>;
9
- type Writable<R, A> = Writable_<R, A>;
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 id: symbol, readonly initial: A) {}
12
+ constructor(readonly initial: A) {}
14
13
  }
15
14
 
16
- export interface CommonObservableRef<out R> {
17
- readonly _R: (_: never) => R;
18
- readonly has: URIO<R, boolean>;
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 R, out A> extends CommonObservableRef<R> {
26
- readonly _R: (_: never) => R;
23
+ export interface Readable<out A> extends CommonObservableRef {
27
24
  readonly _Out: (_: never) => A;
28
- readonly get: URIO<R, A>;
29
- readonly observable: Observable<R, never, A>;
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<out R, in A> extends CommonObservableRef<R> {
36
- readonly _R: (_: never) => R;
33
+ export interface Writable<in A> extends CommonObservableRef {
37
34
  readonly _In: (_: A) => void;
38
- set(a: A): URIO<R, void>;
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<out R, in A, out B> implements Readable<R, B>, Writable<R, A> {
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 readonly get: URIO<R, B>;
53
- abstract set(a: A): URIO<R, void>;
54
- abstract readonly delete: URIO<R, boolean>;
55
- abstract readonly has: URIO<R, boolean>;
56
- abstract readonly observable: Observable<R, never, B>;
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
  }
@@ -0,0 +1,5 @@
1
+ // codegen:start { preset: barrel, include: ./ObservableRef/*.ts }
2
+ export * from "./ObservableRef/api.js";
3
+ export * from "./ObservableRef/atomic.js";
4
+ export * from "./ObservableRef/definition.js";
5
+ // codegen:end
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@fncts/observable",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "dependencies": {
5
- "@fncts/base": "0.0.29"
5
+ "@fncts/base": "0.0.30"
6
6
  },
7
7
  "exports": {
8
8
  "./*": {