ctx-core 6.8.2 → 7.0.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.
@@ -1,7 +1,7 @@
1
1
  import { test } from 'uvu'
2
2
  import { equal } from 'uvu/assert'
3
3
  import { be_, type wide_ctx_T } from '../be_/index.js'
4
- import { be_sig_triple_ } from '../be_sig_triple/index.js'
4
+ import { be_sig_triple_, ns_be_sig_triple_ } from '../be_sig_triple/index.js'
5
5
  import { ctx__new, ns_ctx__new } from '../ctx/index.js'
6
6
  import { memo_, memosig_, type sig_T } from '../rmemo/index.js'
7
7
  import type { Equal, Expect } from '../test/index.js'
@@ -28,15 +28,15 @@ test('be_memosig_triple_', ()=>{
28
28
  })
29
29
  const ctx = ctx__new()
30
30
  equal(foobar$_(ctx).count, undefined)
31
- equal(foobar$_(ctx)._, 2)
31
+ equal(foobar$_(ctx)(), 2)
32
32
  equal(foobar_(ctx), 2)
33
33
  equal(foobar$_(ctx).count, 1)
34
34
  foobar__set(ctx, 5)
35
- equal(foobar$_(ctx)._, 5)
35
+ equal(foobar$_(ctx)(), 5)
36
36
  equal(foobar_(ctx), 5)
37
37
  equal(foobar$_(ctx).count, 1)
38
38
  base__set(ctx, 2)
39
- equal(foobar$_(ctx)._, 3)
39
+ equal(foobar$_(ctx)(), 3)
40
40
  equal(foobar_(ctx), 3)
41
41
  equal(foobar$_(ctx).count, 2)
42
42
  })
@@ -47,57 +47,61 @@ test('be_memosig_triple_|+id|+ns', ()=>{
47
47
  ,
48
48
  base_,
49
49
  base__set,
50
- ] = be_sig_triple_(
51
- ()=>1,
52
- { ns: 'test_ns' })
50
+ ] = ns_be_sig_triple_(
51
+ 'test_ns',
52
+ ()=>1)
53
53
  const [
54
54
  ,
55
55
  add_dep_,
56
56
  add_dep__set
57
- ] = be_sig_triple_(()=>1,
58
- { ns: 'test_ns' })
57
+ ] = ns_be_sig_triple_(
58
+ 'test_ns',
59
+ ()=>1)
59
60
  const [
60
61
  foobar$_,
61
62
  foobar_,
62
63
  foobar__set,
63
- ] = be_memosig_triple_<number, 'test_ns'>(
64
+ ] = ns_id_be_memosig_triple_<number, 'test_ns'>(
65
+ 'test_ns',
66
+ 'foobar',
64
67
  ctx=>{
65
68
  /* eslint-disable @typescript-eslint/no-unused-vars */
66
69
  type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
67
70
  /* eslint-enable @typescript-eslint/no-unused-vars */
68
71
  return base_(ctx) + 1
69
72
  },
70
- { id: 'foobar', ns: 'test_ns' }
71
- ).add((ctx, foobar$)=>memo_(()=>{
72
- /* eslint-disable @typescript-eslint/no-unused-vars */
73
- type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
74
- /* eslint-enable @typescript-eslint/no-unused-vars */
75
- add_count++
76
- add_dep__set(ctx, add_count + foobar$())
77
- }))
73
+ [
74
+ (ctx, foobar$)=>memo_(()=>{
75
+ /* eslint-disable @typescript-eslint/no-unused-vars */
76
+ type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
77
+ /* eslint-enable @typescript-eslint/no-unused-vars */
78
+ add_count++
79
+ add_dep__set(ctx, add_count + foobar$())
80
+ })
81
+ ])
78
82
  equal(add_count, 0)
79
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 2)
83
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 2)
80
84
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 2)
81
- equal(foobar$_(ctx)._, 2)
85
+ equal(foobar$_(ctx)(), 2)
82
86
  equal(foobar_(ctx), 2)
