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.
- package/all/be_r_rmemo_pair/index.d.ts +25 -0
- package/all/{be_rmemo_pair → be_r_rmemo_pair}/index.js +5 -5
- package/all/{be_rmemo_pair → be_r_rmemo_pair}/index.test.ts +20 -20
- package/all/be_rw_rmemo_triple/index.d.ts +26 -0
- package/all/{be_rsig_triple → be_rw_rmemo_triple}/index.js +8 -8
- package/all/{be_rsig_triple → be_rw_rmemo_triple}/index.test.ts +14 -14
- package/all/index.d.ts +2 -2
- package/all/index.js +2 -2
- package/all/rmemo/index.d.ts +17 -17
- package/all/rmemo/index.js +44 -51
- package/all/rmemo/index.test.ts +91 -95
- package/package.json +15 -15
- package/rmemo/index.d.ts +2 -2
- package/rmemo/index.js +2 -2
- package/all/be_rmemo_pair/index.d.ts +0 -23
- package/all/be_rsig_triple/index.d.ts +0 -24
|
@@ -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 {
|
|
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').
|
|
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 {
|
|
11
|
+
* @returns {be_r_rmemo_pair_T}
|
|
12
12
|
* @private
|
|
13
13
|
*/
|
|
14
|
-
export function
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
test('
|
|
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
|
-
] =
|
|
14
|
+
] = be_rw_rmemo_triple_(()=>1)
|
|
15
15
|
const [
|
|
16
16
|
foobar$_,
|
|
17
17
|
foobar_,
|
|
18
|
-
] =
|
|
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('
|
|
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
|
-
] =
|
|
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
|
-
] =
|
|
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
|
|
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
|
|
56
|
+
equal((ctx.get('foobar') as r_rmemo_T<number>)._, 3)
|
|
57
57
|
equal(subscriber_count, 1)
|
|
58
58
|
})
|
|
59
|
-
test('
|
|
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
|
-
] =
|
|
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
|
-
] =
|
|
71
|
+
] = be_r_rmemo_pair_<number, custom_r_rmemo_T>(
|
|
72
72
|
be_(_ctx=>{
|
|
73
|
-
const foobar$ =
|
|
73
|
+
const foobar$ = r_rmemo_(
|
|
74
74
|
()=>base_(ctx) + 1,
|
|
75
75
|
()=>subscriber_count++
|
|
76
|
-
) as
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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').
|
|
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').
|
|
8
|
+
/** @typedef {import('./index.d.ts').be_rw_rmemo_triple_T} */
|
|
9
9
|
/**
|
|
10
|
-
* @param {Be<
|
|
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 {
|
|
12
|
+
* @returns {be_rw_rmemo_triple_T}
|
|
13
13
|
* @private
|
|
14
14
|
*/
|
|
15
|
-
export function
|
|
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<
|
|
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=>
|
|
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
|
|
6
|
-
import {
|
|
7
|
-
test('
|
|
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
|
-
] =
|
|
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('
|
|
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
|
-
] =
|
|
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
|
|
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
|
|
43
|
+
equal((ctx.get('foobar') as rw_rmemo_T<number>)._, 2)
|
|
44
44
|
equal(subscriber_count, 1)
|
|
45
45
|
})
|
|
46
|
-
test('
|
|
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
|
-
] =
|
|
53
|
+
] = be_rw_rmemo_triple_<number, custom_rw_rmemo_T>(
|
|
54
54
|
be_(()=>{
|
|
55
55
|
const foobar$ =
|
|
56
|
-
|
|
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
|
|
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
|
|
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
|
|
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 './
|
|
48
|
-
export * from './
|
|
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 './
|
|
48
|
-
export * from './
|
|
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/rmemo/index.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
export declare function
|
|
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
|
-
):
|
|
5
|
-
export declare function
|
|
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
|
-
):
|
|
9
|
-
export type
|
|
10
|
-
export type
|
|
11
|
-
export type
|
|
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> = (
|
|
19
|
-
export type rmemo_subscriber_T<val_T> = (
|
|
20
|
-
export type
|
|
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
|
-
}
|
|
26
|
-
export type
|
|
27
|
-
|
|
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>
|
package/all/rmemo/index.js
CHANGED
|
@@ -1,33 +1,31 @@
|
|
|
1
|
-
/** @typedef {import('./index.d.ts').
|
|
1
|
+
/** @typedef {import('./index.d.ts').r_rmemo_T} */
|
|
2
2
|
/** @typedef {import('./index.d.ts').rmemo_subscriber_T} */
|
|
3
|
-
/** @type {WeakRef<
|
|
3
|
+
/** @type {WeakRef<r_rmemo_T>} */
|
|
4
4
|
let cur_ref
|
|
5
5
|
/** @type {(()=>unknown)[]} */
|
|
6
6
|
let queue = []
|
|
7
7
|
/**
|
|
8
|
-
* @param {(
|
|
8
|
+
* @param {(r_rmemo:r_rmemo_T<unknown>)=>unknown}_f
|
|
9
9
|
* @param {rmemo_subscriber_T<unknown>[]}subscriber_a
|
|
10
|
-
* @returns {
|
|
10
|
+
* @returns {r_rmemo_T}
|
|
11
11
|
* @private
|
|
12
12
|
*/
|
|
13
|
-
export function
|
|
14
|
-
let
|
|
15
|
-
let
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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 (!
|
|
24
|
+
if (!('val' in r_rmemo)) {
|
|
27
25
|
let prev_ref = cur_ref
|
|
28
26
|
cur_ref = _r
|
|
29
27
|
try {
|
|
30
|
-
|
|
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
|
-
|
|
36
|
+
r_rmemo._rS.add(cur_ref)
|
|
39
37
|
}
|
|
40
|
-
return
|
|
38
|
+
return r_rmemo.val
|
|
41
39
|
},
|
|
42
40
|
set(val) {
|
|
43
|
-
if (
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
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 {
|
|
70
|
+
* @returns {r_rmemo_T}
|
|
78
71
|
* @private
|
|
79
72
|
*/
|
|
80
|
-
export function
|
|
81
|
-
let
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return
|
|
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
|
}
|
package/all/rmemo/index.test.ts
CHANGED
|
@@ -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 {
|
|
6
|
-
test('
|
|
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
|
-
|
|
8
|
+
const r_rmemo = r_rmemo_(()=>{
|
|
9
9
|
count++
|
|
10
10
|
return 'rmemo-value'
|
|
11
11
|
})
|
|
12
12
|
equal(count, 0)
|
|
13
|
-
equal(
|
|
13
|
+
equal(r_rmemo(), 'rmemo-value')
|
|
14
14
|
equal(count, 1)
|
|
15
|
-
equal(
|
|
15
|
+
equal(r_rmemo(), 'rmemo-value')
|
|
16
16
|
equal(count, 1)
|
|
17
17
|
})
|
|
18
|
-
test('
|
|
19
|
-
|
|
20
|
-
equal(
|
|
21
|
-
|
|
22
|
-
equal(
|
|
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('
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
`${_rmemo$.custom}-${
|
|
28
|
-
|
|
29
|
-
equal(
|
|
30
|
-
|
|
31
|
-
equal(
|
|
32
|
-
|
|
33
|
-
equal(
|
|
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('
|
|
35
|
+
test('rw_rmemo_|async subsubscriber|case 1', async ()=>{
|
|
36
36
|
let resolve:(user:{ id:string })=>void
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
41
|
+
const user$ = rw_rmemo_<{ id:string }|null>(
|
|
42
42
|
null,
|
|
43
43
|
async (_user$)=>{
|
|
44
44
|
count++
|
|
45
45
|
id$()
|
|
46
|
-
|
|
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('
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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('
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
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
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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
|
-
|
|
204
|
+
const isFirstShort$ = r_rmemo_(()=>{
|
|
209
205
|
events += 'short '
|
|
210
206
|
return firstName$().length < 10
|
|
211
207
|
})
|
|
212
|
-
|
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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
|
-
|
|
245
|
-
|
|
240
|
+
const base$ = rw_rmemo_(0)
|
|
241
|
+
const a$ = r_rmemo_(()=>{
|
|
246
242
|
return `${base$()}a`
|
|
247
243
|
})
|
|
248
|
-
|
|
249
|
-
|
|
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
|
-
|
|
260
|
-
|
|
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.
|
|
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.
|
|
111
|
-
"@types/sinon": "^17.0.
|
|
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": "
|
|
149
|
+
"name": "r_rmemo_",
|
|
150
150
|
"import": {
|
|
151
|
-
"./rmemo": "{
|
|
151
|
+
"./rmemo": "{ r_rmemo_ }"
|
|
152
152
|
},
|
|
153
|
-
"limit": "
|
|
153
|
+
"limit": "322 B"
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
|
-
"name": "
|
|
156
|
+
"name": "r_rmemo_ signal_",
|
|
157
157
|
"import": {
|
|
158
|
-
"./rmemo": "{
|
|
158
|
+
"./rmemo": "{ rw_rmemo_, r_rmemo_ }"
|
|
159
159
|
},
|
|
160
|
-
"limit": "
|
|
160
|
+
"limit": "350 B"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
|
-
"name": "
|
|
163
|
+
"name": "r_rmemo_ signal_ be_ ctx_",
|
|
164
164
|
"import": {
|
|
165
|
-
"./rmemo": "{
|
|
165
|
+
"./rmemo": "{ rw_rmemo_, r_rmemo_, be_, ctx_ }"
|
|
166
166
|
},
|
|
167
|
-
"limit": "
|
|
167
|
+
"limit": "509 B"
|
|
168
168
|
},
|
|
169
169
|
{
|
|
170
|
-
"name": "
|
|
170
|
+
"name": "r_rmemo_ signal_ be_ ctx_ be_r_rmemo_pair_ be_rw_rmemo_triple_",
|
|
171
171
|
"import": {
|
|
172
|
-
"./rmemo": "{
|
|
172
|
+
"./rmemo": "{ rw_rmemo_, r_rmemo_, be_, ctx_, be_r_rmemo_pair_, be_rw_rmemo_triple_ }"
|
|
173
173
|
},
|
|
174
|
-
"limit": "
|
|
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/
|
|
3
|
-
export * from '../all/
|
|
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/
|
|
3
|
-
export * from '../all/
|
|
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
|
-
]
|