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