83
87
  equal(add_count, 1)
84
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 2)
88
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 2)
85
89
  equal(add_dep_(ctx), 3)
86
90
  foobar__set(ns_ctx__new(ctx__new(), ctx), 5)
87
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 5)
91
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 5)
88
92
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 5)
89
- equal(foobar$_(ctx)._, 5)
93
+ equal(foobar$_(ctx)(), 5)
90
94
  equal(foobar_(ctx), 5)
91
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 5)
95
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 5)
92
96
  equal(add_count, 2)
93
97
  equal(add_dep_(ctx), 7)
94
98
  base__set(ctx, 2)
95
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 3)
99
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 3)
96
100
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 3)
97
- equal(foobar$_(ctx)._, 3)
101
+ equal(foobar$_(ctx)(), 3)
98
102
  equal(foobar_(ctx), 3)
99
103
  equal(add_count, 3)
100
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 3)
104
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 3)
101
105
  equal(add_dep_(ctx), 6)
102
106
  })
103
107
  test('be_memosig_triple_|+be', ()=>{
@@ -107,50 +111,53 @@ test('be_memosig_triple_|+be', ()=>{
107
111
  ,
108
112
  base_,
109
113
  base__set,
110
- ] = be_sig_triple_(()=>1,
111
- { ns: 'test_ns' })
114
+ ] = ns_be_sig_triple_(
115
+ 'test_ns',
116
+ ()=>1)
112
117
  const [
113
118
  foobar$_,
114
119
  foobar_,
115
120
  foobar__set,
116
- ] = be_memosig_triple_<number, 'test_ns', { custom: string }>(
121
+ ] = be_memosig_triple_<number, 'test_ns', { custom:string }>(
117
122
  be_(ctx=>{
118
123
  /* eslint-disable @typescript-eslint/no-unused-vars */
119
124
  type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
120
125
  /* eslint-enable @typescript-eslint/no-unused-vars */
121
126
  const foobar$ =
122
- memosig_<number, { custom: string }>(
123
- ()=>base_(ctx) + 1
124
- ).add(foobar$=>
125
- memo_(()=>{
126
- foobar$()
127
- add_count++
128
- }))
127
+ memosig_<number, { custom:string }>(
128
+ ()=>base_(ctx) + 1,
129
+ [
130
+ foobar$=>
131
+ memo_(()=>{
132
+ foobar$()
133
+ add_count++
134
+ })
135
+ ])
129
136
  foobar$.custom = 'custom-val'
130
137
  return foobar$
131
138
  }, { id: 'foobar', ns: 'test_ns' }))
132
139
  equal(add_count, 0)
133
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 2)
140
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 2)
134
141
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 2)
135
- equal(foobar$_(ctx)._, 2)
142
+ equal(foobar$_(ctx)(), 2)
136
143
  equal(foobar_(ctx), 2)
137
144
  equal(add_count, 1)
138
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 2)
145
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 2)
139
146
  equal(foobar$_(ctx).custom, 'custom-val')
140
147
  foobar__set(ctx, 5)
141
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 5)
148
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 5)
142
149
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 5)
143
- equal(foobar$_(ctx)._, 5)
150
+ equal(foobar$_(ctx)(), 5)
144
151
  equal(foobar_(ctx), 5)
145
152
  equal(add_count, 2)
146
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 5)
153
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 5)
147
154
  equal(foobar$_(ctx).custom, 'custom-val')
148
155
  base__set(ns_ctx__new(ctx__new(), ctx), 2)
149
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 3)
156
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 3)
150
157
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 3)
151
- equal(foobar$_(ctx)._, 3)
158
+ equal(foobar$_(ctx)(), 3)
152
159
  equal(foobar_(ctx), 3)
153
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 3)
160
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 3)
154
161
  equal(foobar$_(ctx).custom, 'custom-val')
