ctx-core 5.19.2 → 5.21.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.
@@ -74,7 +74,9 @@ export type ondelete_Be<
74
74
  ns_T extends string = '',
75
75
  ctx_T extends Ctx = Ctx_wide_T<ns_T>,
76
76
  > = ((ctx:ctx_T)=>val_T)&be_o_T<val_T, ns_T, ctx_T>&{
77
- ondelete(cb:(val:val_T, ctx:ctx_T, be:Be<val_T, ns_T, ctx_T>)=>void):void
77
+ ondelete(
78
+ cb:(val:val_T, ctx:ctx_T, be:Be<val_T, ns_T, ctx_T>)=>void
79
+ ):ondelete_Be<val_T, ns_T, ctx_T>
78
80
  d():void
79
81
  }
80
82
  export type be_o_T<
package/all/be_/index.js CHANGED
@@ -141,7 +141,10 @@ export function be__val_(be_or_id, ctx, ns) {
141
141
  export function ondelete_be_(val__new, config) {
142
142
  let be = be_(val__new, config)
143
143
  let ondelete_cb_a = []
144
- be.ondelete = cb=>ondelete_cb_a.push(cb)
144
+ be.ondelete = cb=>{
145
+ ondelete_cb_a.push(cb)
146
+ return be
147
+ }
145
148
  be.d = (...state)=>{
146
149
  for (let ondelete_cb of ondelete_cb_a) {
147
150
  ondelete_cb(...state)
@@ -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()
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'
package/package.json CHANGED
@@ -1,252 +1,253 @@
1
1
  {
2
- "name": "ctx-core",
3
- "version": "5.19.2",
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
- "scripts": {
135
- "build": ":",
136
- "clean": ":",
137
- "exec": "$@",
138
- "prepublishOnly": "pnpm clean && pnpm build && pnpm test",
139
- "test": "pnpm run /^test:/",
140
- "test:size": "size-limit",
141
- "test:type": "check-dts",
142
- "test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
143
- "disable:test:coverage": "c8 pnpm test:unit"
144
- },
145
- "devDependencies": {
146
- "@arethetypeswrong/cli": "^0.13.5",
147
- "@ctx-core/preprocess": "^0.1.1",
148
- "@size-limit/preset-small-lib": "^11.0.2",
149
- "@types/node": "^20.11.4",
150
- "@types/sinon": "^17.0.3",
151
- "c8": "^9.1.0",
152
- "check-dts": "^0.7.2",
153
- "esbuild": "^0.19.11",
154
- "esmock": "^2.6.2",
155
- "sinon": "^17.0.1",
156
- "size-limit": "^11.0.2",
157
- "tsx": "^4.7.0",
158
- "typescript": "next",
159
- "uvu": "^0.5.6"
160
- },
161
- "publishConfig": {
162
- "access": "public",
163
- "cache": "~/.npm"
164
- },
165
- "sideEffects": false,
166
- "size-limit": [
167
- {
168
- "name": "ctx_",
169
- "import": {
170
- "./be": "{ ctx_ }"
171
- },
172
- "limit": "33 B"
173
- },
174
- {
175
- "name": "ns_ctx_",
176
- "import": {
177
- "./be": "{ ns_ctx_ }"
178
- },
179
- "limit": "85 B"
180
- },
181
- {
182
- "name": "be_",
183
- "import": {
184
- "./be": "{ be_ }"
185
- },
186
- "limit": "99 B"
187
- },
188
- {
189
- "name": "be_ ctx_",
190
- "import": {
191
- "./be": "{ be_, ctx_ }"
192
- },
193
- "limit": "131 B"
194
- },
195
- {
196
- "name": "be_ ns_ctx_",
197
- "import": {
198
- "./be": "{ be_, ctx_, ns_ctx_ }"
199
- },
200
- "limit": "190 B"
201
- },
202
- {
203
- "name": "be_ ctx_ ns_ctx_",
204
- "import": {
205
- "./be": "{ be_, ctx_, ns_ctx_ }"
206
- },
207
- "limit": "190 B"
208
- },
209
- {
210
- "name": "memo_",
211
- "import": {
212
- "./rmemo": "{ memo_ }"
213
- },
214
- "limit": "352 B"
215
- },
216
- {
217
- "name": "memo_ sig_",
218
- "import": {
219
- "./rmemo": "{ sig_, memo_ }"
220
- },
221
- "limit": "370 B"
222
- },
223
- {
224
- "name": "memo_ sig_ be_ ctx_",
225
- "import": {
226
- "./rmemo": "{ sig_, memo_, be_, ctx_ }"
227
- },
228
- "limit": "471 B"
229
- },
230
- {
231
- "name": "memo_ sig_ be_ ctx_ be_memo_pair_ be_sig_triple_",
232
- "import": {
233
- "./rmemo": "{ sig_, memo_, be_, ctx_, be_memo_pair_, be_sig_triple_ }"
234
- },
235
- "limit": "576 B"
236
- },
237
- {
238
- "name": "uuid",
239
- "import": {
240
- "./uuid": "{ uuid_ }"
241
- },
242
- "limit": "39 B"
243
- },
244
- {
245
- "name": "short uuid",
246
- "import": {
247
- "./uuid": "{ short_uuid_ }"
248
- },
249
- "limit": "116 B"
250
- }
251
- ]
2
+ "name": "ctx-core",
3
+ "version": "5.21.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
+ "devDependencies": {
137
+ "@arethetypeswrong/cli": "^0.13.5",
138
+ "@ctx-core/preprocess": "^0.1.1",
139
+ "@size-limit/preset-small-lib": "^11.0.2",
140
+ "@types/node": "^20.11.4",
141
+ "@types/sinon": "^17.0.3",
142
+ "c8": "^9.1.0",
143
+ "check-dts": "^0.7.2",
144
+ "esbuild": "^0.19.11",
145
+ "esmock": "^2.6.2",
146
+ "sinon": "^17.0.1",
147
+ "size-limit": "^11.0.2",
148
+ "tsx": "^4.7.0",
149
+ "typescript": "next",
150
+ "uvu": "^0.5.6"
151
+ },
152
+ "publishConfig": {
153
+ "access": "public",
154
+ "cache": "~/.npm"
155
+ },
156
+ "sideEffects": false,
157
+ "size-limit": [
158
+ {
159
+ "name": "ctx_",
160
+ "import": {
161
+ "./be": "{ ctx_ }"
162
+ },
163
+ "limit": "33 B"
164
+ },
165
+ {
166
+ "name": "ns_ctx_",
167
+ "import": {
168
+ "./be": "{ ns_ctx_ }"
169
+ },
170
+ "limit": "85 B"
171
+ },
172
+ {
173
+ "name": "be_",
174
+ "import": {
175
+ "./be": "{ be_ }"
176
+ },
177
+ "limit": "99 B"
178
+ },
179
+ {
180
+ "name": "be_ ctx_",
181
+ "import": {
182
+ "./be": "{ be_, ctx_ }"
183
+ },
184
+ "limit": "131 B"
185
+ },
186
+ {
187
+ "name": "be_ ns_ctx_",
188
+ "import": {
189
+ "./be": "{ be_, ctx_, ns_ctx_ }"
190
+ },
191
+ "limit": "190 B"
192
+ },
193
+ {
194
+ "name": "be_ ctx_ ns_ctx_",
195
+ "import": {
196
+ "./be": "{ be_, ctx_, ns_ctx_ }"
197
+ },
198
+ "limit": "190 B"
199
+ },
200
+ {
201
+ "name": "memo_",
202
+ "import": {
203
+ "./rmemo": "{ memo_ }"
204
+ },
205
+ "limit": "352 B"
206
+ },
207
+ {
208
+ "name": "memo_ sig_",
209
+ "import": {
210
+ "./rmemo": "{ sig_, memo_ }"
211
+ },
212
+ "limit": "370 B"
213
+ },
214
+ {
215
+ "name": "memo_ sig_ be_ ctx_",
216
+ "import": {
217
+ "./rmemo": "{ sig_, memo_, be_, ctx_ }"
218
+ },
219
+ "limit": "471 B"
220
+ },
221
+ {
222
+ "name": "memo_ sig_ be_ ctx_ be_memo_pair_ be_sig_triple_",
223
+ "import": {
224
+ "./rmemo": "{ sig_, memo_, be_, ctx_, be_memo_pair_, be_sig_triple_ }"
225
+ },
226
+ "limit": "576 B"
227
+ },
228
+ {
229
+ "name": "uuid",
230
+ "import": {
231
+ "./uuid": "{ uuid_ }"
232
+ },
233
+ "limit": "39 B"
234
+ },
235
+ {
236
+ "name": "short uuid",
237
+ "import": {
238
+ "./uuid": "{ short_uuid_ }"
239
+ },
240
+ "limit": "116 B"
241
+ }
242
+ ],
243
+ "scripts": {
244
+ "build": ":",
245
+ "clean": ":",
246
+ "exec": "$@",
247
+ "test": "pnpm run /^test:/",
248
+ "test:size": "size-limit",
249
+ "test:type": "check-dts",
250
+ "test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
251
+ "disable:test:coverage": "c8 pnpm test:unit"
252
+ }
252
253
  }