ctx-core 3.3.1 → 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.
Files changed (63) hide show
  1. package/README.md +3 -0
  2. package/all/all_union_a/index.js +1 -1
  3. package/all/andand_or/index.js +1 -1
  4. package/all/andandfn/index.js +2 -2
  5. package/all/arg_i0_a/index.js +1 -1
  6. package/all/bad_credentials/index.js +1 -1
  7. package/all/be/index.d.ts +2 -2
  8. package/all/be/index.js +3 -4
  9. package/all/be_/index.d.ts +35 -53
  10. package/all/be_/index.js +22 -54
  11. package/all/be_/index.test.ts +19 -20
  12. package/all/be_rmemo_pair/index.d.ts +21 -0
  13. package/all/be_rmemo_pair/index.js +25 -0
  14. package/all/be_rmemo_pair/index.test.ts +66 -0
  15. package/all/be_rsig_triple/index.d.ts +22 -0
  16. package/all/be_rsig_triple/index.js +28 -0
  17. package/all/be_rsig_triple/index.test.ts +52 -0
  18. package/all/call_assign/index.js +1 -1
  19. package/all/compose/index.js +1 -1
  20. package/all/each/index.js +1 -1
  21. package/all/eql_fn_a/index.js +1 -1
  22. package/all/fetch__template_pair/index.js +1 -1
  23. package/all/filter/index.js +1 -1
  24. package/all/http_error/index.js +1 -1
  25. package/all/idx_filter/index.js +2 -2
  26. package/all/idx_key_r/index.js +4 -4
  27. package/all/index.d.ts +3 -3
  28. package/all/index.js +3 -3
  29. package/all/invalid_argument/index.js +1 -1
  30. package/all/invalid_state/index.js +1 -1
  31. package/all/map/index.js +1 -1
  32. package/all/missing_argument/index.js +1 -1
  33. package/all/o_a_present/index.js +1 -1
  34. package/all/or/index.js +2 -2
  35. package/all/rc_be/index.d.ts +2 -5
  36. package/all/rc_be/index.js +5 -7
  37. package/all/rc_be_/index.d.ts +5 -8
  38. package/all/rc_be_/index.js +6 -15
  39. package/all/reduce/index.js +1 -1
  40. package/all/reject/index.js +1 -1
  41. package/all/response_o/index.js +1 -1
  42. package/all/rmemo/index.d.ts +8 -2
  43. package/all/rmemo/index.js +25 -29
  44. package/all/sort/index.js +1 -1
  45. package/all/sort_idx_a/index.js +1 -1
  46. package/all/sort_val_a/index.js +1 -1
  47. package/all/sort_val_a__transition_idx_a/index.js +3 -3
  48. package/all/union_by/index.js +1 -1
  49. package/all/weak_r/index.js +1 -1
  50. package/all/zip_with/index.js +1 -1
  51. package/be/index.d.ts +0 -2
  52. package/be/index.js +0 -2
  53. package/object/index.d.ts +0 -2
  54. package/object/index.js +0 -2
  55. package/package.json +7 -7
  56. package/rmemo/index.d.ts +2 -0
  57. package/rmemo/index.js +2 -0
  58. package/all/be_arg_triple/index.d.ts +0 -21
  59. package/all/be_arg_triple/index.js +0 -41
  60. package/all/be_prop_pair/index.d.ts +0 -36
  61. package/all/be_prop_pair/index.js +0 -54
  62. package/all/be_prop_pair/index.test.ts +0 -137
  63. 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()
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../call_assign/index.d.ts').assign_fn_T}assign_fn_T */
1
+ /** @typedef {import('../call_assign/index.d.ts').assign_fn_T} */
2
2
  /**
3
3
  * Assigns function calls into obj
4
4
  * @param {object}obj
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../compose/index.d.ts').compose_fn_T}compose_fn_T */
1
+ /** @typedef {import('../compose/index.d.ts').compose_fn_T} */
2
2
  /**
3
3
  * Composes fn_a into a single function
4
4
  *
package/all/each/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../each/index.d.ts').each_fn_T}each_fn_T */
1
+ /** @typedef {import('../each/index.d.ts').each_fn_T} */
2
2
  /**
3
3
  * Iterate over each item in `a` with `fn(a[i], i)`.
4
4
  * @param {unknown[]}a
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../a_item/index.d.ts').a_item_T}a_item_T */
1
+ /** @typedef {import('../a_item/index.d.ts').a_item_T} */
2
2
  /**
3
3
  * Is i0_a `===` to i1_a based on `fn(a, b, i)`? Checks first level equality.
4
4
  * @param i0_a{unknown[]}
@@ -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}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]
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../array_types/index.d.ts').is_match__T}is_match__T */
1
+ /** @typedef {import('../array_types/index.d.ts').is_match__T} */
2
2
  /**
3
3
  * Returns Array where items in `a` are filtered by `fn`.
4
4
  * @param {unknown[]}a
@@ -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}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]
@@ -1,6 +1,6 @@
1
1
  import { I__ } from '../combinators/index.js'
2
- /** @typedef {import('../a_item/index.d.ts').a_item_T}a_item_T */
3
- /** @typedef {import('../array_types/index.d.ts').is_match__T}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
@@ -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}item_key_idx_val_fn_T */
3
- /** @typedef {import('../idx_key_r/index.d.ts').idx_key_r_T}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}idx_key_r_T */
49
- /** @typedef {import('../array_types/index.d.ts').item_key_idx_val_fn_T}item_key_idx_val_f n_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 './be_arg_triple/index.js'
49
- export * from './be_prop_pair/index.js'
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 './be_arg_triple/index.js'
49
- export * from './be_prop_pair/index.js'
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}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}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,4 +1,4 @@
1
- /** @typedef {import('../index.d.ts').map_fn_T}map_fn_T */
1
+ /** @typedef {import('../index.d.ts').map_fn_T} */
2
2
  /**
3
3
  * Map return value of `fn(a[], i)` into an Array.
4
4
  * @param {unknown[]}a
@@ -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}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
  /**
@@ -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}filter_r_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}a_nowrap_T */
17
- /** @typedef {import('./index.d.ts').or_T}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
@@ -1,9 +1,6 @@
1
1
  import type { Ctx } from '../be_/index.js'
2
- import type { rc_be__val__T } from '../rc_be_/index.js'
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_:rc_be__val__T<Out>):Out
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, }
@@ -1,17 +1,15 @@
1
1
  import { rc_be_ } from '../rc_be_/index.js'
2
- /** @typedef {import('../be_/index.d.ts').Ctx}Ctx */
3
- /** @typedef {import('../rc_be_/index.d.ts').rc_be__val__T}rc_be__val__T */
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 {string|rc_be__val__T<NonNullable<unknown>>}key_or_val
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
- key_or_val,
13
- val_
11
+ val__new
14
12
  ) {
15
- return val_ ? rc_be_(key_or_val, val_)(ctx) : rc_be_(key_or_val)(ctx)
13
+ return rc_be_(val__new)(ctx)
16
14
  }