155
162
  equal(add_count, 3)
156
163
  })
@@ -161,15 +168,16 @@ test('ns_be_memosig_triple_', ()=>{
161
168
  ,
162
169
  base_,
163
170
  base__set,
164
- ] = be_sig_triple_(
165
- ()=>1,
166
- { ns: 'test_ns' })
171
+ ] = ns_be_sig_triple_(
172
+ 'test_ns',
173
+ ()=>1)
167
174
  const [
168
175
  ,
169
176
  add_dep_,
170
177
  add_dep__set
171
- ] = be_sig_triple_(()=>1,
172
- { ns: 'test_ns' })
178
+ ] = ns_be_sig_triple_(
179
+ 'test_ns',
180
+ ()=>1)
173
181
  const [
174
182
  foobar$_,
175
183
  foobar_,
@@ -181,32 +189,34 @@ test('ns_be_memosig_triple_', ()=>{
181
189
  type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
182
190
  /* eslint-enable @typescript-eslint/no-unused-vars */
183
191
  return base_(ctx) + 1
184
- }
185
- ).add((ctx, foobar$)=>memo_(()=>{
186
- /* eslint-disable @typescript-eslint/no-unused-vars */
187
- type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
188
- /* eslint-enable @typescript-eslint/no-unused-vars */
189
- add_count++
190
- add_dep__set(ctx, add_count + foobar$())
191
- }))
192
+ },
193
+ [
194
+ (ctx, foobar$)=>memo_(()=>{
195
+ /* eslint-disable @typescript-eslint/no-unused-vars */
196
+ type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
197
+ /* eslint-enable @typescript-eslint/no-unused-vars */
198
+ add_count++
199
+ add_dep__set(ctx, add_count + foobar$())
200
+ })
201
+ ])
192
202
  equal(add_count, 0)
193
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 2)
203
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 2)
194
204
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 2)
195
- equal(foobar$_(ctx)._, 2)
205
+ equal(foobar$_(ctx)(), 2)
196
206
  equal(foobar_(ctx), 2)
197
207
  equal(add_count, 1)
198
208
  equal(add_dep_(ctx), 3)
199
209
  foobar__set(ns_ctx__new(ctx__new(), ctx), 5)
200
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 5)
210
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 5)
201
211
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 5)
202
- equal(foobar$_(ctx)._, 5)
212
+ equal(foobar$_(ctx)(), 5)
203
213
  equal(foobar_(ctx), 5)
204
214
  equal(add_count, 2)
205
215
  equal(add_dep_(ctx), 7)
206
216
  base__set(ctx, 2)
207
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 3)
217
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 3)
208
218
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 3)
209
- equal(foobar$_(ctx)._, 3)
219
+ equal(foobar$_(ctx)(), 3)
210
220
  equal(foobar_(ctx), 3)
211
221
  equal(add_count, 3)
212
222
  equal(add_dep_(ctx), 6)
@@ -236,31 +246,33 @@ test('id_be_memosig_triple_', ()=>{
236
246
  type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<''>>>
237
247
  /* eslint-enable @typescript-eslint/no-unused-vars */
238
248
  return base_(ctx) + 1
239
- }
240
- ).add((ctx, foobar$)=>memo_(()=>{
241
- /* eslint-disable @typescript-eslint/no-unused-vars */
242
- type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<''>>>
243
- /* eslint-enable @typescript-eslint/no-unused-vars */
244
- add_count++
245
- add_dep__set(ctx, add_count + foobar$())
246
- }))
249
+ },
250
+ [
251
+ (ctx, foobar$)=>memo_(()=>{
252
+ /* eslint-disable @typescript-eslint/no-unused-vars */
253
+ type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<''>>>
254
+ /* eslint-enable @typescript-eslint/no-unused-vars */
255
+ add_count++
256
+ add_dep__set(ctx, add_count + foobar$())
257
+ })
258
+ ])
247
259
  equal(add_count, 0)
