ctx-core 4.3.0 → 4.3.1

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.
@@ -6,22 +6,23 @@ export declare function rw_rmemo_<val_T>(
6
6
  init_val:val_T,
7
7
  ...subscriber_a:rmemo_subscriber_T<val_T>[]
8
8
  ):rw_rmemo_T<val_T>
9
- export type r_rmemo_T<val_T> = (()=>val_T)&r_rmemo_o_T<val_T>
10
- export type rw_rmemo_T<val_T> = ((val?:val_T)=>val_T)&rw_r_rmemo_o_T<val_T>
11
- export type rmemo_val_T<rw_rmemo_T> = rw_rmemo_T extends {
12
- (): infer val_T
13
- }
14
- ? val_T
15
- : unknown
16
- export type rmemo_def_T<val_T> = (rw_rmemo:rw_rmemo_T<val_T>)=>val_T
17
- export type rmemo_subscriber_T<val_T> = (rw_rmemo:rw_rmemo_T<val_T>)=>unknown
18
- export type r_rmemo_o_T<val_T> = {
9
+ export type r_rmemo_T<val_T> = {
19
10
  readonly _:val_T
20
11
  val:val_T
21
- go():unknown
12
+ get():val_T
13
+ go():r_rmemo_T<val_T>
22
14
  }
23
- export type rw_r_rmemo_o_T<val_T> = {
15
+ export type rw_rmemo_T<val_T> = {
24
16
  _:val_T
25
17
  val:val_T
26
- go():unknown
18
+ get():val_T
19
+ set(val:val_T):void
20
+ go():r_rmemo_T<val_T>
27
21
  }
22
+ export type rmemo_val_T<rw_rmemo_T> = rw_rmemo_T extends {
23
+ _:infer val_T
24
+ }
25
+ ? val_T
26
+ : unknown
27
+ export type rmemo_def_T<val_T> = (rw_rmemo:rw_rmemo_T<val_T>)=>val_T
28
+ export type rmemo_subscriber_T<val_T> = (rw_rmemo:rw_rmemo_T<val_T>)=>unknown
@@ -33,12 +33,14 @@ export function r_rmemo_(rmemo_def, ...subscriber_a) {
33
33
  set _(val) {
34
34
  if (val !== r_rmemo.val) {
35
35
  r_rmemo.val = val
36
+ // hook for rw_rmemo_
36
37
  r_rmemo._s?.(val)
37
38
  let run_queue = !queue[0]
38
39
  for (let r of r_rmemo._rs) {
39
40
  if (!~queue.indexOf(r)) queue.push(r)
40
41
  }
41
42
  if (!r_rmemo._sa) {
43
+ // add reference to subscribers to prevent GC
42
44
  r_rmemo._sa = subscriber_a.map(subscriber=>
43
45
  r_rmemo_(()=>subscriber(r_rmemo)).go())
44
46
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctx-core",
3
- "version": "4.3.0",
3
+ "version": "4.3.1",
4
4
  "description": "ctx-core core library",
5
5
  "keywords": [
6
6
  "ctx-core",