ctx-core 4.1.0 → 4.2.0

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.
@@ -0,0 +1,25 @@
1
+ import type { Be, be__val__new_T, be_config_T, Ctx } from '../be_/index.js'
2
+ import type { r_rmemo_T, rmemo_def_T } from '../rmemo/index.js'
3
+ export declare function be_r_rmemo_pair_<
4
+ val_T,
5
+ _r_rmemo_T extends r_rmemo_T<val_T> = r_rmemo_T<val_T>,
6
+ ctx_T extends Ctx = Ctx
7
+ >(be: Be<_r_rmemo_T, ctx_T>):be_r_rmemo_pair_T<val_T, _r_rmemo_T, ctx_T>
8
+ export declare function be_r_rmemo_pair_<
9
+ val_T,
10
+ _r_rmemo_T extends r_rmemo_T<val_T> = r_rmemo_T<val_T>,
11
+ ctx_T extends Ctx = Ctx
12
+ >(
13
+ rmemo__new:be__val__new_T<val_T>,
14
+ ...subscriber_a_THEN_config:
15
+ |[...rmemo_def_T<val_T>[]]
16
+ |[...rmemo_def_T<val_T>[], config:be_config_T]
17
+ ):be_r_rmemo_pair_T<val_T, _r_rmemo_T, ctx_T>
18
+ export type be_r_rmemo_pair_T<
19
+ val_T,
20
+ _r_rmemo_T extends r_rmemo_T<val_T> = r_rmemo_T<val_T>,
21
+ ctx_T extends Ctx = Ctx
22
+ > = [
23
+ Be<_r_rmemo_T, ctx_T>,
24
+ (ctx:ctx_T)=>val_T
25
+ ]
@@ -1,17 +1,17 @@
1
1
  import { be_ } from '../be_/index.js'
2
- import { rmemo_ } from '../rmemo/index.js'
2
+ import { r_rmemo_ } from '../rmemo/index.js'
3
3
  /** @typedef {import('../be_/index.d.ts').Be} */
4
4
  /** @typedef {import('../be_/index.d.ts').be__val__new_T} */
5
5
  /** @typedef {import('../be_/index.d.ts').be_config_T} */
6
6
  /** @typedef {import('../rmemo/index.d.ts').rmemo_subscriber_T} */
7
- /** @typedef {import('./index.d.ts').be_rmemo_pair_T} */
7
+ /** @typedef {import('./index.d.ts').be_r_rmemo_pair_T} */
8
8
  /**
9
9
  * @param {Be|be__val__new_T<unknown>}be_OR_val__new
10
10
  * @param {rmemo_subscriber_T[]|[...rmemo_subscriber_T[], be_config_T]}subscriber_a_THEN_config
11
- * @returns {be_rmemo_pair_T}
11
+ * @returns {be_r_rmemo_pair_T}
12
12
  * @private
13
13
  */