248
- equal(foobar$_(ctx)._, 2)
260
+ equal(foobar$_(ctx)(), 2)
249
261
  equal(foobar_(ctx), 2)
250
262
  equal(add_count, 1)
251
- equal((ctx.s[''].get('foobar')![0] as sig_T<number>)._, 2)
263
+ equal((ctx.s[''].get('foobar')![0] as sig_T<number>)(), 2)
252
264
  equal(add_dep_(ctx), 3)
253
265
  foobar__set(ctx, 5)
254
- equal(foobar$_(ctx)._, 5)
266
+ equal(foobar$_(ctx)(), 5)
255
267
  equal(foobar_(ctx), 5)
256
- equal((ctx.s[''].get('foobar')![0] as sig_T<number>)._, 5)
268
+ equal((ctx.s[''].get('foobar')![0] as sig_T<number>)(), 5)
257
269
  equal(add_count, 2)
258
270
  equal(add_dep_(ctx), 7)
259
271
  base__set(ctx, 2)
260
- equal(foobar$_(ctx)._, 3)
272
+ equal(foobar$_(ctx)(), 3)
261
273
  equal(foobar_(ctx), 3)
262
274
  equal(add_count, 3)
263
- equal((ctx.s[''].get('foobar')![0] as sig_T<number>)._, 3)
275
+ equal((ctx.s[''].get('foobar')![0] as sig_T<number>)(), 3)
264
276
  equal(add_dep_(ctx), 6)
265
277
  })
266
278
  test('ns_id_be_memosig_triple_', ()=>{
@@ -270,15 +282,16 @@ test('ns_id_be_memosig_triple_', ()=>{
270
282
  ,
271
283
  base_,
272
284
  base__set,
273
- ] = be_sig_triple_(
274
- ()=>1,
275
- { ns: 'test_ns' })
285
+ ] = ns_be_sig_triple_(
286
+ 'test_ns',
287
+ ()=>1)
276
288
  const [
277
289
  ,
278
290
  add_dep_,
279
291
  add_dep__set
280
- ] = be_sig_triple_(()=>1,
281
- { ns: 'test_ns' })
292
+ ] = ns_be_sig_triple_(
293
+ 'test_ns',
294
+ ()=>1)
282
295
  const [
283
296
  foobar$_,
284
297
  foobar_,
@@ -292,36 +305,38 @@ test('ns_id_be_memosig_triple_', ()=>{
292
305
  /* eslint-enable @typescript-eslint/no-unused-vars */
293
306
  return base_(ctx) + 1
294
307
  },
295
- ).add((ctx, foobar$)=>memo_(()=>{
296
- /* eslint-disable @typescript-eslint/no-unused-vars */
297
- type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
298
- /* eslint-enable @typescript-eslint/no-unused-vars */
299
- add_count++
300
- add_dep__set(ctx, add_count + foobar$())
301
- }))
308
+ [
309
+ (ctx, foobar$)=>memo_(()=>{
310
+ /* eslint-disable @typescript-eslint/no-unused-vars */
311
+ type test_ctx = Expect<Equal<typeof ctx, wide_ctx_T<'test_ns'>>>
312
+ /* eslint-enable @typescript-eslint/no-unused-vars */
313
+ add_count++
314
+ add_dep__set(ctx, add_count + foobar$())
315
+ })
316
+ ])
302
317
  equal(add_count, 0)
303
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 2)
318
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 2)
304
319
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 2)
305
- equal(foobar$_(ctx)._, 2)
320
+ equal(foobar$_(ctx)(), 2)
306
321
  equal(foobar_(ctx), 2)
307
322
  equal(add_count, 1)
308
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 2)
323
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 2)
309
324
  equal(add_dep_(ctx), 3)
310
325
  foobar__set(ns_ctx__new(ctx__new(), ctx), 5)