17
15
  export { rc_be as rc_b, }
@@ -1,4 +1,4 @@
1
- import type { Be, be__val__T, be_params_T, Ctx } from '../be_/index.js'
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
- >(val_:rc_be__val__T<Out>):rc_be__return_T<Out>
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, opts?:rc_be_params_T)=>RcBe_return_T<Out>
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 rc_be__val__T<
28
+ export declare type rc_be__val__new_T<
32
29
  Out extends NonNullable<unknown>
33
- > = be__val__T<Out>&((this:val_this_T, ctx:Ctx, key:Be<Out>, opts?:rc_be_params_T)=>Out)
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
@@ -1,13 +1,12 @@
1
1
  import { be_ } from '../be_/index.js'
2
- /** @typedef {import('../rc_be_/index.d.ts').rc_be__val__T}rc_be__val__T */
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 {string|rc_be__val__T}key_or_val_
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_(key_or_val_, val_) {
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 {rc_be__val__T} */
19
- const val_ = val_ ? val_ : key_or_val_
20
- const key = val_ ? key_or_val_ : null
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()
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../reduce/index.d.ts').reduce_fn_T}reduce_fn_T */
1
+ /** @typedef {import('../reduce/index.d.ts').reduce_fn_T} */
2
2
  /**
3
3
  * Returns reduced `memo` iterating over `a` with `fn(memo, a[], i, a)`.
4
4
  * @param {unknown[]}a
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../array_types/index.d.ts').is_match__T}is_match__T */
1
+ /** @typedef {import('../array_types/index.d.ts').is_match__T} */
2
2
  /**
3
3
  * Returns Array of items not rejected by `fn`.
4
4
  * @param {unknown[]}a
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../response_o/index.d.ts').response_o_T}response_o_T */
1
+ /** @typedef {import('../response_o/index.d.ts').response_o_T} */
2
2
  /**
3
3
  * @param {Response}response
4
4
  * @returns {response_o_T}
@@ -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
+ }
@@ -11,70 +11,66 @@ let cur_ref
11
11
  * @private
12
12
  */
13
13
  export function rmemo_(_f, ...subscriber_a) {
14
- let rmemo$ = (...arg_a)=>arg_a.length ? rmemo$._ = arg_a[0] : rmemo$._
14
+ let rmemo = (...arg_a)=>arg_a.length ? rmemo._ = arg_a[0] : rmemo._
15
15
  let _a = []
16
- let _r = new WeakRef(()=>rmemo$.refresh(_f(rmemo$)))
16
+ let _r = new WeakRef(()=>rmemo.refresh(_f(rmemo)))
17
17
  _r.l = 0
18
- rmemo$._a = _a
19
- rmemo$._f = _f
20
- rmemo$._r = _r
21
- rmemo$._rS = new Set
22
- rmemo$.go = ()=>(rmemo$(), rmemo$)
23
- rmemo$.onset = ()=>0
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
- // _a[0] = _f(rmemo$)
32
- rmemo$._ = _f(rmemo$)
31
+ rmemo._ = _f(rmemo)
33
32
  } finally {
34
33
  cur_ref = prev_ref
35
34
  }
36
35
  }
