ctx-core 3.3.3 → 4.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.
- package/README.md +3 -0
- package/all/all_union_a/index.js +1 -1
- package/all/andand_or/index.js +1 -1
- package/all/andandfn/index.js +2 -2
- package/all/arg_i0_a/index.js +1 -1
- package/all/bad_credentials/index.js +1 -1
- package/all/be/index.d.ts +2 -2
- package/all/be/index.js +3 -4
- package/all/be_/index.d.ts +35 -53
- package/all/be_/index.js +22 -54
- package/all/be_/index.test.ts +19 -20
- package/all/be_rmemo_pair/index.d.ts +21 -0
- package/all/be_rmemo_pair/index.js +25 -0
- package/all/be_rmemo_pair/index.test.ts +66 -0
- package/all/be_rsig_triple/index.d.ts +22 -0
- package/all/be_rsig_triple/index.js +28 -0
- package/all/be_rsig_triple/index.test.ts +52 -0
- package/all/call_assign/index.js +1 -1
- package/all/compose/index.js +1 -1
- package/all/each/index.js +1 -1
- package/all/eql_fn_a/index.js +1 -1
- package/all/fetch__template_pair/index.js +1 -1
- package/all/filter/index.js +1 -1
- package/all/http_error/index.js +1 -1
- package/all/idx_filter/index.js +2 -2
- package/all/idx_key_r/index.js +4 -4
- package/all/index.d.ts +3 -3
- package/all/index.js +3 -3
- package/all/invalid_argument/index.js +1 -1
- package/all/invalid_state/index.js +1 -1
- package/all/map/index.js +1 -1
- package/all/missing_argument/index.js +1 -1
- package/all/o_a_present/index.js +1 -1
- package/all/or/index.js +2 -2
- package/all/rc_be/index.d.ts +2 -5
- package/all/rc_be/index.js +5 -7
- package/all/rc_be_/index.d.ts +5 -8
- package/all/rc_be_/index.js +6 -15
- package/all/reduce/index.js +1 -1
- package/all/reject/index.js +1 -1
- package/all/response_o/index.js +1 -1
- package/all/rmemo/index.d.ts +8 -2
- package/all/rmemo/index.js +24 -24
- package/all/sort/index.js +1 -1
- package/all/sort_idx_a/index.js +1 -1
- package/all/sort_val_a/index.js +1 -1
- package/all/sort_val_a__transition_idx_a/index.js +3 -3
- package/all/union_by/index.js +1 -1
- package/all/weak_r/index.js +1 -1
- package/all/zip_with/index.js +1 -1
- package/be/index.d.ts +0 -2
- package/be/index.js +0 -2
- package/object/index.d.ts +0 -2
- package/object/index.js +0 -2
- package/package.json +6 -6
- package/rmemo/index.d.ts +2 -0
- package/rmemo/index.js +2 -0
- package/all/be_arg_triple/index.d.ts +0 -21
- package/all/be_arg_triple/index.js +0 -41
- package/all/be_prop_pair/index.d.ts +0 -36
- package/all/be_prop_pair/index.js +0 -54
- package/all/be_prop_pair/index.test.ts +0 -137
- package/be/index.test.ts +0 -251
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { test } from 'uvu'
|
|
2
|
+
import { equal } from 'uvu/assert'
|
|
3
|
+
import { ctx__new } from '../ctx/index.js'
|
|
4
|
+
import { type readwrite_rmemo_T } from '../rmemo/index.js'
|
|
5
|
+
import { be_rsig_triple_ } from './index.js'
|
|
6
|
+
test('be_rsig_triple_', ()=>{
|
|
7
|
+
const [
|
|
8
|
+
foobar$_,
|
|
9
|
+
foobar_,
|
|
10
|
+
foobar__set,
|
|
11
|
+
] = be_rsig_triple_(()=>1)
|
|
12
|
+
const ctx = ctx__new()
|
|
13
|
+
equal(foobar$_(ctx)._, 1)
|
|
14
|
+
equal(foobar_(ctx), 1)
|
|
15
|
+
foobar__set(ctx, 2)
|
|
16
|
+
equal(foobar$_(ctx)._, 2)
|
|
17
|
+
equal(foobar_(ctx), 2)
|
|
18
|
+
})
|
|
19
|
+
test('be_rsig_triple_|+id|+is_source_|+oninit', ()=>{
|
|
20
|
+
const ctx = ctx__new()
|
|
21
|
+
let subscriber_count = 0
|
|
22
|
+
const [
|
|
23
|
+
foobar$_,
|
|
24
|
+
foobar_,
|
|
25
|
+
foobar__set,
|
|
26
|
+
] = be_rsig_triple_<number, readwrite_rmemo_T<number>&{ custom:string }>(
|
|
27
|
+
()=>1,
|
|
28
|
+
()=>subscriber_count++)
|
|
29
|
+
.config({id: 'foobar', is_source_: map_ctx=>map_ctx === ctx})
|
|
30
|
+
.oninit((_ctx, foobar$)=>{
|
|
31
|
+
if (Array.isArray(_ctx)) equal(_ctx[1], ctx)
|
|
32
|
+
else equal(_ctx, ctx)
|
|
33
|
+
foobar$.custom = 'custom-val'
|
|
34
|
+
})
|
|
35
|
+
equal(subscriber_count, 0)
|
|
36
|
+
equal(foobar$_([ctx__new(), ctx])._, 1)
|
|
37
|
+
equal(foobar_([ctx__new(), ctx]), 1)
|
|
38
|
+
equal(foobar$_(ctx)._, 1)
|
|
39
|
+
equal(foobar_(ctx), 1)
|
|
40
|
+
equal(subscriber_count, 1)
|
|
41
|
+
equal((ctx.get('foobar') as readwrite_rmemo_T<number>)._, 1)
|
|
42
|
+
equal(foobar$_(ctx).custom, 'custom-val')
|
|
43
|
+
foobar__set([ctx__new(), ctx], 2)
|
|
44
|
+
equal(foobar$_([ctx__new(), ctx])._, 2)
|
|
45
|
+
equal(foobar_([ctx__new(), ctx]), 2)
|
|
46
|
+
equal(foobar$_(ctx)._, 2)
|
|
47
|
+
equal(foobar_(ctx), 2)
|
|
48
|
+
equal((ctx.get('foobar') as readwrite_rmemo_T<number>)._, 2)
|
|
49
|
+
equal(foobar$_(ctx).custom, 'custom-val')
|
|
50
|
+
equal(subscriber_count, 1)
|
|
51
|
+
})
|
|
52
|
+
test.run()
|
package/all/call_assign/index.js
CHANGED
package/all/compose/index.js
CHANGED
package/all/each/index.js
CHANGED
package/all/eql_fn_a/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { response_pair__new } from '../response_pair/index.js'
|
|
2
|
-
/** @typedef {import('../fetch__template_pair/index.d.ts').fetch__template_pair_T}
|
|
2
|
+
/** @typedef {import('../fetch__template_pair/index.d.ts').fetch__template_pair_T} */
|
|
3
3
|
/**
|
|
4
4
|
* @param {(...arg_a:any[])=>Promise<Response>}fetch_fn
|
|
5
5
|
* @param {(val:unknown)=>unknown}[hydrate]
|
package/all/filter/index.js
CHANGED
package/all/http_error/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assign } from '../assign/index.js'
|
|
2
2
|
/** @typedef {import('../error_o/index.d.ts').argument__error_o_T} */
|
|
3
|
-
/** @typedef {import('../http_error/index.d.ts').HttpError}
|
|
3
|
+
/** @typedef {import('../http_error/index.d.ts').HttpError} */
|
|
4
4
|
/**
|
|
5
5
|
* @param {string}[message]
|
|
6
6
|
* @param {argument__error_o_T}[error_o]
|
package/all/idx_filter/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { I__ } from '../combinators/index.js'
|
|
2
|
-
/** @typedef {import('../a_item/index.d.ts').a_item_T}
|
|
3
|
-
/** @typedef {import('../array_types/index.d.ts').is_match__T}
|
|
2
|
+
/** @typedef {import('../a_item/index.d.ts').a_item_T} */
|
|
3
|
+
/** @typedef {import('../array_types/index.d.ts').is_match__T} */
|
|
4
4
|
/**
|
|
5
5
|
* Returns Array of `idx` indices filtered by `fn`.
|
|
6
6
|
* @param {unknown[]}in_a
|
package/all/idx_key_r/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { I__ } from '../combinators/index.js'
|
|
2
|
-
/** @typedef {import('../array_types/index.d.ts').item_key_idx_val_fn_T}
|
|
3
|
-
/** @typedef {import('../idx_key_r/index.d.ts').idx_key_r_T}
|
|
2
|
+
/** @typedef {import('../array_types/index.d.ts').item_key_idx_val_fn_T} */
|
|
3
|
+
/** @typedef {import('../idx_key_r/index.d.ts').idx_key_r_T} */
|
|
4
4
|
/**
|
|
5
5
|
* Returns a Hash where each key is `a[idx][key]` & value is `idx`.
|
|
6
6
|
* @param {unknown[]}a
|
|
@@ -45,8 +45,8 @@ export {
|
|
|
45
45
|
maybe_idx_key_r_ as maybe_idx_key_h_,
|
|
46
46
|
maybe_idx_key_r_ as _maybe_idx_key_hash,
|
|
47
47
|
}
|
|
48
|
-
/** @typedef {import('./index.d.ts').idx_key_r_T}
|
|
49
|
-
/** @typedef {import('../array_types/index.d.ts').item_key_idx_val_fn_T}
|
|
48
|
+
/** @typedef {import('./index.d.ts').idx_key_r_T} */
|
|
49
|
+
/** @typedef {import('../array_types/index.d.ts').item_key_idx_val_fn_T} */
|
|
50
50
|
/**
|
|
51
51
|
* Returns function that returns from [_idx_key_hash](#_idx_key_hash) with `item_key_idx_val_` function argument.
|
|
52
52
|
* @param {item_key_idx_val_fn_T<string, Record<string, string>>}item_key_idx_val_
|
package/all/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ export * from './Map__object/index.js'
|
|
|
5
5
|
export * from './NumericRange/index.js'
|
|
6
6
|
export * from './NumericUnit/index.js'
|
|
7
7
|
export * from './PHI/index.js'
|
|
8
|
-
export * from './primitive/index.js'
|
|
9
8
|
export * from './Request/index.js'
|
|
10
9
|
export * from './Response/index.js'
|
|
11
10
|
export * from './Timeout/index.js'
|
|
@@ -45,8 +44,8 @@ export * from './base64__buffer/index.js'
|
|
|
45
44
|
export * from './batch_queue/index.js'
|
|
46
45
|
export * from './be/index.js'
|
|
47
46
|
export * from './be_/index.js'
|
|
48
|
-
export * from './
|
|
49
|
-
export * from './
|
|
47
|
+
export * from './be_rmemo_pair/index.js'
|
|
48
|
+
export * from './be_rsig_triple/index.js'
|
|
50
49
|
export * from './binary_sort_rank/index.js'
|
|
51
50
|
export * from './bind_apply/index.js'
|
|
52
51
|
export * from './bind_call/index.js'
|
|
@@ -291,6 +290,7 @@ export * from './pick/index.js'
|
|
|
291
290
|
export * from './pick_keys/index.js'
|
|
292
291
|
export * from './pick_val_a/index.js'
|
|
293
292
|
export * from './prev_idx/index.js'
|
|
293
|
+
export * from './primitive/index.js'
|
|
294
294
|
export * from './promise/index.js'
|
|
295
295
|
export * from './promise_o/index.js'
|
|
296
296
|
export * from './promise_timeout/index.js'
|
package/all/index.js
CHANGED
|
@@ -5,7 +5,6 @@ export * from './Map__object/index.js'
|
|
|
5
5
|
export * from './NumericRange/index.js'
|
|
6
6
|
export * from './NumericUnit/index.js'
|
|
7
7
|
export * from './PHI/index.js'
|
|
8
|
-
export * from './primitive/index.js'
|
|
9
8
|
export * from './Request/index.js'
|
|
10
9
|
export * from './Response/index.js'
|
|
11
10
|
export * from './Timeout/index.js'
|
|
@@ -45,8 +44,8 @@ export * from './base64__buffer/index.js'
|
|
|
45
44
|
export * from './batch_queue/index.js'
|
|
46
45
|
export * from './be/index.js'
|
|
47
46
|
export * from './be_/index.js'
|
|
48
|
-
export * from './
|
|
49
|
-
export * from './
|
|
47
|
+
export * from './be_rmemo_pair/index.js'
|
|
48
|
+
export * from './be_rsig_triple/index.js'
|
|
50
49
|
export * from './binary_sort_rank/index.js'
|
|
51
50
|
export * from './bind_apply/index.js'
|
|
52
51
|
export * from './bind_call/index.js'
|
|
@@ -291,6 +290,7 @@ export * from './pick/index.js'
|
|
|
291
290
|
export * from './pick_keys/index.js'
|
|
292
291
|
export * from './pick_val_a/index.js'
|
|
293
292
|
export * from './prev_idx/index.js'
|
|
293
|
+
export * from './primitive/index.js'
|
|
294
294
|
export * from './promise/index.js'
|
|
295
295
|
export * from './promise_o/index.js'
|
|
296
296
|
export * from './promise_timeout/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assign } from '../assign/index.js'
|
|
2
2
|
import { HttpError } from '../http_error/index.js'
|
|
3
|
-
/** @typedef {import('./index.d.ts').argument__invalid_argument_error_o_T}
|
|
3
|
+
/** @typedef {import('./index.d.ts').argument__invalid_argument_error_o_T} */
|
|
4
4
|
/** @typedef {import('./index.d.ts').InvalidArgumentError} */
|
|
5
5
|
export const invalid_argument__default__message = 'Invalid Argument'
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assign } from '../assign/index.js'
|
|
2
2
|
import { HttpError } from '../http_error/index.js'
|
|
3
|
-
/** @typedef {import('../invalid_state/index.d.ts').argument__invalid_state_error_o_T}
|
|
3
|
+
/** @typedef {import('../invalid_state/index.d.ts').argument__invalid_state_error_o_T} */
|
|
4
4
|
/** @typedef {import('./index.d.ts').InvalidStateError} */
|
|
5
5
|
export const invalid_state__default__message = 'Error'
|
|
6
6
|
/**
|
package/all/map/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assign } from '../assign/index.js'
|
|
2
2
|
import { HttpError } from '../http_error/index.js'
|
|
3
|
-
/** @typedef {import('../missing_argument/index.d.ts').argument__missing_argument_error_o_T}
|
|
3
|
+
/** @typedef {import('../missing_argument/index.d.ts').argument__missing_argument_error_o_T} */
|
|
4
4
|
/** @typedef {import('../missing_argument/index.d.ts').MissingArgumentError} */
|
|
5
5
|
export const missing_argument__default__message = 'Error'
|
|
6
6
|
/**
|
package/all/o_a_present/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a_present_ } from '../a_present/index.js'
|
|
2
2
|
import { filter_o__ } from '../filter_o/index.js'
|
|
3
|
-
/** @typedef {import('../filter_o/index.d.ts').filter_o_T}
|
|
3
|
+
/** @typedef {import('../filter_o/index.d.ts').filter_o_T} */
|
|
4
4
|
/**
|
|
5
5
|
* Returns a filter_h where the values are a boolean of whether the array has items present
|
|
6
6
|
* @param {object}o
|
package/all/or/index.js
CHANGED
|
@@ -13,8 +13,8 @@ export function or(a_unwrap) {
|
|
|
13
13
|
}
|
|
14
14
|
return
|
|
15
15
|
}
|
|
16
|
-
/** @typedef {import('../a_nowrap/index.d.ts').a_nowrap_T}
|
|
17
|
-
/** @typedef {import('./index.d.ts').or_T}
|
|
16
|
+
/** @typedef {import('../a_nowrap/index.d.ts').a_nowrap_T} */
|
|
17
|
+
/** @typedef {import('./index.d.ts').or_T} */
|
|
18
18
|
/**
|
|
19
19
|
* Returns first truthy or last item call or value in `a_unwrap`.
|
|
20
20
|
* @param {a_nowrap_T}a_unwrap
|
package/all/rc_be/index.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { Ctx } from '../be_/index.js'
|
|
2
|
-
import type {
|
|
2
|
+
import type { rc_be__val__new_T } from '../rc_be_/index.js'
|
|
3
3
|
export declare function rc_be<
|
|
4
4
|
Out extends NonNullable<unknown>
|
|
5
|
-
>(ctx:Ctx, val_:
|
|
6
|
-
export declare function rc_be<
|
|
7
|
-
Out extends NonNullable<unknown>
|
|
8
|
-
>(ctx:Ctx, key:string, val_:rc_be__val__T<Out>):Out
|
|
5
|
+
>(ctx:Ctx, val_:rc_be__val__new_T<Out>):Out
|
|
9
6
|
export { rc_be as rc_b, }
|
package/all/rc_be/index.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { rc_be_ } from '../rc_be_/index.js'
|
|
2
|
-
/** @typedef {import('../be_/index.d.ts').Ctx}
|
|
3
|
-
/** @typedef {import('../rc_be_/index.d.ts').
|
|
2
|
+
/** @typedef {import('../be_/index.d.ts').Ctx} */
|
|
3
|
+
/** @typedef {import('../rc_be_/index.d.ts').rc_be__val__new_T} */
|
|
4
4
|
/**
|
|
5
5
|
* @param {Ctx}ctx
|
|
6
|
-
* @param {
|
|
7
|
-
* @param {rc_be__val__T<NonNullable<unknown>>}[val_]
|
|
6
|
+
* @param {rc_be__val__new_T<NonNullable<unknown>>}key_or_val
|
|
8
7
|
* @returns {NonNullable<unknown>}
|
|
9
8
|
*/
|
|
10
9
|
export function rc_be(
|
|
11
10
|
ctx,
|
|
12
|
-
|
|
13
|
-
val_
|
|
11
|
+
val__new
|
|
14
12
|
) {
|
|
15
|
-
return
|
|
13
|
+
return rc_be_(val__new)(ctx)
|
|
16
14
|
}
|
|
17
15
|
export { rc_be as rc_b, }
|
package/all/rc_be_/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Be,
|
|
1
|
+
import type { Be, be__val__new_T, be_params_T, Ctx } from '../be_/index.js'
|
|
2
2
|
export declare const be_m_set_key:unique symbol
|
|
3
3
|
/**
|
|
4
4
|
* Returns _be with referencing counting.
|
|
@@ -6,13 +6,10 @@ export declare const be_m_set_key:unique symbol
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function rc_be_<
|
|
8
8
|
Out extends NonNullable<unknown>
|
|
9
|
-
>(
|
|
10
|
-
export declare function rc_be_<
|
|
11
|
-
Out extends NonNullable<unknown>
|
|
12
|
-
>(key:string, val_:rc_be__val__T<Out>):rc_be__return_T<Out>
|
|
9
|
+
>(val__new:rc_be__val__new_T<Out>):rc_be__return_T<Out>
|
|
13
10
|
export declare type rc_be__return_T<
|
|
14
11
|
Out extends NonNullable<unknown>
|
|
15
|
-
> = (ctx:Ctx,
|
|
12
|
+
> = (ctx:Ctx, params?:rc_be_params_T)=>RcBe_return_T<Out>
|
|
16
13
|
export {
|
|
17
14
|
rc_be_ as _rc_be,
|
|
18
15
|
rc_be_ as _rc_b,
|
|
@@ -28,9 +25,9 @@ export interface val_this_T {
|
|
|
28
25
|
export interface rc_be_params_T extends be_params_T {
|
|
29
26
|
owner?:object
|
|
30
27
|
}
|
|
31
|
-
export declare type
|
|
28
|
+
export declare type rc_be__val__new_T<
|
|
32
29
|
Out extends NonNullable<unknown>
|
|
33
|
-
> =
|
|
30
|
+
> = be__val__new_T<Out>&((this:val_this_T, ctx:Ctx, key:Be<Out>, opts?:rc_be_params_T)=>Out)
|
|
34
31
|
export declare type rc_be_destroy_T = ()=>void
|
|
35
32
|
export interface RcBe_return_T<Out extends unknown = unknown> {
|
|
36
33
|
value:Out
|
package/all/rc_be_/index.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { be_ } from '../be_/index.js'
|
|
2
|
-
/** @typedef {import('../rc_be_/index.d.ts').
|
|
2
|
+
/** @typedef {import('../rc_be_/index.d.ts').rc_be__val__new_T} */
|
|
3
3
|
export const be_m_set_key = Symbol('be_m_set')
|
|
4
4
|
/**
|
|
5
|
-
* @param {
|
|
6
|
-
* @param {rc_be__val__T}[val_]
|
|
5
|
+
* @param {rc_be__val__new_T}val__new
|
|
7
6
|
* @returns {import('./index.d.ts').rc_be__return_T}
|
|
8
7
|
* @private
|
|
9
8
|
*/
|
|
10
|
-
export function rc_be_(
|
|
9
|
+
export function rc_be_(val__new) {
|
|
11
10
|
return (ctx1, opts1)=>{
|
|
12
11
|
const ctx_any = ctx1
|
|
13
12
|
const destroy_cb_a = []
|
|
@@ -15,17 +14,9 @@ export function rc_be_(key_or_val_, val_) {
|
|
|
15
14
|
on_destroy,
|
|
16
15
|
onDestroy: on_destroy
|
|
17
16
|
}
|
|
18
|
-
/** @type {
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const be1 =
|
|
22
|
-
val_
|
|
23
|
-
? be_(val_)
|
|
24
|
-
: be_(
|
|
25
|
-
key,
|
|
26
|
-
(ctx, be, opts)=>
|
|
27
|
-
val_.call(val_this, ctx, be, opts)
|
|
28
|
-
)
|
|
17
|
+
/** @type {rc_be__val__new_T} */
|
|
18
|
+
const val__new = val__new ? val__new : key_or_val_
|
|
19
|
+
const be1 = be_(val__new)
|
|
29
20
|
let be_m_set = ctx_any[be_m_set_key]
|
|
30
21
|
if (!be_m_set) {
|
|
31
22
|
be_m_set = new Map()
|
package/all/reduce/index.js
CHANGED
package/all/reject/index.js
CHANGED
package/all/response_o/index.js
CHANGED
package/all/rmemo/index.d.ts
CHANGED
|
@@ -7,8 +7,14 @@ export declare function rsig_<val_T>(
|
|
|
7
7
|
...subscriber_a:rmemo_subscriber_T<val_T>[]
|
|
8
8
|
):readwrite_rmemo_T<val_T>
|
|
9
9
|
export type rmemo_T<val_T> = readwrite_rmemo_T<val_T>|read_rmemo_T<val_T>
|
|
10
|
-
export type readwrite_rmemo_T<val_T> = ((val?:val_T)=>val_T)&rmemo_o_T<val_T>
|
|
11
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 {
|
|
14
|
+
(): infer val_T
|
|
15
|
+
}
|
|
16
|
+
? val_T
|
|
17
|
+
: unknown
|
|
12
18
|
export type rmemo_def_T<val_T> = (rmemo:readwrite_rmemo_T<val_T>)=>val_T
|
|
13
19
|
export type rmemo_subscriber_T<val_T> = (rmemo:readwrite_rmemo_T<val_T>)=>unknown
|
|
14
20
|
export type rmemo_o_T<val_T> = {
|
|
@@ -22,4 +28,4 @@ export type read_rmemo_o_T<val_T> = {
|
|
|
22
28
|
go():unknown
|
|
23
29
|
onset(val:val_T):unknown
|
|
24
30
|
refresh():val_T
|
|
25
|
-
}
|
|
31
|
+
}
|
package/all/rmemo/index.js
CHANGED
|
@@ -11,24 +11,24 @@ let cur_ref
|
|
|
11
11
|
* @private
|
|
12
12
|
*/
|
|
13
13
|
export function rmemo_(_f, ...subscriber_a) {
|
|
14
|
-
let rmemo
|
|
14
|
+
let rmemo = (...arg_a)=>arg_a.length ? rmemo._ = arg_a[0] : rmemo._
|
|
15
15
|
let _a = []
|
|
16
|
-
let _r = new WeakRef(()=>rmemo
|
|
16
|
+
let _r = new WeakRef(()=>rmemo.refresh(_f(rmemo)))
|
|
17
17
|
_r.l = 0
|
|
18
|
-
rmemo
|
|
19
|
-
rmemo
|
|
20
|
-
rmemo
|
|
21
|
-
rmemo
|
|
22
|
-
rmemo
|
|
23
|
-
rmemo
|
|
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
24
|
let c = 0
|
|
25
|
-
Object.defineProperty(rmemo
|
|
25
|
+
Object.defineProperty(rmemo, '_', {
|
|
26
26
|
get() {
|
|
27
27
|
if (!_a.length) {
|
|
28
28
|
let prev_ref = cur_ref
|
|
29
29
|
cur_ref = _r
|
|
30
30
|
try {
|
|
31
|
-
rmemo
|
|
31
|
+
rmemo._ = _f(rmemo)
|
|
32
32
|
} finally {
|
|
33
33
|
cur_ref = prev_ref
|
|
34
34
|
}
|
|
@@ -36,41 +36,41 @@ export function rmemo_(_f, ...subscriber_a) {
|
|
|
36
36
|
// allow self-referencing
|
|
37
37
|
if (cur_ref && cur_ref !== _r) {
|
|
38
38
|
cur_ref.l = cur_ref.l < _r.l + 1 ? _r.l + 1 : cur_ref.l
|
|
39
|
-
rmemo
|
|
39
|
+
rmemo._rS.add(cur_ref)
|
|
40
40
|
}
|
|
41
41
|
return _a[0]
|
|
42
42
|
},
|
|
43
43
|
set(val) {
|
|
44
44
|
if (!_a.length || val !== _a[0]) {
|
|
45
|
-
rmemo
|
|
45
|
+
rmemo.refresh(val)
|
|
46
46
|
}
|
|
47
47
|
return val
|
|
48
48
|
}
|
|
49
49
|
})
|
|
50
|
-
rmemo
|
|
50
|
+
rmemo.refresh = val=>{
|
|
51
51
|
if (val !== _a[0]) {
|
|
52
52
|
_a[0] = val
|
|
53
|
-
rmemo
|
|
53
|
+
rmemo.onset(val)
|
|
54
54
|
let run_queue = !queue[0]
|
|
55
|
-
for (let ref of rmemo
|
|
55
|
+
for (let ref of rmemo._rS) {
|
|
56
56
|
if (!~queue.indexOf(ref)) queue.push(ref)
|
|
57
57
|
}
|
|
58
|
-
if (!rmemo
|
|
59
|
-
rmemo
|
|
60
|
-
rmemo_(()=>subscriber(rmemo
|
|
58
|
+
if (!rmemo._sa) {
|
|
59
|
+
rmemo._sa = subscriber_a.map(subscriber=>
|
|
60
|
+
rmemo_(()=>subscriber(rmemo)).go())
|
|
61
61
|
}
|
|
62
62
|
if (run_queue) {
|
|
63
63
|
for (let ref; ref = queue.shift();) {
|
|
64
64
|
if (queue.some(_ref=>ref.l > _ref.l)) {
|
|
65
65
|
queue.push(ref)
|
|
66
66
|
} else {
|
|
67
|
-
(ref.deref() || rmemo
|
|
67
|
+
(ref.deref() || rmemo._rS.delete)(ref)
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
return rmemo
|
|
73
|
+
return rmemo
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* @param {unknown}init_val
|
|
@@ -79,9 +79,9 @@ export function rmemo_(_f, ...subscriber_a) {
|
|
|
79
79
|
* @private
|
|
80
80
|
*/
|
|
81
81
|
export function rsig_(init_val, ...subscriber_a) {
|
|
82
|
-
let
|
|
82
|
+
let rsig =
|
|
83
83
|
rmemo_(signal$=>signal$._v, ...subscriber_a)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return
|
|
84
|
+
rsig.onset = val=>rsig._v = val
|
|
85
|
+
rsig._v = init_val
|
|
86
|
+
return rsig
|
|
87
87
|
}
|
package/all/sort/index.js
CHANGED
package/all/sort_idx_a/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @typedef {import('../array_types/index.d.ts').sort_idx_o_T}
|
|
1
|
+
/** @typedef {import('../array_types/index.d.ts').sort_idx_o_T} */
|
|
2
2
|
/**
|
|
3
3
|
* Returns an Array of sorted indices from [sort_idx_o_T](#sort_idx_o_T).sort_idx_a
|
|
4
4
|
* @param {sort_idx_o_T}in_sort_idx_o
|
package/all/sort_val_a/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @typedef {import('../array_types/index.d.ts').sort_idx_o_T}
|
|
1
|
+
/** @typedef {import('../array_types/index.d.ts').sort_idx_o_T} */
|
|
2
2
|
/**
|
|
3
3
|
* Returns an Array of sorted values from [sort_idx_o_T](#sort_idx_o_T).sort_val_a
|
|
4
4
|
* @param {sort_idx_o_T}in_sort_idx_o
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { eq } from '../eq/index.js'
|
|
2
|
-
/** @typedef {import('../eq/index.d.ts').eq_T}
|
|
3
|
-
/** @typedef {import('../array_types/index.d.ts').sort_val_a__transition_a_frame_fn_T}
|
|
4
|
-
/** @typedef {import('../array_types/index.d.ts').sort_val_a__transition_a_frame_T}
|
|
2
|
+
/** @typedef {import('../eq/index.d.ts').eq_T} */
|
|
3
|
+
/** @typedef {import('../array_types/index.d.ts').sort_val_a__transition_a_frame_fn_T} */
|
|
4
|
+
/** @typedef {import('../array_types/index.d.ts').sort_val_a__transition_a_frame_T} */
|
|
5
5
|
/**
|
|
6
6
|
* Returns a [sort_val_a__transition_a_frame_T](#sort_val_a__transition_a_frame_T) of presumably sorted items in `val_a` at each index of the new item for each changed item.
|
|
7
7
|
* @param {unknown[]|undefined}sort_val_a
|
package/all/union_by/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { wrap_aa_ } from '../wrap_aa/index.js'
|
|
2
|
-
/** @typedef {import('../wrap_aa_item/index.d.ts').wrap_aa_item_T}
|
|
2
|
+
/** @typedef {import('../wrap_aa_item/index.d.ts').wrap_aa_item_T} */
|
|
3
3
|
/**
|
|
4
4
|
* @param {unknown}aa_nowrap
|
|
5
5
|
* @param {(v:wrap_aa_item_T)=>union_by_}[by_]
|
package/all/weak_r/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assign } from '../assign/index.js'
|
|
2
|
-
/** @typedef {import('../weak_r/index.d.ts').weak_r_T}
|
|
2
|
+
/** @typedef {import('../weak_r/index.d.ts').weak_r_T} */
|
|
3
3
|
const { get } = Reflect
|
|
4
4
|
const add_strong_sym = Symbol('add_strong')
|
|
5
5
|
const delete_strong_sym = Symbol('delete_strong')
|
package/all/zip_with/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @typedef {import('../zip_with/index.d.ts').zip_with_fn_T}
|
|
1
|
+
/** @typedef {import('../zip_with/index.d.ts').zip_with_fn_T} */
|
|
2
2
|
/**
|
|
3
3
|
* Returns 2d Array where each item being the return value of `fn` given the index value for each Array in `wrap_aa_T`.
|
|
4
4
|
* @param {unknown[][]}aa
|
package/be/index.d.ts
CHANGED
package/be/index.js
CHANGED
package/object/index.d.ts
CHANGED
|
@@ -5,8 +5,6 @@ export * from '../all/assign_fn_key_a/index.js'
|
|
|
5
5
|
export * from '../all/assign_unless_null/index.js'
|
|
6
6
|
export * from '../all/be/index.js'
|
|
7
7
|
export * from '../all/be_/index.js'
|
|
8
|
-
export * from '../all/be_arg_triple/index.js'
|
|
9
|
-
export * from '../all/be_prop_pair/index.js'
|
|
10
8
|
export * from '../all/call_assign/index.js'
|
|
11
9
|
export * from '../all/clear_ctx/index.js'
|
|
12
10
|
export * from '../all/clone/index.js'
|
package/object/index.js
CHANGED
|
@@ -5,8 +5,6 @@ export * from '../all/assign_fn_key_a/index.js'
|
|
|
5
5
|
export * from '../all/assign_unless_null/index.js'
|
|
6
6
|
export * from '../all/be/index.js'
|
|
7
7
|
export * from '../all/be_/index.js'
|
|
8
|
-
export * from '../all/be_arg_triple/index.js'
|
|
9
|
-
export * from '../all/be_prop_pair/index.js'
|
|
10
8
|
export * from '../all/call_assign/index.js'
|
|
11
9
|
export * from '../all/clear_ctx/index.js'
|
|
12
10
|
export * from '../all/clone/index.js'
|