ctx-core 5.17.0 → 5.17.1

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.
@@ -65,8 +65,10 @@ export function memo_(memo_def, ...add_def_a) {
65
65
  memo.add = add_def=>{
66
66
  if (memo.a) {
67
67
  let v = add_def(memo)
68
- if (v instanceof Object) memo.a.push(v)
69
- if (v.memo_) v()
68
+ if (v instanceof Object) {
69
+ memo.a.push(v)
70
+ if (v.memo_) v()
71
+ }
70
72
  } else {
71
73
  add_def_a.push(add_def)
72
74
  }
@@ -183,7 +183,7 @@ test('sig_|undefined', ()=>{
183
183
  equal(sig(), undefined)
184
184
  equal(memo(), undefined)
185
185
  })
186
- test('rmemo|subscriber|has strong reference to the return value', ()=>{
186
+ test('rmemo|add|has strong reference to the return value', ()=>{
187
187
  const add_arg_aa:[sig_T<number|undefined>, number|undefined][] = []
188
188
  let memo:memo_T<number>|undefined
189
189
  const num$ = sig_<number|undefined>(
@@ -201,26 +201,26 @@ test('rmemo|subscriber|has strong reference to the return value', ()=>{
201
201
  equal((num$.a![0] as memo_T<number>).val, 99)
202
202
  equal(add_arg_aa, [[num$, undefined]])
203
203
  })
204
- test('sig_|subscriber|notified if sig is set before read', ()=>{
204
+ test('rmemo|add|notified if sig is set before read', ()=>{
205
205
  let count = 0
206
- let subscriber__num:number|undefined = undefined
206
+ let add__num:number|undefined = undefined
207
207
  const num$ = sig_<number|undefined>(
208
208
  undefined
209
209
  ).add(num$=>
210
210
  memo_(()=>{
211
211
  count++
212
- subscriber__num = num$()
212
+ add__num = num$()
213
213
  }))
214
214
  equal(count, 0)
215
- equal(subscriber__num, undefined)
215
+ equal(add__num, undefined)
216
216
  num$._ = 1
217
217
  equal(count, 1)
218
- equal(subscriber__num, 1)
218
+ equal(add__num, 1)
219
219
  num$()
220
220
  equal(count, 1)
221
- equal(subscriber__num, 1)
221
+ equal(add__num, 1)
222
222
  })
223
- test('sig_|subscriber|sets sig', ()=>{
223
+ test('rmemo_|add|sets sig', ()=>{
224
224
  const base$ = sig_(0)
225
225
  let count = 0
226
226
  const num$ = sig_(
@@ -237,7 +237,29 @@ test('sig_|subscriber|sets sig', ()=>{
237
237
  equal(num$(), 6)
238
238
  equal(count, 2)
239
239
  })
240
- test('sig_|async subsubscriber|case 1', async ()=>{
240
+ test('rmemo|add|nullish', ()=>{
241
+ let add_undefined_count = 0
242
+ const add_undefined_num$ = sig_(
243
+ 0
244
+ ).add(()=>{
245
+ add_undefined_count++
246
+ return undefined
247
+ })
248
+ equal(add_undefined_count, 0)
249
+ equal(add_undefined_num$(), 0)
250
+ equal(add_undefined_count, 1)
251
+ let add_null_count = 0
252
+ const add_null_num$ = sig_(
253
+ 0
254
+ ).add(()=>{
255
+ add_null_count++
256
+ return null
257
+ })
258
+ equal(add_null_count, 0)
259
+ equal(add_null_num$(), 0)
260
+ equal(add_null_count, 1)
261
+ })
262
+ test('sig_|async add|case 1', async ()=>{
241
263
  let resolve:(user:{ id:string })=>void
242
264
  const user0 = { id: 'id-0' }
243
265
  const user1 = { id: 'id-1' }
@@ -266,7 +288,7 @@ test('sig_|async subsubscriber|case 1', async ()=>{
266
288
  await sleep(0)
267
289
  equal(count, 2)
268
290
  })
269
- test('sig_|async subsubscriber|case 2', async ()=>{
291
+ test('sig_|async add|case 2', async ()=>{
270
292
  const a$ = sig_(1)
271
293
  const b$ = sig_(2)
272
294
  const sleepCycles = 5
package/package.json CHANGED
@@ -1,251 +1,250 @@
1
1
  {
2
- "name": "ctx-core",
3
- "version": "5.17.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
- "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
- "string",
70
- "tempfile",
71
- "test",
72
- "time",
73
- "tuple",
74
- "types",
75
- "uri",
76
- "uuid",
77
- "package.json"
78
- ],
79
- "types": "./src/index.d.ts",
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
- "./string": "./string/index.js",
124
- "./tempfile": "./tempfile/index.js",
125
- "./test": "./test/index.js",
126
- "./time": "./time/index.js",
127
- "./tuple": "./tuple/index.js",
128
- "./types": "./types/index.js",
129
- "./uri": "./uri/index.js",
130
- "./uuid": "./uuid/index.js",
131
- "./package.json": "./package.json"
132
- },
133
- "scripts": {
134
- "build": ":",
135
- "clean": ":",
136
- "exec": "$@",
137
- "prepublishOnly": "pnpm clean && pnpm build && pnpm test",
138
- "test": "pnpm run /^test:/",
139
- "test:size": "size-limit",
140
- "test:type": "check-dts",
141
- "test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
142
- "disable:test:coverage": "c8 pnpm test:unit"
143
- },
144
- "devDependencies": {
145
- "@arethetypeswrong/cli": "^0.13.5",
146
- "@ctx-core/preprocess": "^0.1.0",
147
- "@size-limit/preset-small-lib": "^11.0.1",
148
- "@types/node": "^20.11.0",
149
- "@types/sinon": "^17.0.3",
150
- "c8": "^9.0.0",
151
- "check-dts": "^0.7.2",
152
- "esbuild": "^0.19.11",
153
- "esmock": "^2.6.0",
154
- "sinon": "^17.0.1",
155
- "size-limit": "^11.0.1",
156
- "tsx": "^4.7.0",
157
- "typescript": "next",
158
- "uvu": "^0.5.6"
159
- },
160
- "publishConfig": {
161
- "access": "public",
162
- "cache": "~/.npm"
163
- },
164
- "sideEffects": false,
165
- "size-limit": [
166
- {
167
- "name": "ctx_",
168
- "import": {
169
- "./be": "{ ctx_ }"
170
- },
171
- "limit": "33 B"
172
- },
173
- {
174
- "name": "ns_ctx_",
175
- "import": {
176
- "./be": "{ ns_ctx_ }"
177
- },
178
- "limit": "85 B"
179
- },
180
- {
181
- "name": "be_",
182
- "import": {
183
- "./be": "{ be_ }"
184
- },
185
- "limit": "99 B"
186
- },
187
- {
188
- "name": "be_ ctx_",
189
- "import": {
190
- "./be": "{ be_, ctx_ }"
191
- },
192
- "limit": "131 B"
193
- },
194
- {
195
- "name": "be_ ns_ctx_",
196
- "import": {
197
- "./be": "{ be_, ctx_, ns_ctx_ }"
198
- },
199
- "limit": "190 B"
200
- },
201
- {
202
- "name": "be_ ctx_ ns_ctx_",
203
- "import": {
204
- "./be": "{ be_, ctx_, ns_ctx_ }"
205
- },
206
- "limit": "190 B"
207
- },
208
- {
209
- "name": "memo_",
210
- "import": {
211
- "./rmemo": "{ memo_ }"
212
- },
213
- "limit": "352 B"
214
- },
215
- {
216
- "name": "memo_ sig_",
217
- "import": {
218
- "./rmemo": "{ sig_, memo_ }"
219
- },
220
- "limit": "370 B"
221
- },
222
- {
223
- "name": "memo_ sig_ be_ ctx_",
224
- "import": {
225
- "./rmemo": "{ sig_, memo_, be_, ctx_ }"
226
- },
227
- "limit": "471 B"
228
- },
229
- {
230
- "name": "memo_ sig_ be_ ctx_ be_memo_pair_ be_sig_triple_",
231
- "import": {
232
- "./rmemo": "{ sig_, memo_, be_, ctx_, be_memo_pair_, be_sig_triple_ }"
233
- },
234
- "limit": "570 B"
235
- },
236
- {
237
- "name": "uuid",
238
- "import": {
239
- "./uuid": "{ uuid_ }"
240
- },
241
- "limit": "39 B"
242
- },
243
- {
244
- "name": "short uuid",
245
- "import": {
246
- "./uuid": "{ short_uuid_ }"
247
- },
248
- "limit": "116 B"
249
- }
250
- ]
2
+ "name": "ctx-core",
3
+ "version": "5.17.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
+ "string",
70
+ "tempfile",
71
+ "test",
72
+ "time",
73
+ "tuple",
74
+ "types",
75
+ "uri",
76
+ "uuid",
77
+ "package.json"
78
+ ],
79
+ "types": "./src/index.d.ts",
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
+ "./string": "./string/index.js",
124
+ "./tempfile": "./tempfile/index.js",
125
+ "./test": "./test/index.js",
126
+ "./time": "./time/index.js",
127
+ "./tuple": "./tuple/index.js",
128
+ "./types": "./types/index.js",
129
+ "./uri": "./uri/index.js",
130
+ "./uuid": "./uuid/index.js",
131
+ "./package.json": "./package.json"
132
+ },
133
+ "devDependencies": {
134
+ "@arethetypeswrong/cli": "^0.13.5",
135
+ "@ctx-core/preprocess": "^0.1.0",
136
+ "@size-limit/preset-small-lib": "^11.0.1",
137
+ "@types/node": "^20.11.0",
138
+ "@types/sinon": "^17.0.3",
139
+ "c8": "^9.0.0",
140
+ "check-dts": "^0.7.2",
141
+ "esbuild": "^0.19.11",
142
+ "esmock": "^2.6.0",
143
+ "sinon": "^17.0.1",
144
+ "size-limit": "^11.0.1",
145
+ "tsx": "^4.7.0",
146
+ "typescript": "next",
147
+ "uvu": "^0.5.6"
148
+ },
149
+ "publishConfig": {
150
+ "access": "public",
151
+ "cache": "~/.npm"
152
+ },
153
+ "sideEffects": false,
154
+ "size-limit": [
155
+ {
156
+ "name": "ctx_",
157
+ "import": {
158
+ "./be": "{ ctx_ }"
159
+ },
160
+ "limit": "33 B"
161
+ },
162
+ {
163
+ "name": "ns_ctx_",
164
+ "import": {
165
+ "./be": "{ ns_ctx_ }"
166
+ },
167
+ "limit": "85 B"
168
+ },
169
+ {
170
+ "name": "be_",
171
+ "import": {
172
+ "./be": "{ be_ }"
173
+ },
174
+ "limit": "99 B"
175
+ },
176
+ {
177
+ "name": "be_ ctx_",
178
+ "import": {
179
+ "./be": "{ be_, ctx_ }"
180
+ },
181
+ "limit": "131 B"
182
+ },
183
+ {
184
+ "name": "be_ ns_ctx_",
185
+ "import": {
186
+ "./be": "{ be_, ctx_, ns_ctx_ }"
187
+ },
188
+ "limit": "190 B"
189
+ },
190
+ {
191
+ "name": "be_ ctx_ ns_ctx_",
192
+ "import": {
193
+ "./be": "{ be_, ctx_, ns_ctx_ }"
194
+ },
195
+ "limit": "190 B"
196
+ },
197
+ {
198
+ "name": "memo_",
199
+ "import": {
200
+ "./rmemo": "{ memo_ }"
201
+ },
202
+ "limit": "352 B"
203
+ },
204
+ {
205
+ "name": "memo_ sig_",
206
+ "import": {
207
+ "./rmemo": "{ sig_, memo_ }"
208
+ },
209
+ "limit": "370 B"
210
+ },
211
+ {
212
+ "name": "memo_ sig_ be_ ctx_",
213
+ "import": {
214
+ "./rmemo": "{ sig_, memo_, be_, ctx_ }"
215
+ },
216
+ "limit": "471 B"
217
+ },
218
+ {
219
+ "name": "memo_ sig_ be_ ctx_ be_memo_pair_ be_sig_triple_",
220
+ "import": {
221
+ "./rmemo": "{ sig_, memo_, be_, ctx_, be_memo_pair_, be_sig_triple_ }"
222
+ },
223
+ "limit": "566 B"
224
+ },
225
+ {
226
+ "name": "uuid",
227
+ "import": {
228
+ "./uuid": "{ uuid_ }"
229
+ },
230
+ "limit": "39 B"
231
+ },
232
+ {
233
+ "name": "short uuid",
234
+ "import": {
235
+ "./uuid": "{ short_uuid_ }"
236
+ },
237
+ "limit": "116 B"
238
+ }
239
+ ],
240
+ "scripts": {
241
+ "build": ":",
242
+ "clean": ":",
243
+ "exec": "$@",
244
+ "test": "pnpm run /^test:/",
245
+ "test:size": "size-limit",
246
+ "test:type": "check-dts",
247
+ "test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
248
+ "disable:test:coverage": "c8 pnpm test:unit"
249
+ }
251
250
  }