ctx-core 5.19.1 → 5.20.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.
@@ -0,0 +1,25 @@
1
+ import type { Ctx } from '../be_/index.js'
2
+ import type { be_memo_pair_T } from '../be_memo_pair/index.js'
3
+ import type { be_sig_triple_T } from '../be_sig_triple/index.js'
4
+ import type { memo_T } from '../rmemo/index.js'
5
+ export declare const [
6
+ event_log$_,
7
+ event_log_
8
+ ]:be_memo_pair_T<event_log__T>
9
+ export { event_log$_ as event_log__ }
10
+ export declare function event_log__add<I = unknown>(
11
+ ctx:Ctx,
12
+ record:event_log_record_T<I>
13
+ ):void
14
+ export declare const [
15
+ event_log_limit$_,
16
+ event_log_limit_,
17
+ event_log_limit__set,
18
+ ]:be_sig_triple_T<number>
19
+ export declare function event_log__set_limit(ctx:Ctx, limit:number):void
20
+ export interface event_log_record_T<I = unknown> extends Record<string, I> {}
21
+ export declare type event_log_T<I = unknown> = event_log_record_T<I>[]
22
+ export declare type event_log_add_T<I = unknown> =
23
+ (record:event_log_record_T<I>)=>event_log_T<I>
24
+ export declare type event_log_set_limit_T = (in_limit:number)=>void
25
+ export type event_log__T<I = unknown> = memo_T<event_log_T<I>>
@@ -0,0 +1,26 @@
1
+ import { be_memo_pair_ } from '../be_memo_pair/index.js'
2
+ import { be_sig_triple_ } from '../be_sig_triple/index.js'
3
+ const [
4
+ ,
5
+ _event_log_,
6
+ _event_log__set,
7
+ ] = be_sig_triple_(()=>[])
8
+ export const [
9
+ event_log$_,
10
+ event_log_,
11
+ ] = be_memo_pair_(ctx=>{
12
+ if (_event_log_(ctx)?.length > event_log_limit_(ctx)) {
13
+ _event_log_(ctx).splice(event_log_limit_(ctx))
14
+ }
15
+ return _event_log_(ctx).slice()
16
+ }, { id: 'event_log' })
17
+ export { event_log$_ as event_log__ }
18
+ export const [
19
+ event_log_limit$_,
20
+ event_log_limit_,
21
+ event_log_limit__set
22
+ ] = be_sig_triple_(()=>10000)
23
+ export { event_log_limit__set as event_log__set_limit, }
24
+ export function event_log__add(ctx, record) {
25
+ _event_log__set(ctx, [record, ..._event_log_(ctx)])
26
+ }
@@ -0,0 +1,20 @@
1
+ import { test } from 'uvu'
2
+ import { equal } from 'uvu/assert'
3
+ import { ctx__new } from '../ctx/index.js'
4
+ import { event_log_, event_log__add, event_log_limit_, event_log_limit__set } from './index.js'
5
+ test('event_log_', ()=>{
6
+ const ctx = ctx__new()
7
+ equal(event_log_(ctx), [])
8
+ event_log__add(ctx, { msg: 'msg0' })
9
+ equal(event_log_(ctx), [{ msg: 'msg0' }])
10
+ event_log__add(ctx, { msg: 'msg1' })
11
+ equal(event_log_(ctx), [{ msg: 'msg1' }, { msg: 'msg0' }])
12
+ event_log__add(ctx, { msg: 'msg2' })
13
+ equal(event_log_(ctx), [{ msg: 'msg2' }, { msg: 'msg1' }, { msg: 'msg0' }])
14
+ event_log_limit__set(ctx, 2)
15
+ equal(event_log_limit_(ctx), 2)
16
+ equal(event_log_(ctx), [{ msg: 'msg2' }, { msg: 'msg1' }])
17
+ event_log__add(ctx, { msg: 'msg3' })
18
+ equal(event_log_(ctx), [{ msg: 'msg3' }, { msg: 'msg2' }])
19
+ })
20
+ test.run()
@@ -64,7 +64,4 @@ export function fn_pipe<A, B, C, D, E, F, G, H, I, J, K>(
64
64
  _6:($:G)=>H,
65
65
  _7:($:H)=>I,
66
66
  _8:($:I
67
- )=>J, ...args:(($:any)=>any)[]):K
68
- export {
69
- fn_pipe as _p_,
70
- }
67
+ )=>J, ...args:(($:unknown)=>unknown)[]):K
@@ -5,7 +5,3 @@
5
5
  export function fn_pipe(...args) {
6
6
  return args.reduce((acc, el)=>el(acc))
7
7
  }