311
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 5)
326
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 5)
312
327
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 5)
313
- equal(foobar$_(ctx)._, 5)
328
+ equal(foobar$_(ctx)(), 5)
314
329
  equal(foobar_(ctx), 5)
315
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 5)
330
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 5)
316
331
  equal(add_count, 2)
317
332
  equal(add_dep_(ctx), 7)
318
333
  base__set(ctx, 2)
319
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 3)
334
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))(), 3)
320
335
  equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 3)
321
- equal(foobar$_(ctx)._, 3)
336
+ equal(foobar$_(ctx)(), 3)
322
337
  equal(foobar_(ctx), 3)
323
338
  equal(add_count, 3)
324
- equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)._, 3)
339
+ equal((ctx.s.test_ns.get('foobar')![0] as sig_T<number>)(), 3)
325
340
  equal(add_dep_(ctx), 6)
326
341
  })
327
342
  test.run()
@@ -1,5 +1,5 @@
1
- import type { Be, be_config_arg_a_T, ctx__be_T, ctx__get_T, ctx__set_T, wide_ctx_T } from '../be_/index.js'
2
- import type { sig_T } from '../rmemo/index.js'
1
+ import type { Be, ctx__be_T, ctx__get_T, ctx__set_T, wide_ctx_T } from '../be_/index.js'
2
+ import type { be_rmemo_add_def_T, sig_T } from '../rmemo/index.js'
3
3
  export declare function be_sig_triple_<
4
4
  val_T,
5
5
  ns_T extends string = '',
@@ -13,7 +13,7 @@ export declare function be_sig_triple_<
13
13
  ctx_T extends wide_ctx_T<ns_T> = wide_ctx_T<ns_T>,
14
14
  >(
15
15
  val__new:(ctx:ctx_T, sig:sig_T<val_T, E>)=>val_T,
16
- ...config:be_config_arg_a_T<ns_T>
16
+ add_def_a1?:be_rmemo_add_def_T<val_T, ns_T, E, ctx_T>[]
17
17
  ):be_sig_triple_T<val_T, ns_T, E, ctx_T>
18
18
  export declare function ns_be_sig_triple_<
19
19
  val_T,
@@ -23,6 +23,7 @@ export declare function ns_be_sig_triple_<
23
23
  >(
24
24
  ns:ns_T,
25
25
  val__new:(ctx:ctx_T, sig:sig_T<val_T, E>)=>val_T,
26
+ add_def_a1?:be_rmemo_add_def_T<val_T, ns_T, E, ctx_T>[]
26
27
  ):be_sig_triple_T<val_T, ns_T, E, ctx_T>
27
28
  export declare function id_be_sig_triple_<
28
29
  val_T,
@@ -31,6 +32,7 @@ export declare function id_be_sig_triple_<
31
32
  >(
32
33
  id:string,
33
34
  val__new:(ctx:ctx_T, sig:sig_T<val_T, E>)=>val_T,
35
+ add_def_a1?:be_rmemo_add_def_T<val_T, '', E, ctx_T>[]
34
36
  ):be_sig_triple_T<val_T, '', E, ctx_T>
35
37
  export declare function ns_id_be_sig_triple_<
36
38
  val_T,
@@ -41,6 +43,7 @@ export declare function ns_id_be_sig_triple_<
41
43
  ns:ns_T,
42
44
  id:string,
43
45
  val__new:(ctx:ctx_T, sig:sig_T<val_T, E>)=>val_T,
46
+ add_def_a1?:be_rmemo_add_def_T<val_T, ns_T, E, ctx_T>[]
44
47
  ):be_sig_triple_T<val_T, ns_T, E, ctx_T>
45
48
  export type be_sig_triple_T<
46
49
  val_T,
@@ -51,8 +54,4 @@ export type be_sig_triple_T<
51
54
  ctx__be_T<sig_T<val_T, E>, ns_T, ctx_T>,
52
55
  ctx__get_T<val_T, ns_T, ctx_T>,
