ctx-core 4.16.0 → 4.18.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.
@@ -27,15 +27,15 @@ test('be_|Map', ()=>{
27
27
  const ctx = ctx__new()
28
28
  let incrementer_num = 0
29
29
  const incrementer = ()=>++incrementer_num
30
- const root_ = be_(()=>{
31
- console.debug('root_|debug|1')
32
- return incrementer()
33
- }, { id: 'root_' })
34
- const child_ = be_(ctx=>{
35
- console.debug('child_|debug|1')
36
- return root_(ctx) + incrementer()
37
- }, { id: 'child_' })
38
- const child1_ = be_(ctx=>root_(ctx) + child_(ctx), { id: 'child1_' })
30
+ const root_ = be_(()=>
31
+ incrementer(),
32
+ { id: 'root_' })
33
+ const child_ = be_(ctx=>
34
+ root_(ctx) + incrementer(),
35
+ { id: 'child_' })
36
+ const child1_ = be_(ctx=>
37
+ root_(ctx) + child_(ctx),
38
+ { id: 'child1_' })
39
39
  equal(root_(ctx), 1)
40
40
  equal(ctx.get('root_'), 1)
41
41
  equal(child_(ctx), 3)
@@ -1,13 +1,13 @@
1
1
  import type { Be, be_config_T, Ctx } from '../be_/index.js'
2
- import type { rmemo_val_T, sig_T } from '../rmemo/index.js'
2
+ import type { rmemo_val_T, lock_memosig_T } from '../rmemo/index.js'
3
3
  export declare function be_lock_memosig_triple_<
4
4
  val_T,
5
- _sig_T extends sig_T<val_T> = sig_T<val_T>,
5
+ _sig_T extends lock_memosig_T<val_T> = lock_memosig_T<val_T>,
6
6
  ctx_T extends Ctx = Ctx
7
7
  >(be:Be<_sig_T, ctx_T>):be_lock_memosig_triple_T<val_T, _sig_T, ctx_T>
8
8
  export declare function be_lock_memosig_triple_<
9
9
  val_T,
10
- _sig_T extends sig_T<val_T> = sig_T<val_T>,
10
+ _sig_T extends lock_memosig_T<val_T> = lock_memosig_T<val_T>,
11
11
  ctx_T extends Ctx = Ctx
12
12
  >(
13
13
  rmemo__new:(ctx:Ctx, memosig:_sig_T)=>val_T,
@@ -17,7 +17,7 @@ export declare function be_lock_memosig_triple_<
17
17
  ):be_lock_memosig_triple_T<val_T, _sig_T, ctx_T>
18
18
  export declare function globalThis__be_lock_memosig_triple_<
19
19
  val_T,
20
- _sig_T extends sig_T<val_T> = sig_T<val_T>,
20
+ _sig_T extends lock_memosig_T<val_T> = lock_memosig_T<val_T>,
21
21
  ctx_T extends Ctx = Ctx
22
22
  >(
23
23
  rmemo__new:(ctx:Ctx, memosig:_sig_T)=>val_T,
@@ -26,7 +26,7 @@ export declare function globalThis__be_lock_memosig_triple_<
26
26
  ):be_lock_memosig_triple_T<val_T, _sig_T, ctx_T>
27
27
  export type be_lock_memosig_triple_T<
28
28
  val_T,
29
- _sig_T extends sig_T<val_T> = sig_T<val_T>,
29
+ _sig_T extends lock_memosig_T<val_T> = lock_memosig_T<val_T>,
30
30
  ctx_T extends Ctx = Ctx
31
31
  > = [
32
32
  Be<_sig_T>,
@@ -7,7 +7,7 @@ import { lock_memosig_ } from '../rmemo/index.js'
7
7
  /**
8
8
  * @param {Be<sig_T>|be__val__new_T<unknown>}be_OR_val__new
9
9
  * @param {rmemo_subscriber_T[]|[...rmemo_subscriber_T[], be_config_T]}subscriber_a_THEN_config
10
- * @returns {be_sig_triple_T}
10
+ * @returns {be_lock_memosig_triple_T}
11
11
  * @private
12
12
  */
13
13
  export function be_lock_memosig_triple_(
package/all/index.d.ts CHANGED
@@ -1,3 +1,13 @@
1
+ export * from './LessThan/index.js'
2
+ export * from './MAX_INT/index.js'
3
+ export * from './MIN_INT/index.js'
4
+ export * from './Map__object/index.js'
5
+ export * from './NumericRange/index.js'
6
+ export * from './NumericUnit/index.js'
7
+ export * from './PHI/index.js'
8
+ export * from './Request/index.js'
9
+ export * from './Response/index.js'
10
+ export * from './Timeout/index.js'
1
11
  export * from './a/index.js'
2
12
  export * from './a_assign/index.js'
3
13
  export * from './a_in_idx_a_map/index.js'
@@ -134,10 +144,10 @@ export * from './format_date_prose/index.js'
134
144
  export * from './format_utc_date_prose/index.js'
135
145
  export * from './globalThis__prop__ensure/index.js'
136
146
  export * from './gte_0_a/index.js'
147
+ export * from './hasOwnProperty_pick/index.js'
137
148
  export * from './has_key/index.js'
138
149
  export * from './has_multiple/index.js'
139
150
  export * from './has_some_key/index.js'
140
- export * from './hasOwnProperty_pick/index.js'
141
151
  export * from './head_arg_a/index.js'
142
152
  export * from './headers/index.js'
143
153
  export * from './hex__digest/index.js'
@@ -191,7 +201,6 @@ export * from './keys/index.js'
191
201
  export * from './last/index.js'
192
202
  export * from './left_and/index.js'
193
203
  export * from './left_or/index.js'
194
- export * from './LessThan/index.js'
195
204
  export * from './lte_0_a/index.js'
196
205
  export * from './m_m_yyyy/index.js'
197
206
  export * from './m_yy/index.js'
@@ -199,7 +208,6 @@ export * from './m_yyyy/index.js'
199
208
  export * from './many_andand/index.js'
200
209
  export * from './many_andand_or/index.js'
201
210
  export * from './map/index.js'
202
- export * from './Map__object/index.js'
203
211
  export * from './map_andand/index.js'
204
212
  export * from './map_andand_or/index.js'
205
213
  export * from './map_andandfn/index.js'
@@ -214,12 +222,10 @@ export * from './matrix__dot/index.js'
214
222
  export * from './matrix__dot__scalar/index.js'
215
223
  export * from './matrix__normalize/index.js'
216
224
  export * from './matrix__validate_length/index.js'
217
- export * from './MAX_INT/index.js'
218
225
  export * from './maybe/index.js'
219
226
  export * from './mean/index.js'
220
227
  export * from './median/index.js'
221
228
  export * from './merge/index.js'
222
- export * from './MIN_INT/index.js'
223
229
  export * from './minute/index.js'
224
230
  export * from './minute/index.js'
225
231
  export * from './minute_seconds/index.js'
@@ -258,8 +264,6 @@ export * from './number_or_mdash_str/index.js'
258
264
  export * from './numerator_or_0_avg/index.js'
259
265
  export * from './numerator_or_0_sum/index.js'
260
266
  export * from './numeric_range/index.js'
261
- export * from './NumericRange/index.js'
262
- export * from './NumericUnit/index.js'
263
267
  export * from './o_a_present/index.js'
264
268
  export * from './o_a_present/index.js'
265
269
  export * from './o_some/index.js'
@@ -283,7 +287,6 @@ export * from './pathname/index.js'
283
287
  export * from './percentage_str/index.js'
284
288
  export * from './percentage_str_float/index.js'
285
289
  export * from './performance__now/index.js'
286
- export * from './PHI/index.js'
287
290
  export * from './pick/index.js'
288
291
  export * from './pick_keys/index.js'
289
292
  export * from './pick_val_a/index.js'
@@ -309,10 +312,8 @@ export * from './reduce/index.js'
309
312
  export * from './reject/index.js'
310
313
  export * from './remove/index.js'
311
314
  export * from './remove_idx/index.js'
312
- export * from './Request/index.js'
313
315
  export * from './resolver_curry/index.js'
314
316
  export * from './resolver_curry/index.js'
315
- export * from './Response/index.js'
316
317
  export * from './response_o/index.js'
317
318
  export * from './response_pair/index.js'
318
319
  export * from './reverse/index.js'
@@ -351,12 +352,12 @@ export * from './stacktrace/index.js'
351
352
  export * from './std/index.js'
352
353
  export * from './sub/index.js'
353
354
  export * from './tap/index.js'
355
+ export * from './tempfile_path/index.js'
354
356
  export * from './tf/index.js'
355
357
  export * from './throttle/index.js'
356
358
  export * from './tick/index.js'
357
359
  export * from './timedout/index.js'
358
360
  export * from './timedout/index.js'
359
- export * from './Timeout/index.js'
360
361
  export * from './timeout_promise/index.js'
361
362
  export * from './times/index.js'
362
363
  export * from './timestamp_ms/index.js'
@@ -379,9 +380,9 @@ export * from './url_basename/index.js'
379
380
  export * from './url_segment/index.js'
380
381
  export * from './url_segment/index.js'
381
382
  export * from './urn_url/index.js'
382
- export * from './utc_m_yy/index.js'
383
- export * from './utc_M_yyyy/index.js'
384
383
  export * from './utc_MM_yyyy/index.js'
384
+ export * from './utc_M_yyyy/index.js'
385
+ export * from './utc_m_yy/index.js'
385
386
  export * from './utc_yyyymmdd/index.js'
386
387
  export * from './utc_yyyymmddhhmmss/index.js'
387
388
  export * from './uuid/index.js'
package/all/index.js CHANGED
@@ -1,3 +1,13 @@
1
+ export * from './LessThan/index.js'
2
+ export * from './MAX_INT/index.js'
3
+ export * from './MIN_INT/index.js'
4
+ export * from './Map__object/index.js'
5
+ export * from './NumericRange/index.js'
6
+ export * from './NumericUnit/index.js'
7
+ export * from './PHI/index.js'
8
+ export * from './Request/index.js'
9
+ export * from './Response/index.js'
10
+ export * from './Timeout/index.js'
1
11
  export * from './a/index.js'
2
12
  export * from './a_assign/index.js'
3
13
  export * from './a_in_idx_a_map/index.js'
@@ -134,10 +144,10 @@ export * from './format_date_prose/index.js'
134
144
  export * from './format_utc_date_prose/index.js'
135
145
  export * from './globalThis__prop__ensure/index.js'
136
146
  export * from './gte_0_a/index.js'
147
+ export * from './hasOwnProperty_pick/index.js'
137
148
  export * from './has_key/index.js'
138
149
  export * from './has_multiple/index.js'
139
150
  export * from './has_some_key/index.js'
140
- export * from './hasOwnProperty_pick/index.js'
141
151
  export * from './head_arg_a/index.js'
142
152
  export * from './headers/index.js'
143
153
  export * from './hex__digest/index.js'
@@ -191,7 +201,6 @@ export * from './keys/index.js'
191
201
  export * from './last/index.js'
192
202
  export * from './left_and/index.js'
193
203
  export * from './left_or/index.js'
194
- export * from './LessThan/index.js'
195
204
  export * from './lte_0_a/index.js'
196
205
  export * from './m_m_yyyy/index.js'
197
206
  export * from './m_yy/index.js'
@@ -199,7 +208,6 @@ export * from './m_yyyy/index.js'
199
208
  export * from './many_andand/index.js'
200
209
  export * from './many_andand_or/index.js'
201
210
  export * from './map/index.js'
202
- export * from './Map__object/index.js'
203
211
  export * from './map_andand/index.js'
204
212
  export * from './map_andand_or/index.js'
205
213
  export * from './map_andandfn/index.js'
@@ -214,12 +222,10 @@ export * from './matrix__dot/index.js'
214
222
  export * from './matrix__dot__scalar/index.js'
215
223
  export * from './matrix__normalize/index.js'
216
224
  export * from './matrix__validate_length/index.js'
217
- export * from './MAX_INT/index.js'
218
225
  export * from './maybe/index.js'
219
226
  export * from './mean/index.js'
220
227
  export * from './median/index.js'
221
228
  export * from './merge/index.js'
222
- export * from './MIN_INT/index.js'
223
229
  export * from './minute/index.js'
224
230
  export * from './minute/index.js'
225
231
  export * from './minute_seconds/index.js'
@@ -258,8 +264,6 @@ export * from './number_or_mdash_str/index.js'
258
264
  export * from './numerator_or_0_avg/index.js'
259
265
  export * from './numerator_or_0_sum/index.js'
260
266
  export * from './numeric_range/index.js'
261
- export * from './NumericRange/index.js'
262
- export * from './NumericUnit/index.js'
263
267
  export * from './o_a_present/index.js'
264
268
  export * from './o_a_present/index.js'
265
269
  export * from './o_some/index.js'
@@ -283,7 +287,6 @@ export * from './pathname/index.js'
283
287
  export * from './percentage_str/index.js'
284
288
  export * from './percentage_str_float/index.js'
285
289
  export * from './performance__now/index.js'
286
- export * from './PHI/index.js'
287
290
  export * from './pick/index.js'
288
291
  export * from './pick_keys/index.js'
289
292
  export * from './pick_val_a/index.js'
@@ -309,10 +312,8 @@ export * from './reduce/index.js'
309
312
  export * from './reject/index.js'
310
313
  export * from './remove/index.js'
311
314
  export * from './remove_idx/index.js'
312
- export * from './Request/index.js'
313
315
  export * from './resolver_curry/index.js'
314
316
  export * from './resolver_curry/index.js'
315
- export * from './Response/index.js'
316
317
  export * from './response_o/index.js'
317
318
  export * from './response_pair/index.js'
318
319
  export * from './reverse/index.js'
@@ -351,12 +352,12 @@ export * from './stacktrace/index.js'
351
352
  export * from './std/index.js'
352
353
  export * from './sub/index.js'
353
354
  export * from './tap/index.js'
355
+ export * from './tempfile_path/index.js'
354
356
  export * from './tf/index.js'
355
357
  export * from './throttle/index.js'
356
358
  export * from './tick/index.js'
357
359
  export * from './timedout/index.js'
358
360
  export * from './timedout/index.js'
359
- export * from './Timeout/index.js'
360
361
  export * from './timeout_promise/index.js'
361
362
  export * from './times/index.js'
362
363
  export * from './timestamp_ms/index.js'
@@ -379,9 +380,9 @@ export * from './url_basename/index.js'
379
380
  export * from './url_segment/index.js'
380
381
  export * from './url_segment/index.js'
381
382
  export * from './urn_url/index.js'
382
- export * from './utc_m_yy/index.js'
383
- export * from './utc_M_yyyy/index.js'
384
383
  export * from './utc_MM_yyyy/index.js'
384
+ export * from './utc_M_yyyy/index.js'
385
+ export * from './utc_m_yy/index.js'
385
386
  export * from './utc_yyyymmdd/index.js'
386
387
  export * from './utc_yyyymmddhhmmss/index.js'
387
388
  export * from './uuid/index.js'
@@ -16,7 +16,7 @@ export declare function lock_memosig_<val_T>(
16
16
  ):sig_T<val_T>
17
17
  export declare function on(rmemo:rmemo_T<unknown>):void
18
18
  export declare function off(rmemo:rmemo_T<unknown>):void
19
- export type rmemo_T<val_T> = memo_T<val_T>|sig_T<val_T>
19
+ export type rmemo_T<val_T> = memo_T<val_T>|sig_T<val_T>|lock_memosig_T<val_T>
20
20
  export type memo_T<val_T> = (()=>val_T)&{
21
21
  readonly _:val_T
22
22
  readonly val:val_T
@@ -29,6 +29,9 @@ export type sig_T<val_T> = (()=>val_T)&{
29
29
  r?:WeakRef<()=>val_T>
30
30
  memor:WeakRef<()=>val_T>[]
31
31
  }
32
+ export type lock_memosig_T<val_T> = sig_T<val_T>&{
33
+ lock?:0|1
34
+ }
32
35
  export type rmemo_val_T<sig_T> = sig_T extends { ():infer val_T }
33
36
  ? val_T
34
37
  : unknown
@@ -88,12 +88,12 @@ export { memo_ as memosig_ }
88
88
  export function lock_memosig_(memo_def, ...subscriber_a) {
89
89
  return new Proxy(
90
90
  /** @type {sig_T} */memo_(memo=>
91
- memo.c ? memo._ : memo_def(memo),
91
+ memo.lock ? memo._ : memo_def(memo),
92
92
  ...subscriber_a),
93
93
  {
94
94
  set(memo, prop, val) {
95
95
  if (prop === '_') {
96
- memo.c = 1
96
+ memo.lock = 1
97
97
  memo._ = val
98
98
  }
99
99
  return 1
@@ -114,7 +114,6 @@ export function sig_(init_val, ...subscriber_a) {
114
114
  },
115
115
  ...subscriber_a)
116
116
  }
117
- // TODO: lock_memosig_
118
117
  /**
119
118
  * Call the rmemo & enable updates from it's parents.
120
119
  * @param {rmemo_T}rmemo
@@ -0,0 +1,5 @@
1
+ export declare function tempfile_path_(
2
+ dir_path?:string,
3
+ extension?:string,
4
+ ):Promise<string>
5
+ export { tempfile_path_ as tempfile_ }
@@ -0,0 +1,33 @@
1
+ import { crypto_ } from '../crypto/index.js'
2
+ import { url__join } from '../url__join/index.js'
3
+ /**
4
+ * @param {string}[dir_path]
5
+ * @param {string}[extension]
6
+ * @returns {Promise<string>}
7
+ * @private
8
+ */
9
+ export async function tempfile_path_(
10
+ dir_path,
11
+ extension = ''
12
+ ) {
13
+ if (dir_path == null) {
14
+ dir_path =
15
+ typeof window === 'undefined'
16
+ ? await import('fs/promises')
17
+ .then(fs=>
18
+ import('os')
19
+ .then(os=>
20
+ fs.realpath(os.tmpdir())))
21
+ : null
22
+ }
23
+ const crypto = await crypto_()
24
+ return url__join([
25
+ ...(dir_path ? [dir_path] : []),
26
+ `${crypto.randomUUID()}${
27
+ extension
28
+ ? extension.startsWith('.') ? extension : `.${extension}`
29
+ : ''
30
+ }`
31
+ ])
32
+ }
33
+ export { tempfile_path_ as tempfile_ }
@@ -0,0 +1,11 @@
1
+ import { readFile, writeFile } from 'fs/promises'
2
+ import { test } from 'uvu'
3
+ import { equal } from 'uvu/assert'
4
+ import { tempfile_path_ } from './index'
5
+ test('tempfile_', async ()=>{
6
+ const tempfile = await tempfile_path_()
7
+ await writeFile(tempfile, 'the content')
8
+ const content = await readFile(tempfile).then(buf=>buf.toString())
9
+ equal(content, 'the content')
10
+ })
11
+ test.run()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctx-core",
3
- "version": "4.16.0",
3
+ "version": "4.18.0",
4
4
  "description": "ctx-core core library",
5
5
  "keywords": [
6
6
  "ctx-core",
@@ -57,6 +57,7 @@
57
57
  "set",
58
58
  "sleep",
59
59
  "string",
60
+ "tempfile",
60
61
  "time",
61
62
  "types",
62
63
  "uri",
@@ -98,6 +99,7 @@
98
99
  "./set": "./set/index.js",
99
100
  "./sleep": "./sleep/index.js",
100
101
  "./string": "./string/index.js",
102
+ "./tempfile": "./tempfile/index.js",
101
103
  "./time": "./time/index.js",
102
104
  "./types": "./types/index.js",
103
105
  "./uri": "./uri/index.js",
@@ -0,0 +1 @@
1
+ export * from '../all/tempfile_path/index.js'
@@ -0,0 +1 @@
1
+ export * from '../all/tempfile_path/index.js'