8
- export {
9
- fn_pipe as _p_,
10
- fn_pipe as P,
11
- }
@@ -1,18 +1,14 @@
1
1
  import { test } from 'uvu'
2
2
  import { equal, is } from 'uvu/assert'
3
- import { _p_, fn_pipe } from '../fn_pipe/index.js'
3
+ import { fn_pipe } from '../fn_pipe/index.js'
4
4
  test('fn_pipe|synchronous', ()=>{
5
5
  const o = {}
6
6
  is(o, fn_pipe(o, $=>$))
7
7
  equal({ foo: 'bar', o }, fn_pipe(o, $=>$, o=>({ foo: 'bar', o })))
8
- is(o, _p_(o, $=>$))
9
- equal({ foo: 'bar', o }, _p_(o, $=>$, o=>({ foo: 'bar', o })))
10
8
  })
11
9
  test('fn_pipe|async', async ()=>{
12
10
  const o = { one: 1 }
13
11
  equal({ one: 1, foo: 'bar', baz: 'quux' },
14
12
  await fn_pipe(o, async ()=>({ ...o, foo: 'bar' }), $=>$.then($=>({ ...$, baz: 'quux' }))))
15
- equal({ one: 1, foo: 'bar', baz: 'quux' },
16
- await _p_(o, async ()=>({ ...o, foo: 'bar' }), $=>$.then($=>({ ...$, baz: 'quux' }))))
17
13
  })
18
14
  test.run()
package/all/index.d.ts CHANGED
@@ -129,6 +129,7 @@ export * from './eql_fn_a/index.js'
129
129
  export * from './equidistant_segment_point_a/index.js'
130
130
  export * from './error__print/index.js'
131
131
  export * from './error_o/index.js'
132
+ export * from './event_log/index.js'
132
133
  export * from './every/index.js'
133
134
  export * from './every_arg/index.js'
134
135
  export * from './exclude/index.js'
package/all/index.js CHANGED
@@ -129,6 +129,7 @@ export * from './eql_fn_a/index.js'
129
129
  export * from './equidistant_segment_point_a/index.js'
130
130
  export * from './error__print/index.js'
131
131
  export * from './error_o/index.js'
132
+ export * from './event_log/index.js'
132
133
  export * from './every/index.js'
133
134
  export * from './every_arg/index.js'
134
135
  export * from './exclude/index.js'
@@ -0,0 +1 @@
1
+ export * from '../all/event_log/index.js'
@@ -0,0 +1 @@
1
+ export * from '../all/event_log/index.js'
@@ -1,4 +1,9 @@
1
+ import { fn_pipe } from '../all/fn_pipe/index.js'
1
2
  import { run } from '../all/run/index.js'
3
+ export {
4
+ fn_pipe as _p_,
5
+ fn_pipe as P,
6
+ }
2
7
  export { run as _ }
3
8
  export * from '../all/LessThan/index.js'
4
9
  export * from '../all/NumericRange/index.js'
package/function/index.js CHANGED
@@ -1,4 +1,9 @@
1
+ import { fn_pipe } from '../all/fn_pipe/index.js'
1
2
  import { run } from '../all/run/index.js'
3
+ export {
4
+ fn_pipe as _p_,
5
+ fn_pipe as P,
6
+ }
2
7
  export { run as _ }
3
8
  export * from '../all/LessThan/index.js'
4
9
  export * from '../all/NumericRange/index.js'