53
56
  ctx__set_T<val_T, ns_T, ctx_T>,
54
- ]&{
55
- add<add_val_T>(
56
- add_def:(ctx:ctx_T, sig:sig_T<val_T, E>)=>add_val_T
57
- ):be_sig_triple_T<val_T, ns_T, E, ctx_T>
58
- }
57
+ ]
@@ -5,72 +5,75 @@ import { be_ } from '../be_/index.js'
5
5
  import { sig_ } from '../rmemo/index.js'
6
6
  /**
7
7
  * @param {Be<sig_T>|be__val__new_T<unknown>}be_OR_val__new
8
+ * @param {be_rmemo_add_def_T[]}[add_def_a1]
8
9
  * @param {be_config_T}[config]
9
10
  * @returns {be_sig_triple_T}
10
11
  * @private
11
12
  */
12
13
  export function be_sig_triple_(
13
14
  be_OR_val__new,
15
+ add_def_a1,
14
16
  config
15
17
  ) {
16
- let add_def_a = []
17
18
  /** @ype {Be<sig_T>} */
18
19
  let be =
19
20
  be_OR_val__new.is_be
20
21
  ? be_OR_val__new
21
22
  : be_(ctx=>
22
- add_def_a.reduce(
23
- (sig, add_def)=>sig.add((...arg_a)=>add_def(ctx, ...arg_a)),
24
- sig_(be_OR_val__new(ctx))),
23
+ sig_(
24
+ be_OR_val__new(ctx),
25
+ (add_def_a1 ?? []).map(add_def=>
26
+ sig=>add_def(ctx, sig))),
25
27
  config)
26
- let be_sig_triple = [
28
+ return [
27
29
  be,
28
30
  ctx=>be(ctx)(),
29
31
  (ctx, val)=>{
30
- be(ctx)._ = val
32
+ be(ctx).set(val)
31
33
  },
32
34
  ]
33
- be_sig_triple.add = add_def=>{
34
- add_def_a.push(add_def)
35
- return be_sig_triple
36
- }
37
- return be_sig_triple
38
35
  }
39
36
  /**
40
37
  * @param {string}ns
41
38
  * @param {be__val__new_T<unknown>}val__new
39
+ * @param {be_rmemo_add_def_T[]}[add_def_a1]
42
40
  * @returns {be_sig_triple_T}
43
41
  * @private
44
42
  */
45
43
  export function ns_be_sig_triple_(
46
44
  ns,
47
- val__new
45
+ val__new,
46
+ add_def_a1
48
47
  ) {
49
- return be_sig_triple_(val__new, { ns })
48
+ return be_sig_triple_(val__new, add_def_a1, { ns })
50
49
  }
51
50
  /**
52
51
  * @param {string}id
53
52
  * @param {be__val__new_T<unknown>}val__new
53
+ * @param {be_rmemo_add_def_T[]}[add_def_a1]
54
54
  * @returns {be_sig_triple_T}
55
55
  * @private
56
56
  */
57
57
  export function id_be_sig_triple_(
58
58
  id,
59
- val__new
59
+ val__new,
60
+ add_def_a1
60
61
  ) {
61
- return be_sig_triple_(val__new, { id })
62
+ return be_sig_triple_(val__new, add_def_a1, { id })
62
63
  }
63
64
  /**
64
65
  * @param {string}ns
65
66
  * @param {string}id
66
67
  * @param {be__val__new_T<unknown>}val__new
68
+ * @param {be_rmemo_add_def_T[]}[add_def_a1]
67
69
  * @returns {be_sig_triple_T}
68
70
  * @private
69
71
  */
70
72
  export function ns_id_be_sig_triple_(
71
73
  ns,
72
74
  id,
73
- val__new
75
+ val__new,
76
+ add_def_a1
74
77
  ) {
75
- return be_sig_triple_(val__new, { ns, id })
78
+ return be_sig_triple_(val__new, add_def_a1, { ns, id })
76
79
  }