14
- export function be_rmemo_pair_(
14
+ export function be_r_rmemo_pair_(
15
15
  be_OR_val__new,
16
16
  ...subscriber_a_THEN_config
17
17
  ) {
@@ -24,7 +24,7 @@ export function be_rmemo_pair_(
24
24
  be_OR_val__new.is_be
25
25
  ? be_OR_val__new
26
26
  : be_(ctx=>
27
- rmemo_(()=>be_OR_val__new(ctx), ...subscriber_a_THEN_config),
27
+ r_rmemo_(()=>be_OR_val__new(ctx), ...subscriber_a_THEN_config),
28
28
  config)
29
29
  return [
30
30
  be,
@@ -1,21 +1,21 @@
1
1
  import { test } from 'uvu'
2
2
  import { equal } from 'uvu/assert'
3
3
  import { be_ } from '../be_/index.js'
4
- import { be_rsig_triple_ } from '../be_rsig_triple/index.js'
4
+ import { be_rw_rmemo_triple_ } from '../be_rw_rmemo_triple/index.js'
5
5
  import { ctx__new } from '../ctx/index.js'
6
- import type { read_rmemo_T, readwrite_rmemo_T } from '../rmemo/index.js'
7
- import { rmemo_ } from '../rmemo/index.js'
8
- import { be_rmemo_pair_ } from './index.js'
9
- test('be_rmemo_pair_', ()=>{
6
+ import type { r_rmemo_T, rw_rmemo_T } from '../rmemo/index.js'
7
+ import { r_rmemo_ } from '../rmemo/index.js'
8
+ import { be_r_rmemo_pair_ } from './index.js'
9
+ test('be_r_rmemo_pair_', ()=>{
10
10
  const [
11
11
  ,
12
12
  base_,
13
13
  base__set,
14
- ] = be_rsig_triple_(()=>1)
14
+ ] = be_rw_rmemo_triple_(()=>1)
15
15
  const [
16
16
  foobar$_,
17
17
  foobar_,
18
- ] = be_rmemo_pair_(ctx=>base_(ctx) + 1)
18
+ ] = be_r_rmemo_pair_(ctx=>base_(ctx) + 1)
19
19
  const ctx = ctx__new()
20
20
  equal(foobar$_(ctx)._, 2)
21
21
  equal(foobar_(ctx), 2)
@@ -23,19 +23,19 @@ test('be_rmemo_pair_', ()=>{
23
23
  equal(foobar$_(ctx)._, 3)
24
24
  equal(foobar_(ctx), 3)
25
25
  })
26
- test('be_rmemo_pair_|+id|+is_source_|+oninit|+subscriber_a', ()=>{
26
+ test('be_r_rmemo_pair_|+id|+is_source_|+oninit|+subscriber_a', ()=>{
27
27
  const ctx = ctx__new()
28
28
  let subscriber_count = 0
29
29
  const [
30
30
  ,
31
31
  base_,
32
32
  base__set,
33
- ] = be_rsig_triple_(()=>1,
33
+ ] = be_rw_rmemo_triple_(()=>1,
34
34
  { is_source_: map_ctx=>map_ctx === ctx })
35
35
  const [
36
36
  foobar$_,
37
37
  foobar_,
38
- ] = be_rmemo_pair_(ctx=>base_(ctx) + 1,
38
+ ] = be_r_rmemo_pair_(ctx=>base_(ctx) + 1,
39
39
  ()=>subscriber_count++,
40
40
  {
41
41
  id: 'foobar',
@@ -46,34 +46,34 @@ test('be_rmemo_pair_|+id|+is_source_|+oninit|+subscriber_a', ()=>{
46
46
  equal(foobar_([ctx__new(), ctx]), 2)
47
47
  equal(foobar$_(ctx)._, 2)
48
48
  equal(foobar_(ctx), 2)
49
- equal((ctx.get('foobar') as read_rmemo_T<number>)._, 2)
49
+ equal((ctx.get('foobar') as r_rmemo_T<number>)._, 2)
50
50
  equal(subscriber_count, 1)
51
51
  base__set(ctx, 2)
52
52
  equal(foobar$_([ctx__new(), ctx])._, 3)
53
53
  equal(foobar_([ctx__new(), ctx]), 3)
54
54
  equal(foobar$_(ctx)._, 3)
55
55
  equal(foobar_(ctx), 3)
56
- equal((ctx.get('foobar') as read_rmemo_T<number>)._, 3)
56
+ equal((ctx.get('foobar') as r_rmemo_T<number>)._, 3)
57
57
  equal(subscriber_count, 1)
58
58
  })
59
- test('be_rmemo_pair_|be', ()=>{
59
+ test('be_r_rmemo_pair_|be', ()=>{
60
60
  const ctx = ctx__new()
61
61
  let subscriber_count = 0
62
62
  const [
63
63
  ,
64
64
  base_,
65
65
  base__set,
66
- ] = be_rsig_triple_(()=>1,
66
+ ] = be_rw_rmemo_triple_(()=>1,
67
67
  { is_source_: map_ctx=>map_ctx === ctx })
68
68
  const [
69
69
  foobar$_,
70
70
  foobar_,
71
- ] = be_rmemo_pair_<number, custom_rmemo_T>(
71
+ ] = be_r_rmemo_pair_<number, custom_r_rmemo_T>(
72
72
  be_(_ctx=>{
73
- const foobar$ = rmemo_(
73
+ const foobar$ = r_rmemo_(
74
74
  ()=>base_(ctx) + 1,
75
75
  ()=>subscriber_count++
76
- ) as custom_rmemo_T
76
+ ) as custom_r_rmemo_T
77
77
  if (Array.isArray(_ctx)) equal(_ctx[1], ctx)
78
78
  else equal(_ctx, ctx)
79
79
  foobar$.custom = 'custom-val'
@@ -87,7 +87,7 @@ test('be_rmemo_pair_|be', ()=>{
87
87
  equal(foobar_([ctx__new(), ctx]), 2)
88
88
  equal(foobar$_(ctx)._, 2)
89
89
  equal(foobar_(ctx), 2)
90
- equal((ctx.get('foobar') as read_rmemo_T<number>)._, 2)
90
+ equal((ctx.get('foobar') as r_rmemo_T<number>)._, 2)
91
91
  equal(foobar$_(ctx).custom, 'custom-val')
92
92
  equal(subscriber_count, 1)
93
93
  base__set(ctx, 2)
@@ -95,9 +95,9 @@ test('be_rmemo_pair_|be', ()=>{
95
95
  equal(foobar_([ctx__new(), ctx]), 3)
96
96
  equal(foobar$_(ctx)._, 3)
97
97
  equal(foobar_(ctx), 3)
98
- equal((ctx.get('foobar') as read_rmemo_T<number>)._, 3)
98
+ equal((ctx.get('foobar') as r_rmemo_T<number>)._, 3)
99
99
  equal(foobar$_(ctx).custom, 'custom-val')
100
100
  equal(subscriber_count, 1)
101
101
  })
102
102
  test.run()
103
- type custom_rmemo_T = readwrite_rmemo_T<number>&{ custom:string }
103
+ type custom_r_rmemo_T = rw_rmemo_T<number>&{ custom:string }
@@ -0,0 +1,26 @@
1
+ import type { Be, be__val__new_T, be_config_T, Ctx } from '../be_/index.js'
2
+ import type { rw_rmemo_T, rmemo_def_T } from '../rmemo/index.js'
3
+ export declare function be_rw_rmemo_triple_<
4
+ val_T,
5
+ _rw_rmemo_T extends rw_rmemo_T<val_T> = rw_rmemo_T<val_T>,
6
+ ctx_T extends Ctx = Ctx
7
+ >(be: Be<_rw_rmemo_T, ctx_T>):be_rw_rmemo_triple_T<val_T, _rw_rmemo_T, ctx_T>
8
+ export declare function be_rw_rmemo_triple_<
9
+ val_T,
10
+ _rw_rmemo_T extends rw_rmemo_T<val_T> = rw_rmemo_T<val_T>,
11
+ ctx_T extends Ctx = Ctx
12
+ >(
13
+ rmemo__new:be__val__new_T<val_T>,
14
+ ...subscriber_a_THEN_config:
15
+ |[...rmemo_def_T<val_T>[]]
16
+ |[...rmemo_def_T<val_T>[], config:be_config_T]
17
+ ):be_rw_rmemo_triple_T<val_T, _rw_rmemo_T, ctx_T>
18
+ export type be_rw_rmemo_triple_T<
19
+ val_T,
20
+ _rw_rmemo_T extends rw_rmemo_T<val_T> = rw_rmemo_T<val_T>,
21
+ ctx_T extends Ctx = Ctx
22
+ > = [
23
+ Be<_rw_rmemo_T>,
24
+ (ctx:ctx_T)=>val_T,
25
+ (ctx:ctx_T, val:val_T)=>void
26
+ ]
@@ -1,18 +1,18 @@
1
1
  import { be_ } from '../be_/index.js'
2
- import { rsig_ } from '../rmemo/index.js'
2
+ import { rw_rmemo_ } from '../rmemo/index.js'
3
3
  /** @typedef {import('../be_/index.d.ts').Be} */
4
4
  /** @typedef {import('../be_/index.d.ts').be__val__new_T} */
5
5
  /** @typedef {import('../be_/index.d.ts').be_config_T} */
6
- /** @typedef {import('../rmemo/index.d.ts').rsig_T} */
6
+ /** @typedef {import('../rmemo/index.d.ts').rw_rmemo_T} */
7
7
  /** @typedef {import('../rmemo/index.d.ts').rmemo_subscriber_T} */
8
- /** @typedef {import('./index.d.ts').be_rsig_triple_T} */
8
+ /** @typedef {import('./index.d.ts').be_rw_rmemo_triple_T} */
9
9
  /**
10
- * @param {Be<rsig_T>|be__val__new_T<unknown>}be_OR_val__new
10
+ * @param {Be<rw_rmemo_T>|be__val__new_T<unknown>}be_OR_val__new
11
11
  * @param {rmemo_subscriber_T[]|[...rmemo_subscriber_T[], be_config_T]}subscriber_a_THEN_config
12
- * @returns {be_rsig_triple_T}
12
+ * @returns {be_rw_rmemo_triple_T}
13
13
  * @private
14
14
  */
15
- export function be_rsig_triple_(
15
+ export function be_rw_rmemo_triple_(
16
16
  be_OR_val__new,
17
17
  ...subscriber_a_THEN_config
18
18
  ) {
@@ -20,11 +20,11 @@ export function be_rsig_triple_(
20
20
  typeof subscriber_a_THEN_config[subscriber_a_THEN_config.length - 1] === 'object'
21
21
  ? subscriber_a_THEN_config.pop()
22
22
  : undefined
23
- /** @type {Be<rsig_T>} */
23
+ /** @type {Be<rw_rmemo_T>} */
24
24
  let be =
25
25
  be_OR_val__new.is_be
26
26
  ? be_OR_val__new
27
- : be_(ctx=>rsig_(be_OR_val__new(ctx), ...subscriber_a_THEN_config),
27
+ : be_(ctx=>rw_rmemo_(be_OR_val__new(ctx), ...subscriber_a_THEN_config),
28
28
  config)
29
29
  return [
30
30
  be,
@@ -2,14 +2,14 @@ import { test } from 'uvu'
2
2
  import { equal } from 'uvu/assert'
3
3
  import { be_ } from '../be_/index.js'
4
4
  import { ctx__new } from '../ctx/index.js'
5
- import { type readwrite_rmemo_T, rsig_ } from '../rmemo/index.js'
6
- import { be_rsig_triple_ } from './index.js'
7
- test('be_rsig_triple_', ()=>{
5
+ import { type rw_rmemo_T, rw_rmemo_ } from '../rmemo/index.js'
6
+ import { be_rw_rmemo_triple_ } from './index.js'
7
+ test('be_rw_rmemo_triple_', ()=>{
8
8
  const [
9
9
  foobar$_,
10
10
  foobar_,
11
11
  foobar__set,
12
- ] = be_rsig_triple_(()=>1)
12
+ ] = be_rw_rmemo_triple_(()=>1)
13
13
  const ctx = ctx__new()
14
14
  equal(foobar$_(ctx)._, 1)
15
15
  equal(foobar_(ctx), 1)
@@ -17,14 +17,14 @@ test('be_rsig_triple_', ()=>{
17
17
  equal(foobar$_(ctx)._, 2)
18
18
  equal(foobar_(ctx), 2)
19
19
  })
20
- test('be_rsig_triple_|+id|+is_source_', ()=>{
20
+ test('be_rw_rmemo_triple_|+id|+is_source_', ()=>{
21
21
  const ctx = ctx__new()
22
22
  let subscriber_count = 0
23
23
  const [
24
24
  foobar$_,
25
25
  foobar_,
26
26
  foobar__set,
27
- ] = be_rsig_triple_(
27
+ ] = be_rw_rmemo_triple_(
28
28
  ()=>1,
29
29
  ()=>subscriber_count++,
30
30
  { id: 'foobar', is_source_: map_ctx=>map_ctx === ctx },)
@@ -34,26 +34,26 @@ test('be_rsig_triple_|+id|+is_source_', ()=>{
34
34
  equal(foobar$_(ctx)._, 1)
35
35
  equal(foobar_(ctx), 1)
36
36
  equal(subscriber_count, 1)
37
- equal((ctx.get('foobar') as readwrite_rmemo_T<number>)._, 1)
37
+ equal((ctx.get('foobar') as rw_rmemo_T<number>)._, 1)
38
38
  foobar__set([ctx__new(), ctx], 2)
39
39
  equal(foobar$_([ctx__new(), ctx])._, 2)
40
40
  equal(foobar_([ctx__new(), ctx]), 2)
41
41
  equal(foobar$_(ctx)._, 2)
42
42
  equal(foobar_(ctx), 2)
43
- equal((ctx.get('foobar') as readwrite_rmemo_T<number>)._, 2)
43
+ equal((ctx.get('foobar') as rw_rmemo_T<number>)._, 2)
44
44
  equal(subscriber_count, 1)
45
45
  })
46
- test('be_rsig_triple_|+be', ()=>{
46
+ test('be_rw_rmemo_triple_|+be', ()=>{
47
47
  const ctx = ctx__new()
48
48
  let subscriber_count = 0
49
49
  const [
50
50
  foobar$_,
51
51
  foobar_,
52
52
  foobar__set,
53
- ] = be_rsig_triple_<number, custom_rsig_T>(
53
+ ] = be_rw_rmemo_triple_<number, custom_rw_rmemo_T>(
54
54
  be_(()=>{
55
55
  const foobar$ =
56
- rsig_(1, ()=>subscriber_count++) as custom_rsig_T
56
+ rw_rmemo_(1, ()=>subscriber_count++) as custom_rw_rmemo_T
57
57
  foobar$.custom = 'custom-val'
58
58
  return foobar$
59
59
  }, { id: 'foobar', is_source_: map_ctx=>map_ctx === ctx }))
@@ -63,16 +63,16 @@ test('be_rsig_triple_|+be', ()=>{
63
63
  equal(foobar$_(ctx)._, 1)
64
64
  equal(foobar_(ctx), 1)
65
65
  equal(subscriber_count, 1)
66
- equal((ctx.get('foobar') as readwrite_rmemo_T<number>)._, 1)
66
+ equal((ctx.get('foobar') as rw_rmemo_T<number>)._, 1)
67
67
  equal(foobar$_(ctx).custom, 'custom-val')
68
68
  foobar__set([ctx__new(), ctx], 2)
69
69
  equal(foobar$_([ctx__new(), ctx])._, 2)
70
70
  equal(foobar_([ctx__new(), ctx]), 2)
71
71
  equal(foobar$_(ctx)._, 2)
72
72
  equal(foobar_(ctx), 2)
73
- equal((ctx.get('foobar') as readwrite_rmemo_T<number>)._, 2)
73
+ equal((ctx.get('foobar') as rw_rmemo_T<number>)._, 2)
74
74
  equal(foobar$_(ctx).custom, 'custom-val')
75
75
  equal(subscriber_count, 1)
76
76
  })
77
77
  test.run()
78
- type custom_rsig_T = readwrite_rmemo_T<number>&{ custom:string }
78
+ type custom_rw_rmemo_T = rw_rmemo_T<number>&{ custom:string }
package/all/index.d.ts CHANGED
@@ -44,8 +44,8 @@ export * from './base64__buffer/index.js'
44
44
  export * from './batch_queue/index.js'
45
45
  export * from './be/index.js'
46
46
  export * from './be_/index.js'
47
- export * from './be_rmemo_pair/index.js'
48
- export * from './be_rsig_triple/index.js'
47
+ export * from './be_r_rmemo_pair/index.js'
48
+ export * from './be_rw_rmemo_triple/index.js'
49
49
  export * from './binary_sort_rank/index.js'
50
50
  export * from './bind_apply/index.js'
51
51
  export * from './bind_call/index.js'
package/all/index.js CHANGED
@@ -44,8 +44,8 @@ export * from './base64__buffer/index.js'
44
44
  export * from './batch_queue/index.js'
45
45
  export * from './be/index.js'
46
46
  export * from './be_/index.js'
47
- export * from './be_rmemo_pair/index.js'
48
- export * from './be_rsig_triple/index.js'
47
+ export * from './be_r_rmemo_pair/index.js'
48
+ export * from './be_rw_rmemo_triple/index.js'
49
49
  export * from './binary_sort_rank/index.js'
50
50
  export * from './bind_apply/index.js'
51
51
  export * from './bind_call/index.js'
@@ -1,31 +1,31 @@
1
- export declare function rmemo_<val_T>(
1
+ export declare function r_rmemo_<val_T>(
2
2
  def:rmemo_def_T<val_T>,
3
3
  ...subscriber_a:rmemo_subscriber_T<val_T>[]
4
- ):read_rmemo_T<val_T>
5
- export declare function rsig_<val_T>(
4
+ ):r_rmemo_T<val_T>
5
+ export declare function rw_rmemo_<val_T>(
6
6
  init_val:val_T,
7
7
  ...subscriber_a:rmemo_subscriber_T<val_T>[]
8
- ):readwrite_rmemo_T<val_T>
9
- export type rmemo_T<val_T> = readwrite_rmemo_T<val_T>|read_rmemo_T<val_T>
10
- export type read_rmemo_T<val_T> = (()=>val_T)&read_rmemo_o_T<val_T>
11
- export type readwrite_rmemo_T<val_T> = ((val?:val_T)=>val_T)&rmemo_o_T<val_T>
12
- export type rsig_T<val_T> = readwrite_rmemo_T<val_T>
13
- export type rmemo_val_T<readwrite_rmemo_T> = readwrite_rmemo_T extends {
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 {
14
12
  (): infer val_T
15
13
  }
16
14
  ? val_T
17
15
  : unknown
18
- export type rmemo_def_T<val_T> = (rmemo:readwrite_rmemo_T<val_T>)=>val_T
19
- export type rmemo_subscriber_T<val_T> = (rmemo:readwrite_rmemo_T<val_T>)=>unknown
20
- export type rmemo_o_T<val_T> = {
21
- _:val_T
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> = {
19
+ readonly _:val_T
20
+ val:val_T
22
21
  go():unknown
23
22
  onset(val:val_T):unknown
24
23
  refresh():val_T
25
- }&read_rmemo_o_T<val_T>
26
- export type read_rmemo_o_T<val_T> = {
27
- readonly _:val_T
24
+ }
25
+ export type rw_r_rmemo_o_T<val_T> = {
26
+ _:val_T
27
+ val:val_T
28
28
  go():unknown
29
29
  onset(val:val_T):unknown
30
30
  refresh():val_T
31
- }
31
+ }&r_rmemo_o_T<val_T>
@@ -1,33 +1,31 @@
1
- /** @typedef {import('./index.d.ts').rmemo_T} */
1
+ /** @typedef {import('./index.d.ts').r_rmemo_T} */
2
2
  /** @typedef {import('./index.d.ts').rmemo_subscriber_T} */
3
- /** @type {WeakRef<rmemo_T>} */
3
+ /** @type {WeakRef<r_rmemo_T>} */
4
4
  let cur_ref
5
5
  /** @type {(()=>unknown)[]} */
6
6
  let queue = []
7
7
  /**
8
- * @param {(rmemo:rmemo_T<unknown>)=>unknown}_f
8
+ * @param {(r_rmemo:r_rmemo_T<unknown>)=>unknown}_f
9
9
  * @param {rmemo_subscriber_T<unknown>[]}subscriber_a
10
- * @returns {rmemo_T}
10
+ * @returns {r_rmemo_T}
11
11
  * @private
12
12
  */
13
- export function rmemo_(_f, ...subscriber_a) {
14
- let rmemo = (...arg_a)=>arg_a.length ? rmemo._ = arg_a[0] : rmemo._
15
- let _a = []
16
- let _r = new WeakRef(()=>rmemo.refresh(_f(rmemo)))
13
+ export function r_rmemo_(_f, ...subscriber_a) {
14
+ let r_rmemo = (...arg_a)=>arg_a.length ? r_rmemo._ = arg_a[0] : r_rmemo._
15
+ let _r = new WeakRef(()=>r_rmemo._ = _f(r_rmemo))
17
16
  _r.l = 0
18
- rmemo._a = _a
19
- rmemo._f = _f
20
- rmemo._r = _r
21
- rmemo._rS = new Set
22
- rmemo.go = ()=>(rmemo(), rmemo)
23
- rmemo.onset = ()=>0
24
- Object.defineProperty(rmemo, '_', {
17
+ r_rmemo._f = _f
18
+ r_rmemo._r = _r
19
+ r_rmemo._rS = new Set
20
+ r_rmemo.go = ()=>(r_rmemo(), r_rmemo)
21
+ r_rmemo.onset = ()=>0
22
+ Object.defineProperty(r_rmemo, '_', {
25
23
  get() {
26
- if (!_a.length) {
24
+ if (!('val' in r_rmemo)) {
27
25
  let prev_ref = cur_ref
28
26
  cur_ref = _r
29
27
  try {
30
- rmemo._ = _f(rmemo)
28
+ r_rmemo._ = _f(r_rmemo)
31
29
  } finally {
32
30
  cur_ref = prev_ref
33
31
  }
@@ -35,51 +33,46 @@ export function rmemo_(_f, ...subscriber_a) {
35
33
  // allow self-referencing
36
34
  if (cur_ref && cur_ref !== _r) {
37
35
  cur_ref.l = cur_ref.l < _r.l + 1 ? _r.l + 1 : cur_ref.l
38
- rmemo._rS.add(cur_ref)
36
+ r_rmemo._rS.add(cur_ref)
39
37
  }
40
- return _a[0]
38
+ return r_rmemo.val
41
39
  },
42
40
  set(val) {
43
- if (!_a.length || val !== _a[0]) {
44
- rmemo.refresh(val)
45
- }
46
- }
47
- })
48
- rmemo.refresh = val=>{
49
- if (val !== _a[0]) {
50
- _a[0] = val
51
- rmemo.onset(val)
52
- let run_queue = !queue[0]
53
- for (let ref of rmemo._rS) {
54
- if (!~queue.indexOf(ref)) queue.push(ref)
55
- }
56
- if (!rmemo._sa) {
57
- rmemo._sa = subscriber_a.map(subscriber=>
58
- rmemo_(()=>subscriber(rmemo)).go())
59
- }
60
- if (run_queue) {
61
- // eslint-disable-next-line no-cond-assign
62
- for (let ref; ref = queue.shift();) {
63
- if (queue.some(_ref=>ref.l > _ref.l)) {
64
- queue.push(ref)
65
- } else {
66
- (ref.deref() || rmemo._rS.delete)(ref)
41
+ if (val !== r_rmemo.val) {
42
+ r_rmemo.val = val
43
+ r_rmemo.onset(val)
44
+ let run_queue = !queue[0]
45
+ for (let ref of r_rmemo._rS) {
46
+ if (!~queue.indexOf(ref)) queue.push(ref)
47
+ }
48
+ if (!r_rmemo._sa) {
49
+ r_rmemo._sa = subscriber_a.map(subscriber=>
50
+ r_rmemo_(()=>subscriber(r_rmemo)).go())
51
+ }
52
+ if (run_queue) {
53
+ // eslint-disable-next-line no-cond-assign
54
+ for (let ref; ref = queue.shift();) {
55
+ if (queue.some(_ref=>ref.l > _ref.l)) {
56
+ queue.push(ref)
57
+ } else {
58
+ (ref.deref() || r_rmemo._rS.delete)(ref)
59
+ }
67
60
  }
68
61
  }
69
62
  }
70
63
  }
71
- }
72
- return rmemo
64
+ })
65
+ return r_rmemo
73
66
  }
74
67
  /**
75
68
  * @param {unknown}init_val
76
69
  * @param {rmemo_subscriber_T[]}subscriber_a
77
- * @returns {rmemo_T}
70
+ * @returns {r_rmemo_T}
78
71
  * @private
79
72
  */
80
- export function rsig_(init_val, ...subscriber_a) {
81
- let rsig = rmemo_(_rsig=>_rsig._v, ...subscriber_a)
82
- rsig.onset = val=>rsig._v = val
83
- rsig._v = init_val
84
- return rsig
73
+ export function rw_rmemo_(init_val, ...subscriber_a) {
74
+ let rw_rmemo = r_rmemo_(_rsig=>_rsig._v, ...subscriber_a)
75
+ rw_rmemo.onset = val=>rw_rmemo._v = val
76
+ rw_rmemo._v = init_val
77
+ return rw_rmemo
85
78
  }
@@ -2,48 +2,48 @@ import { deepStrictEqual } from 'node:assert'
2
2
  import { test } from 'uvu'
3
3
  import { equal } from 'uvu/assert'
4
4
  import { sleep } from '../sleep/index.js'
5
- import { rmemo_, rmemo_T, rsig_ } from './index.js'
6
- test('rmemo_|static value', ()=>{
5
+ import { r_rmemo_, type r_rmemo_T, rw_rmemo_ } from './index.js'
6
+ test('r_rmemo_|static value', ()=>{
7
7
  let count = 0
8
- let rmemo$ = rmemo_(rmemo=>{
8
+ const r_rmemo = r_rmemo_(()=>{
9
9
  count++
10
10
  return 'rmemo-value'
11
11
  })
12
12
  equal(count, 0)
13
- equal(rmemo$(), 'rmemo-value')
13
+ equal(r_rmemo(), 'rmemo-value')
14
14
  equal(count, 1)
15
- equal(rmemo$(), 'rmemo-value')
15
+ equal(r_rmemo(), 'rmemo-value')
16
16
  equal(count, 1)
17
17
  })
18
- test('rsig_', ()=>{
19
- let rsig$ = rsig_('val0')
20
- equal(rsig$(), 'val0')
21
- rsig$('val1')
22
- equal(rsig$(), 'val1')
18
+ test('rw_rmemo_', ()=>{
19
+ const rw_rmemo = rw_rmemo_('val0')
20
+ equal(rw_rmemo(), 'val0')
21
+ rw_rmemo('val1')
22
+ equal(rw_rmemo(), 'val1')
23
23
  })
24
- test('rmemo_|def function|rmemo$ argument', ()=>{
25
- let rsig$ = rsig_('val0')
26
- let rmemo$:rmemo_T<string>&{custom?:string} = rmemo_<string>((_rmemo$:rmemo_T<string>&{custom?:string})=>
27
- `${_rmemo$.custom}-${rsig$()}`)
28
- rmemo$.custom = 'custom_val0'
29
- equal(rmemo$(), 'custom_val0-val0')
30
- rmemo$.custom = 'custom_val1'
31
- equal(rmemo$(), 'custom_val0-val0')
32
- rsig$('val1')
33
- equal(rmemo$(), 'custom_val1-val1')
24
+ test('r_rmemo_|def function|rmemo$ argument', ()=>{
25
+ const rw_rmemo = rw_rmemo_('val0')
26
+ const r_rmemo:r_rmemo_T<string>&{custom?:string} = r_rmemo_<string>((_rmemo$:r_rmemo_T<string>&{custom?:string})=>
27
+ `${_rmemo$.custom}-${rw_rmemo()}`)
28
+ r_rmemo.custom = 'custom_val0'
29
+ equal(r_rmemo(), 'custom_val0-val0')
30
+ r_rmemo.custom = 'custom_val1'
31
+ equal(r_rmemo(), 'custom_val0-val0')
32
+ rw_rmemo('val1')
33
+ equal(r_rmemo(), 'custom_val1-val1')
34
34
  })
35
- test('rsig_|async subsubscriber|case 1', async ()=>{
35
+ test('rw_rmemo_|async subsubscriber|case 1', async ()=>{
36
36
  let resolve:(user:{ id:string })=>void
37
- let user0 = { id: 'id-0' }
38
- let user1 = { id: 'id-1' }
39
- let id$ = rsig_('id-0')
37
+ const user0 = { id: 'id-0' }
38
+ const user1 = { id: 'id-1' }
39
+ const id$ = rw_rmemo_('id-0')
40
40
  let count = 0
41
- let user$ = rsig_<{ id:string }|null>(
41
+ const user$ = rw_rmemo_<{ id:string }|null>(
42
42
  null,
43
43
  async (_user$)=>{
44
44
  count++
45
45
  id$()
46
- let user:{ id:string } = await new Promise(_resolve=>resolve = _resolve)
46
+ const user:{ id:string } = await new Promise(_resolve=>resolve = _resolve)
47
47
  _user$(user)
48
48
  })
49
49
  equal(count, 0)
@@ -61,12 +61,12 @@ test('rsig_|async subsubscriber|case 1', async ()=>{
61
61
  await sleep(0)
62
62
  equal(count, 2)
63
63
  })
64
- test('rsig_|async subsubscriber|case 2', async ()=>{
65
- let a$ = rsig_(1)
66
- let b$ = rsig_(2)
67
- let sleepCycles = 5
68
- let taskArgumentsCalls:number[][] = []
69
- let sum$ = rsig_<null|number>(null,
64
+ test('rw_rmemo_|async subsubscriber|case 2', async ()=>{
65
+ const a$ = rw_rmemo_(1)
66
+ const b$ = rw_rmemo_(2)
67
+ const sleepCycles = 5
68
+ const taskArgumentsCalls:number[][] = []
69
+ const sum$ = rw_rmemo_<null|number>(null,
70
70
  async sum$=>{
71
71
  taskArgumentsCalls.push([a$(), b$()])
72
72
  for (let i = 0; i < sleepCycles; i++) {
@@ -94,13 +94,13 @@ test('rsig_|async subsubscriber|case 2', async ()=>{
94
94
  [10, 20]
95
95
  ])
96
96
  })
97
- test('rmemo_+rsig_|simple graph', ()=>{
98
- let base$ = rsig_('base0')
99
- let dep0$ = rmemo_(()=>base$() + '-dep0')
100
- let dep1$ = rmemo_(()=>dep0$() + '-dep1')
101
- let dep2$ = rmemo_(()=>dep1$() + '-dep2')
102
- let dep3$ = rmemo_(()=>dep2$() + '-dep3')
103
- let dep4$ = rmemo_(()=>dep3$() + '-dep4')
97
+ test('r_rmemo_+rw_rmemo_|simple graph', ()=>{
98
+ const base$ = rw_rmemo_('base0')
99
+ const dep0$ = r_rmemo_(()=>base$() + '-dep0')
100
+ const dep1$ = r_rmemo_(()=>dep0$() + '-dep1')
101
+ const dep2$ = r_rmemo_(()=>dep1$() + '-dep2')
102
+ const dep3$ = r_rmemo_(()=>dep2$() + '-dep3')
103
+ const dep4$ = r_rmemo_(()=>dep3$() + '-dep4')
104
104
  equal(dep4$(), 'base0-dep0-dep1-dep2-dep3-dep4')
105
105
  equal(dep3$(), 'base0-dep0-dep1-dep2-dep3')
106
106
  equal(dep2$(), 'base0-dep0-dep1-dep2')
@@ -116,13 +116,13 @@ test('rmemo_+rsig_|simple graph', ()=>{
116
116
  equal(dep4$(), 'base1-dep0-dep1-dep2-dep3-dep4')
117
117
  })
118
118
  test('prevents diamond dependency problem 1', ()=>{
119
- let store$ = rsig_(0)
120
- let values:string[] = []
121
- let a$ = rmemo_(()=>`a${store$()}`)
122
- let b$ = rmemo_(()=>a$().replace('a', 'b'))
123
- let c$ = rmemo_(()=>a$().replace('a', 'c'))
124
- let d$ = rmemo_(()=>a$().replace('a', 'd'))
125
- rmemo_(()=>`${b$()}${c$()}${d$()}`,
119
+ const store$ = rw_rmemo_(0)
120
+ const values:string[] = []
121
+ const a$ = r_rmemo_(()=>`a${store$()}`)
122
+ const b$ = r_rmemo_(()=>a$().replace('a', 'b'))
123
+ const c$ = r_rmemo_(()=>a$().replace('a', 'c'))
124
+ const d$ = r_rmemo_(()=>a$().replace('a', 'd'))
125
+ r_rmemo_(()=>`${b$()}${c$()}${d$()}`,
126
126
  combined$=>
127
127
  values.push(combined$())
128
128
  ).go()
@@ -132,14 +132,14 @@ test('prevents diamond dependency problem 1', ()=>{
132
132
  deepStrictEqual(values, ['b0c0d0', 'b1c1d1', 'b2c2d2'])
133
133
  })
134
134
  test('prevents diamond dependency problem 2', ()=>{
135
- let store$ = rsig_(0)
136
- let values:string[] = []
137
- let a$ = rmemo_(()=>`a${store$()}`)
138
- let b$ = rmemo_(()=>a$().replace('a', 'b'))
139
- let c$ = rmemo_(()=>b$().replace('b', 'c'))
140
- let d$ = rmemo_(()=>c$().replace('c', 'd'))
141
- let e$ = rmemo_(()=>d$().replace('d', 'e'))
142
- rmemo_<string>(
135
+ const store$ = rw_rmemo_(0)
136
+ const values:string[] = []
137
+ const a$ = r_rmemo_(()=>`a${store$()}`)
138
+ const b$ = r_rmemo_(()=>a$().replace('a', 'b'))
139
+ const c$ = r_rmemo_(()=>b$().replace('b', 'c'))
140
+ const d$ = r_rmemo_(()=>c$().replace('c', 'd'))
141
+ const e$ = r_rmemo_(()=>d$().replace('d', 'e'))
142
+ r_rmemo_<string>(
143
143
  ()=>[a$(), e$()].join(''),
144
144
  combined$=>values.push(combined$())
145
145
  ).go()
@@ -148,13 +148,13 @@ test('prevents diamond dependency problem 2', ()=>{
148
148
  deepStrictEqual(values, ['a0e0', 'a1e1'])
149
149
  })
150
150
  test('prevents diamond dependency problem 3', ()=>{
151
- let store$ = rsig_(0)
152
- let values:string[] = []
153
- let a$ = rmemo_(()=>`a${store$()}`)
154
- let b$ = rmemo_(()=>a$().replace('a', 'b'))
155
- let c$ = rmemo_(()=>b$().replace('b', 'c'))
156
- let d$ = rmemo_(()=>c$().replace('c', 'd'))
157
- rmemo_<string>(
151
+ const store$ = rw_rmemo_(0)
152
+ const values:string[] = []
153
+ const a$ = r_rmemo_(()=>`a${store$()}`)
154
+ const b$ = r_rmemo_(()=>a$().replace('a', 'b'))
155
+ const c$ = r_rmemo_(()=>b$().replace('b', 'c'))
156
+ const d$ = r_rmemo_(()=>c$().replace('c', 'd'))
157
+ r_rmemo_<string>(
158
158
  ()=>`${a$()}${b$()}${c$()}${d$()}`,
159
159
  combined$=>values.push(combined$())
160
160
  ).go()
@@ -163,25 +163,21 @@ test('prevents diamond dependency problem 3', ()=>{
163
163
  deepStrictEqual(values, ['a0b0c0d0', 'a1b1c1d1'])
164
164
  })
165
165
  test('autosubscribe: prevents diamond dependency problem 4 (complex)', ()=>{
166
- let store1$ = rsig_(0)
167
- let store2$ = rsig_(0)
168
- let values:string[] = []
169
- let fn =
170
- (name:string)=>
171
- (...v:(number|string)[])=>
172
- `${name}${v.join('')}`
173
- let a$ = rmemo_(()=>`a${store1$()}`)
174
- let b$ = rmemo_(()=>`b${store2$()}`)
175
- let c$ = rmemo_(()=>`c${a$()}${b$()}`)
176
- let d$ = rmemo_(()=>`d${a$()}`)
177
- let e$ = rmemo_(()=>`e${c$()}${d$()}`)
178
- let f$ = rmemo_(()=>`f${e$()}`)
179
- let g$ = rmemo_(()=>`g${f$()}`)
180
- rmemo_(
166
+ const store1$ = rw_rmemo_(0)
167
+ const store2$ = rw_rmemo_(0)
168
+ const values:string[] = []
169
+ const a$ = r_rmemo_(()=>`a${store1$()}`)
170
+ const b$ = r_rmemo_(()=>`b${store2$()}`)
171
+ const c$ = r_rmemo_(()=>`c${a$()}${b$()}`)
172
+ const d$ = r_rmemo_(()=>`d${a$()}`)
173
+ const e$ = r_rmemo_(()=>`e${c$()}${d$()}`)
174
+ const f$ = r_rmemo_(()=>`f${e$()}`)
175
+ const g$ = r_rmemo_(()=>`g${f$()}`)
176
+ r_rmemo_(
181
177
  ()=>e$(),
182
178
  combined1$=>values.push(combined1$())
183
179
  ).go()
184
- rmemo_(
180
+ r_rmemo_(
185
181
  ()=>[e$(), g$()].join(''),
186
182
  combined2$=>values.push(combined2$())
187
183
  ).go()
@@ -199,17 +195,17 @@ test('autosubscribe: prevents diamond dependency problem 4 (complex)', ()=>{
199
195
  })
200
196
  test('prevents diamond dependency problem 5', ()=>{
201
197
  let events = ''
202
- let firstName$ = rsig_('John')
203
- let lastName$ = rsig_('Doe')
204
- let fullName$ = rmemo_(()=>{
198
+ const firstName$ = rw_rmemo_('John')
199
+ const lastName$ = rw_rmemo_('Doe')
200
+ const fullName$ = r_rmemo_(()=>{
205
201
  events += 'full '
206
202
  return `${firstName$()} ${lastName$()}`
207
203
  })
208
- let isFirstShort$ = rmemo_(()=>{
204
+ const isFirstShort$ = r_rmemo_(()=>{
209
205
  events += 'short '
210
206
  return firstName$().length < 10
211
207
  })
212
- let displayName$ = rmemo_(
208
+ const displayName$ = r_rmemo_(
213
209
  ()=>{
214
210
  events += 'display '
215
211
  return isFirstShort$() ? fullName$() : firstName$()
@@ -226,13 +222,13 @@ test('prevents diamond dependency problem 5', ()=>{
226
222
  equal(events, 'display short full short full display short full display ')
227
223
  })
228
224
  test('prevents diamond dependency problem 6', ()=>{
229
- let store1$ = rsig_(0)
230
- let store2$ = rsig_(0)
231
- let values:string[] = []
232
- let a$ = rmemo_(()=>`a${store1$()}`)
233
- let b$ = rmemo_(()=>`b${store2$()}`)
234
- let c$ = rmemo_(()=>b$().replace('b', 'c'))
235
- rmemo_(
225
+ const store1$ = rw_rmemo_(0)
226
+ const store2$ = rw_rmemo_(0)
227
+ const values:string[] = []
228
+ const a$ = r_rmemo_(()=>`a${store1$()}`)
229
+ const b$ = r_rmemo_(()=>`b${store2$()}`)
230
+ const c$ = r_rmemo_(()=>b$().replace('b', 'c'))
231
+ r_rmemo_(
236
232
  ()=>`${a$()}${c$()}`,
237
233
  combined$=>values.push(combined$())
238
234
  ).go()
@@ -241,12 +237,12 @@ test('prevents diamond dependency problem 6', ()=>{
241
237
  deepStrictEqual(values, ['a0c0', 'a1c0'])
242
238
  })
243
239
  test('prevents dependency listeners from being out of order', ()=>{
244
- let base$ = rsig_(0)
245
- let a$ = rmemo_(()=>{
240
+ const base$ = rw_rmemo_(0)
241
+ const a$ = r_rmemo_(()=>{
246
242
  return `${base$()}a`
247
243
  })
248
- let values:string[] = []
249
- let b$ = rmemo_(()=>{
244
+ const values:string[] = []
245
+ const b$ = r_rmemo_(()=>{
250
246
  return `${a$()}b`
251
247
  }, b$=>values.push(b$()))
252
248
  equal(b$(), '0ab')
@@ -256,8 +252,8 @@ test('prevents dependency listeners from being out of order', ()=>{
256
252
  deepStrictEqual(values, ['0ab', '1ab'])
257
253
  })
258
254
  test('computes initial value when argument is undefined', ()=>{
259
- let one$ = rsig_<string|undefined>(undefined)
260
- let two$ = rmemo_(()=>!!one$())
255
+ const one$ = rw_rmemo_<string|undefined>(undefined)
256
+ const two$ = r_rmemo_(()=>!!one$())
261
257
  equal(one$(), undefined)
262
258
  equal(two$(), false)
263
259
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctx-core",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "ctx-core core library",
5
5
  "keywords": [
6
6
  "ctx-core",
@@ -107,8 +107,8 @@
107
107
  "devDependencies": {
108
108
  "@arethetypeswrong/cli": "^0.13.1",
109
109
  "@size-limit/preset-small-lib": "^11.0.0",
110
- "@types/node": "^20.9.2",
111
- "@types/sinon": "^17.0.1",
110
+ "@types/node": "^20.9.3",
111
+ "@types/sinon": "^17.0.2",
112
112
  "c8": "^8.0.1",
113
113
  "check-dts": "^0.7.2",
114
114
  "sinon": "^17.0.1",
@@ -146,32 +146,32 @@
146
146
  "limit": "187 B"
147
147
  },
148
148
  {
149
- "name": "rmemo_",
149
+ "name": "r_rmemo_",
150
150
  "import": {
151
- "./rmemo": "{ rmemo_ }"
151
+ "./rmemo": "{ r_rmemo_ }"
152
152
  },
153
- "limit": "344 B"
153
+ "limit": "322 B"
154
154
  },
155
155
  {
156
- "name": "rmemo_ signal_",
156
+ "name": "r_rmemo_ signal_",
157
157
  "import": {
158
- "./rmemo": "{ rsig_, rmemo_ }"
158
+ "./rmemo": "{ rw_rmemo_, r_rmemo_ }"
159
159
  },
160
- "limit": "372 B"
160
+ "limit": "350 B"
161
161
  },
162
162
  {
163
- "name": "rmemo_ signal_ be_ ctx_",
163
+ "name": "r_rmemo_ signal_ be_ ctx_",
164
164
  "import": {
165
- "./rmemo": "{ rsig_, rmemo_, be_, ctx_ }"
165
+ "./rmemo": "{ rw_rmemo_, r_rmemo_, be_, ctx_ }"
166
166
  },
167
- "limit": "532 B"
167
+ "limit": "509 B"
168
168
  },
169
169
  {
170
- "name": "rmemo_ signal_ be_ ctx_ be_rmemo_pair_ be_rsig_triple_",
170
+ "name": "r_rmemo_ signal_ be_ ctx_ be_r_rmemo_pair_ be_rw_rmemo_triple_",
171
171
  "import": {
172
- "./rmemo": "{ rsig_, rmemo_, be_, ctx_, be_rmemo_pair_, be_rsig_triple_ }"
172
+ "./rmemo": "{ rw_rmemo_, r_rmemo_, be_, ctx_, be_r_rmemo_pair_, be_rw_rmemo_triple_ }"
173
173
  },
174
- "limit": "613 B"
174
+ "limit": "590 B"
175
175
  }
176
176
  ],
177
177
  "scripts": {
package/rmemo/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '../all/be_/index.js'
2
- export * from '../all/be_rmemo_pair/index.js'
3
- export * from '../all/be_rsig_triple/index.js'
2
+ export * from '../all/be_r_rmemo_pair/index.js'
3
+ export * from '../all/be_rw_rmemo_triple/index.js'
4
4
  export * from '../all/ctx/index.js'
5
5
  export * from '../all/rmemo/index.js'
package/rmemo/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '../all/be_/index.js'
2
- export * from '../all/be_rmemo_pair/index.js'
3
- export * from '../all/be_rsig_triple/index.js'
2
+ export * from '../all/be_r_rmemo_pair/index.js'
3
+ export * from '../all/be_rw_rmemo_triple/index.js'
4
4
  export * from '../all/ctx/index.js'
5
5
  export * from '../all/rmemo/index.js'
@@ -1,23 +0,0 @@
1
- import type { Be, be__val__new_T, be_config_T, Ctx } from '../be_/index.js'
2
- import type { read_rmemo_T, rmemo_def_T } from '../rmemo/index.js'
3
- export declare function be_rmemo_pair_<
4
- val_T,
5
- rmemo_T extends read_rmemo_T<val_T> = read_rmemo_T<val_T>,
6
- ctx_T extends Ctx = Ctx
7
- >(be: Be<rmemo_T, ctx_T>):be_rmemo_pair_T<val_T, rmemo_T, ctx_T>
8
- export declare function be_rmemo_pair_<
9
- val_T,
10
- rmemo_T extends read_rmemo_T<val_T> = read_rmemo_T<val_T>,
11
- ctx_T extends Ctx = Ctx
12
- >(
13
- rmemo__new:be__val__new_T<val_T>,
14
- ...subscriber_a_THEN_config:[...rmemo_def_T<val_T>[], config?:be_config_T]
15
- ):be_rmemo_pair_T<val_T, rmemo_T, ctx_T>
16
- export type be_rmemo_pair_T<
17
- val_T,
18
- rmemo_T extends read_rmemo_T<val_T> = read_rmemo_T<val_T>,
19
- ctx_T extends Ctx = Ctx
20
- > = [
21
- Be<rmemo_T, ctx_T>,
22
- (ctx:ctx_T)=>val_T
23
- ]
@@ -1,24 +0,0 @@
1
- import type { Be, be__val__new_T, be_config_T, Ctx } from '../be_/index.js'
2
- import type { readwrite_rmemo_T, rmemo_def_T } from '../rmemo/index.js'
3
- export declare function be_rsig_triple_<
4
- val_T,
5
- rsig_T extends readwrite_rmemo_T<val_T> = readwrite_rmemo_T<val_T>,
6
- ctx_T extends Ctx = Ctx
7
- >(be: Be<rsig_T, ctx_T>):be_rsig_triple_T<val_T, rsig_T, ctx_T>
8
- export declare function be_rsig_triple_<
9
- val_T,
10
- rsig_T extends readwrite_rmemo_T<val_T> = readwrite_rmemo_T<val_T>,
11
- ctx_T extends Ctx = Ctx
12
- >(
13
- rmemo__new:be__val__new_T<val_T>,
14
- ...subscriber_a_THEN_config:[...rmemo_def_T<val_T>[], config?:be_config_T]
15
- ):be_rsig_triple_T<val_T, rsig_T, ctx_T>
16
- export type be_rsig_triple_T<
17
- val_T,
18
- rsig_T extends readwrite_rmemo_T<val_T> = readwrite_rmemo_T<val_T>,
19
- ctx_T extends Ctx = Ctx
20
- > = [
21
- Be<rsig_T>,
22
- (ctx:ctx_T)=>val_T,
23
- (ctx:ctx_T, val:val_T)=>void
24
- ]