package/package.json CHANGED
@@ -1,251 +1,254 @@
1
1
  {
2
- "name": "ctx-core",
3
- "version": "5.19.1",
4
- "description": "ctx-core core library",
5
- "keywords": [
6
- "ctx-core",
7
- "array",
8
- "combinators",
9
- "function",
10
- "object",
11
- "set"
12
- ],
13
- "homepage": "https://github.com/ctx-core/ctx-core#readme",
14
- "bugs": {
15
- "url": "https://github.com/ctx-core/ctx-core/issues"
16
- },
17
- "repository": {
18
- "type": "git",
19
- "url": "https://github.com/ctx-core/ctx-core.git"
20
- },
21
- "license": "Apache-2.0",
22
- "author": "Brian Takita",
23
- "type": "module",
24
- "files": [
25
- "*.d.ts",
26
- "*.js",
27
- "*.json",
28
- "all",
29
- "array",
30
- "atob",
31
- "base16",
32
- "be",
33
- "btoa",
34
- "buffer",
35
- "chain",
36
- "class",
37
- "cli-args",
38
- "color",
39
- "combinators",
40
- "crypto",
41
- "currency",
42
- "data",
43
- "date",
44
- "debounce",
45
- "deep_equal",
46
- "env",
47
- "error",
48
- "falsy",
49
- "fetch",
50
- "fibonacci",
51
- "fs",
52
- "function",
53
- "functional",
54
- "html",
55
- "http",
56
- "math",
57
- "matrix",
58
- "nullish",
59
- "number",
60
- "object",
61
- "promise",
62
- "queue",
63
- "random",
64
- "regex",
65
- "rmemo",
66
- "run",
67
- "set",
68
- "sleep",
69
- "stream",
70
- "string",
71
- "tempfile",
72
- "test",
73
- "time",
74
- "tuple",
75
- "types",
76
- "uri",
77
- "uuid",
78
- "package.json"
79
- ],
80
- "exports": {
81
- ".": "./index.js",
82
- "./all": "./all/index.js",
83
- "./array": "./array/index.js",
84
- "./atob": "./atob/index.js",
85
- "./base16": "./base16/index.js",
86
- "./be": "./be/index.js",
87
- "./btoa": "./btoa/index.js",
88
- "./buffer": "./buffer/index.js",
89
- "./chain": "./chain/index.js",
90
- "./class": "./class/index.js",
91
- "./cli-args": "./cli-args/index.js",
92
- "./color": "./color/index.js",
93
- "./combinators": "./combinators/index.js",
94
- "./crypto": "./crypto/index.js",
95
- "./currency": "./currency/index.js",
96
- "./data": "./data/index.js",
97
- "./date": "./date/index.js",
98
- "./debounce": "./debounce/index.js",
99
- "./deep_equal": "./deep_equal/index.js",
100
- "./env": "./env/index.js",
101
- "./error": "./error/index.js",
102
- "./falsy": "./falsy/index.js",
103
- "./fetch": "./fetch/index.js",
104
- "./fibonacci": "./fibonacci/index.js",
105
- "./fs": "./fs/index.js",
106
- "./function": "./function/index.js",
107
- "./functional": "./functional/index.js",
108
- "./html": "./html/index.js",
109
- "./http": "./http/index.js",
110
- "./math": "./math/index.js",
111
- "./matrix": "./matrix/index.js",
112
- "./nullish": "./nullish/index.js",
113
- "./number": "./number/index.js",
114
- "./object": "./object/index.js",
115
- "./promise": "./promise/index.js",
116
- "./queue": "./queue/index.js",
117
- "./random": "./random/index.js",
118
- "./regex": "./regex/index.js",
119
- "./rmemo": "./rmemo/index.js",
120
- "./run": "./run/index.js",
121
- "./set": "./set/index.js",
122
- "./sleep": "./sleep/index.js",
123
- "./stream": "./stream/index.js",
124
- "./string": "./string/index.js",
125
- "./tempfile": "./tempfile/index.js",
126
- "./test": "./test/index.js",
127
- "./time": "./time/index.js",
128
- "./tuple": "./tuple/index.js",
129
- "./types": "./types/index.js",
130
- "./uri": "./uri/index.js",
131
- "./uuid": "./uuid/index.js",
132
- "./package.json": "./package.json"
133
- },
134
- "devDependencies": {
135
- "@arethetypeswrong/cli": "^0.13.5",
136
- "@ctx-core/preprocess": "^0.1.1",
137
- "@size-limit/preset-small-lib": "^11.0.2",
138
- "@types/node": "^20.11.4",
139
- "@types/sinon": "^17.0.3",
140
- "c8": "^9.1.0",
141
- "check-dts": "^0.7.2",
142
- "esbuild": "^0.19.11",
143
- "esmock": "^2.6.2",
144
- "sinon": "^17.0.1",
145
- "size-limit": "^11.0.2",
146
- "tsx": "^4.7.0",
147
- "typescript": "next",
148
- "uvu": "^0.5.6"
149
- },
150
- "publishConfig": {
151
- "access": "public",
152
- "cache": "~/.npm"
153
- },
154
- "sideEffects": false,
155
- "size-limit": [
156
- {
157
- "name": "ctx_",
158
- "import": {
159
- "./be": "{ ctx_ }"
160
- },
161
- "limit": "33 B"
162
- },
163
- {
164
- "name": "ns_ctx_",
165
- "import": {
166
- "./be": "{ ns_ctx_ }"
167
- },
168
- "limit": "85 B"
169
- },
170
- {
171
- "name": "be_",
172
- "import": {
173
- "./be": "{ be_ }"
174
- },
175
- "limit": "99 B"
176
- },
177
- {
178
- "name": "be_ ctx_",
179
- "import": {
180
- "./be": "{ be_, ctx_ }"
181
- },
182
- "limit": "131 B"
183
- },
184
- {
185
- "name": "be_ ns_ctx_",
186
- "import": {
187
- "./be": "{ be_, ctx_, ns_ctx_ }"
188
- },
189
- "limit": "190 B"
190
- },
191
- {
192
- "name": "be_ ctx_ ns_ctx_",
193
- "import": {
194
- "./be": "{ be_, ctx_, ns_ctx_ }"
195
- },
196
- "limit": "190 B"
197
- },
198
- {
199
- "name": "memo_",
200
- "import": {
201
- "./rmemo": "{ memo_ }"
202
- },
203
- "limit": "352 B"
204
- },
205
- {
206
- "name": "memo_ sig_",
207
- "import": {
208
- "./rmemo": "{ sig_, memo_ }"
209
- },
210
- "limit": "370 B"
211
- },
212
- {
213
- "name": "memo_ sig_ be_ ctx_",
214
- "import": {
215
- "./rmemo": "{ sig_, memo_, be_, ctx_ }"
216
- },
217
- "limit": "471 B"
218
- },
219
- {
220
- "name": "memo_ sig_ be_ ctx_ be_memo_pair_ be_sig_triple_",
221
- "import": {
222
- "./rmemo": "{ sig_, memo_, be_, ctx_, be_memo_pair_, be_sig_triple_ }"
223
- },
224
- "limit": "576 B"
225
- },
226
- {
227
- "name": "uuid",
228
- "import": {
229
- "./uuid": "{ uuid_ }"
230
- },
231
- "limit": "39 B"
232
- },
233
- {
234
- "name": "short uuid",
235
- "import": {
236
- "./uuid": "{ short_uuid_ }"
237
- },
238
- "limit": "116 B"
239
- }
240
- ],
241
- "scripts": {
242
- "build": ":",
243
- "clean": ":",
244
- "exec": "$@",
245
- "test": "pnpm run /^test:/",
246
- "test:size": "size-limit",
247
- "test:type": "check-dts",
248
- "test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
249
- "disable:test:coverage": "c8 pnpm test:unit"
250
- }
251
- }
2
+ "name": "ctx-core",
3
+ "version": "5.20.0",
4
+ "description": "ctx-core core library",
5
+ "keywords": [
6
+ "ctx-core",
7
+ "array",
8
+ "combinators",
9
+ "function",
10
+ "object",
11
+ "set"
12
+ ],
13
+ "homepage": "https://github.com/ctx-core/ctx-core#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/ctx-core/ctx-core/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/ctx-core/ctx-core.git"
20
+ },
21
+ "license": "Apache-2.0",
22
+ "author": "Brian Takita",
23
+ "type": "module",
24
+ "files": [
25
+ "*.d.ts",
26
+ "*.js",
27
+ "*.json",
28
+ "all",
29
+ "array",
30
+ "atob",
31
+ "base16",
32
+ "be",
33
+ "btoa",
34
+ "buffer",
35
+ "chain",
36
+ "class",
37
+ "cli-args",
38
+ "color",
39
+ "combinators",
40
+ "crypto",
41
+ "currency",
42
+ "data",
43
+ "date",
44
+ "debounce",
45
+ "deep_equal",
46
+ "env",
47
+ "error",
48
+ "event_log",
49
+ "falsy",
50
+ "fetch",
51
+ "fibonacci",
52
+ "fs",
53
+ "function",
54
+ "functional",
55
+ "html",
56
+ "http",
57
+ "math",
58
+ "matrix",
59
+ "nullish",
60
+ "number",
61
+ "object",
62
+ "promise",
63
+ "queue",
64
+ "random",
65
+ "regex",
66
+ "rmemo",
67
+ "run",
68
+ "set",
69
+ "sleep",
70
+ "stream",
71
+ "string",
72
+ "tempfile",
73
+ "test",
74
+ "time",
75
+ "tuple",
76
+ "types",
77
+ "uri",
78
+ "uuid",
79
+ "package.json"
80
+ ],
81
+ "exports": {
82
+ ".": "./index.js",
83
+ "./all": "./all/index.js",
84
+ "./array": "./array/index.js",
85
+ "./atob": "./atob/index.js",
86
+ "./base16": "./base16/index.js",
87
+ "./be": "./be/index.js",
88
+ "./btoa": "./btoa/index.js",
89
+ "./buffer": "./buffer/index.js",
90
+ "./chain": "./chain/index.js",
91
+ "./class": "./class/index.js",
92
+ "./cli-args": "./cli-args/index.js",
93
+ "./color": "./color/index.js",
94
+ "./combinators": "./combinators/index.js",
95
+ "./crypto": "./crypto/index.js",
96
+ "./currency": "./currency/index.js",
97
+ "./data": "./data/index.js",
98
+ "./date": "./date/index.js",
99
+ "./debounce": "./debounce/index.js",
100
+ "./deep_equal": "./deep_equal/index.js",
101
+ "./env": "./env/index.js",
102
+ "./error": "./error/index.js",
103
+ "./event_log": "./event_log/index.js",
104
+ "./falsy": "./falsy/index.js",
105
+ "./fetch": "./fetch/index.js",
106
+ "./fibonacci": "./fibonacci/index.js",
107
+ "./fs": "./fs/index.js",
108
+ "./function": "./function/index.js",
109
+ "./functional": "./functional/index.js",
110
+ "./html": "./html/index.js",
111
+ "./http": "./http/index.js",
112
+ "./math": "./math/index.js",
113
+ "./matrix": "./matrix/index.js",
114
+ "./nullish": "./nullish/index.js",
115
+ "./number": "./number/index.js",
116
+ "./object": "./object/index.js",
117
+ "./promise": "./promise/index.js",
118
+ "./queue": "./queue/index.js",
119
+ "./random": "./random/index.js",
120
+ "./regex": "./regex/index.js",
121
+ "./rmemo": "./rmemo/index.js",
122
+ "./run": "./run/index.js",
123
+ "./set": "./set/index.js",
124
+ "./sleep": "./sleep/index.js",
125
+ "./stream": "./stream/index.js",
126
+ "./string": "./string/index.js",
127
+ "./tempfile": "./tempfile/index.js",
128
+ "./test": "./test/index.js",
129
+ "./time": "./time/index.js",
130
+ "./tuple": "./tuple/index.js",
131
+ "./types": "./types/index.js",
132
+ "./uri": "./uri/index.js",
133
+ "./uuid": "./uuid/index.js",
134
+ "./package.json": "./package.json"
135
+ },
136
+ "scripts": {
137
+ "build": ":",
138
+ "clean": ":",
139
+ "exec": "$@",
140
+ "prepublishOnly": "pnpm clean && pnpm build && pnpm test",
141
+ "test": "pnpm run /^test:/",
142
+ "test:size": "size-limit",
143
+ "test:type": "check-dts",
144
+ "test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
145
+ "disable:test:coverage": "c8 pnpm test:unit"
146
+ },
147
+ "devDependencies": {
148
+ "@arethetypeswrong/cli": "^0.13.5",
149
+ "@ctx-core/preprocess": "^0.1.1",
150
+ "@size-limit/preset-small-lib": "^11.0.2",
151
+ "@types/node": "^20.11.4",
152
+ "@types/sinon": "^17.0.3",
153
+ "c8": "^9.1.0",
154
+ "check-dts": "^0.7.2",
155
+ "esbuild": "^0.19.11",
156
+ "esmock": "^2.6.2",
157
+ "sinon": "^17.0.1",
158
+ "size-limit": "^11.0.2",
159
+ "tsx": "^4.7.0",
160
+ "typescript": "next",
161
+ "uvu": "^0.5.6"
162
+ },
163
+ "publishConfig": {
164
+ "access": "public",
165
+ "cache": "~/.npm"
166
+ },
167
+ "sideEffects": false,
168
+ "size-limit": [
169
+ {
170
+ "name": "ctx_",
171
+ "import": {
172
+ "./be": "{ ctx_ }"
173
+ },
174
+ "limit": "33 B"
175
+ },
176
+ {
177
+ "name": "ns_ctx_",
178
+ "import": {
179
+ "./be": "{ ns_ctx_ }"
180
+ },
181
+ "limit": "85 B"
182
+ },
183
+ {
184
+ "name": "be_",
185
+ "import": {
186
+ "./be": "{ be_ }"
187
+ },
188
+ "limit": "99 B"
189
+ },
190
+ {
191
+ "name": "be_ ctx_",
192
+ "import": {
193
+ "./be": "{ be_, ctx_ }"
194
+ },
195
+ "limit": "131 B"
196
+ },
197
+ {
198
+ "name": "be_ ns_ctx_",
199
+ "import": {
200
+ "./be": "{ be_, ctx_, ns_ctx_ }"
201
+ },
202
+ "limit": "190 B"
203
+ },
204
+ {
205
+ "name": "be_ ctx_ ns_ctx_",
206
+ "import": {
207
+ "./be": "{ be_, ctx_, ns_ctx_ }"
208
+ },
209
+ "limit": "190 B"
210
+ },
211
+ {
212
+ "name": "memo_",
213
+ "import": {
214
+ "./rmemo": "{ memo_ }"
215
+ },
216
+ "limit": "352 B"
217
+ },
218
+ {
219
+ "name": "memo_ sig_",
220
+ "import": {
221
+ "./rmemo": "{ sig_, memo_ }"
222
+ },
223
+ "limit": "370 B"
224
+ },
225
+ {
226
+ "name": "memo_ sig_ be_ ctx_",
227
+ "import": {
228
+ "./rmemo": "{ sig_, memo_, be_, ctx_ }"
229
+ },
230
+ "limit": "471 B"
231
+ },
232
+ {
233
+ "name": "memo_ sig_ be_ ctx_ be_memo_pair_ be_sig_triple_",
234
+ "import": {
235
+ "./rmemo": "{ sig_, memo_, be_, ctx_, be_memo_pair_, be_sig_triple_ }"
236
+ },
237
+ "limit": "576 B"
238
+ },
239
+ {
240
+ "name": "uuid",
241
+ "import": {
242
+ "./uuid": "{ uuid_ }"
243
+ },
244
+ "limit": "39 B"
245
+ },
246
+ {
247
+ "name": "short uuid",
248
+ "import": {
249
+ "./uuid": "{ short_uuid_ }"
250
+ },
251
+ "limit": "116 B"
252
+ }
253
+ ]
254
+ }