37
36
  // allow self-referencing
38
37
  if (cur_ref && cur_ref !== _r) {
39
- // Math.max: bitwise is much faster on chrome
40
- // https://measurethat.net/Benchmarks/Show/28483/0/mathmax-vs-bitwise
41
- cur_ref.l = cur_ref.l ^ ((cur_ref.l ^ _r.l + 1) & -(cur_ref.l < _r.l + 1))
42
- rmemo$._rS.add(cur_ref)
38
+ cur_ref.l = cur_ref.l < _r.l + 1 ? _r.l + 1 : cur_ref.l
39
+ rmemo._rS.add(cur_ref)
43
40
  }
44
41
  return _a[0]
45
42
  },
46
43
  set(val) {
47
44
  if (!_a.length || val !== _a[0]) {
48
- rmemo$.refresh(val)
45
+ rmemo.refresh(val)
49
46
  }
50
47
  return val
51
48
  }
52
49
  })
53
- rmemo$.refresh = val=>{
50
+ rmemo.refresh = val=>{
54
51
  if (val !== _a[0]) {
55
52
  _a[0] = val
56
- rmemo$.onset(val)
53
+ rmemo.onset(val)
57
54
  let run_queue = !queue[0]
58
- for (let ref of rmemo$._rS) {
55
+ for (let ref of rmemo._rS) {
59
56
  if (!~queue.indexOf(ref)) queue.push(ref)
60
57
  }
61
- if (!rmemo$._sa) {
62
- rmemo$._sa = subscriber_a.map(subscriber=>
63
- rmemo_(()=>subscriber(rmemo$)).go())
58
+ if (!rmemo._sa) {
59
+ rmemo._sa = subscriber_a.map(subscriber=>
60
+ rmemo_(()=>subscriber(rmemo)).go())
64
61
  }
65
62
  if (run_queue) {
66
63
  for (let ref; ref = queue.shift();) {
67
64
  if (queue.some(_ref=>ref.l > _ref.l)) {
68
65
  queue.push(ref)
69
66
  } else {
70
- (ref.deref() || rmemo$._rS.delete)(ref)
67
+ (ref.deref() || rmemo._rS.delete)(ref)
71
68
  }
72
69
  }
73
70
  }
74
71
  }
75
- return rmemo$
76
72
  }
77
- return rmemo$
73
+ return rmemo
78
74
  }
79
75
  /**
80
76
  * @param {unknown}init_val
@@ -83,9 +79,9 @@ export function rmemo_(_f, ...subscriber_a) {
83
79
  * @private
84
80
  */
85
81
  export function rsig_(init_val, ...subscriber_a) {
86
- let signal$ =
82
+ let rsig =
87
83
  rmemo_(signal$=>signal$._v, ...subscriber_a)
88
- signal$.onset = val=>signal$._v = val
89
- signal$._v = init_val
90
- return signal$
84
+ rsig.onset = val=>rsig._v = val
85
+ rsig._v = init_val
86
+ return rsig
91
87
  }
package/all/sort/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../array_types/index.d.ts').compare_T}compare_T */
1
+ /** @typedef {import('../array_types/index.d.ts').compare_T} */
2
2
  /**
3
3
  * Sort items in `a` by the `compare` function
4
4
  * @param {unknown[]}a
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../array_types/index.d.ts').sort_idx_o_T}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
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../array_types/index.d.ts').sort_idx_o_T}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}eq_T */
3
- /** @typedef {import('../array_types/index.d.ts').sort_val_a__transition_a_frame_fn_T}sort_val_a__transition_a_frame_fn_T */
4
- /** @typedef {import('../array_types/index.d.ts').sort_val_a__transition_a_frame_T}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
@@ -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}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_]
@@ -1,5 +1,5 @@
1
1
  import { assign } from '../assign/index.js'
2
- /** @typedef {import('../weak_r/index.d.ts').weak_r_T}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')
@@ -1,4 +1,4 @@
1
- /** @typedef {import('../zip_with/index.d.ts').zip_with_fn_T}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
@@ -1,5 +1,3 @@
1
1
  export * from '../all/be/index.js'
2
2
  export * from '../all/be_/index.js'
3
- export * from '../all/be_arg_triple/index.js'
4
- export * from '../all/be_prop_pair/index.js'
5
3
  export * from '../all/ctx/index.js'
package/be/index.js CHANGED
@@ -1,5 +1,3 @@
1
1
  export * from '../all/be/index.js'
2
2
  export * from '../all/be_/index.js'
3
- export * from '../all/be_arg_triple/index.js'
4
- export * from '../all/be_prop_pair/index.js'
5
3
  export * from '../all/ctx/index.js'
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'