ctx-core 5.16.0 → 5.16.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.
@@ -89,13 +89,13 @@ test('be_lock_memosig_triple_|+id|+ns', ()=>{
89
89
  equal(subscriber_count, 2)
90
90
  equal(subscriber_dep_(ctx), 7)
91
91
  base__set(ctx, 2)
92
- equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 3)
93
- equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 3)
94
- equal(foobar$_(ctx)._, 3)
95
- equal(foobar_(ctx), 3)
96
- equal(subscriber_count, 3)
97
- equal((ctx.s['test_ns'].get('foobar')![0] as sig_T<number>)._, 3)
98
- equal(subscriber_dep_(ctx), 6)
92
+ equal(foobar$_(ns_ctx__new(ctx__new(), ctx))._, 5)
93
+ equal(foobar_(ns_ctx__new(ctx__new(), ctx)), 5)
94
+ equal(foobar$_(ctx)._, 5)
95
+ equal(foobar_(ctx), 5)
96
+ equal(subscriber_count, 2)
97
+ equal((ctx.s['test_ns'].get('foobar')![0] as sig_T<number>)._, 5)
98
+ equal(subscriber_dep_(ctx), 7)
99
99
  })
100
100
  test('be_lock_memosig_triple_|+be', ()=>{
101
101
  const ctx = ns_ctx__new('test_ns')
@@ -88,11 +88,20 @@ export { memo_ as memosig_ }
88
88
  * @private
89
89
  */
90
90
  export function lock_memosig_(memo_def, ...subscriber_a) {
91
- return new Proxy(
91
+ let lock_memosig = new Proxy(
92
92
  /** @type {sig_T} */memo_(memo=>
93
93
  memo.lock ? memo._ : memo_def(memo),
94
94
  ...subscriber_a),
95
95
  {
96
+ get(memo, prop) {
97
+ if (prop === 'add') {
98
+ return (...arg_a)=>{
99
+ memo[prop](...arg_a)
100
+ return lock_memosig
101
+ }
102
+ }
103
+ return memo[prop]
104
+ },
96
105
  set(memo, prop, val) {
97
106
  if (prop === '_') {
98
107
  memo.lock = 1
@@ -101,6 +110,7 @@ export function lock_memosig_(memo_def, ...subscriber_a) {
101
110
  return 1
102
111
  }
103
112
  })
113
+ return lock_memosig
104
114
  }
105
115
  /**
106
116
  * @param {unknown}init_val
@@ -9,7 +9,7 @@ test('waitfor|success', async ()=>{
9
9
  const promise = waitfor(()=>{
10
10
  count++
11
11
  return ret
12
- }, 10)
12
+ }, 50)
13
13
  .then(returned_value=>{
14
14
  returned_value_a.push(returned_value)
15
15
  return returned_value
@@ -40,7 +40,7 @@ test('waitfor|cancel', async ()=>{
40
40
  const promise = waitfor(()=>{
41
41
  count++
42
42
  return false
43
- }, 10)
43
+ }, 50)
44
44
  equal(count, 1)
45
45
  equal(await promise.cancel(), false)
46
46
  equal(count, 1)
@@ -50,7 +50,7 @@ test('waitfor|cancel', async ()=>{
50
50
  const undefinable_promise = waitfor<boolean|undefined>(()=>{
51
51
  count++
52
52
  return false
53
- }, 10)
53
+ }, 50)
54
54
  equal(count, 1)
55
55
  equal(await undefinable_promise.cancel(undefined), undefined)
56
56
  equal(count, 1)
@@ -63,7 +63,7 @@ test('waitfor|period|number', async ()=>{
63
63
  const promise = waitfor(()=>{
64
64
  count++
65
65
  return ret
66
- }, 10, 2)
66
+ }, 50, 2)
67
67
  try {
68
68
  equal(count, 1)
69
69
  await sleep(2)
@@ -85,7 +85,7 @@ test('waitfor|period|async function', async ()=>{
85
85
  const promise = waitfor(()=>{
86
86
  count++
87
87
  return ret
88
- }, 10, (...arg_a)=>{
88
+ }, 50, (...arg_a)=>{
89
89
  period_arg_aa.push(arg_a)
90
90
  return sleep(2)
91
91
  })
package/package.json CHANGED
@@ -1,250 +1,251 @@
1
1
  {
2
- "name": "ctx-core",
3
- "version": "5.16.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
- "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.10.7",
138
- "@types/sinon": "^17.0.2",
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": "355 B"
203
- },
204
- {
205
- "name": "memo_ sig_",
206
- "import": {
207
- "./rmemo": "{ sig_, memo_ }"
208
- },
209
- "limit": "377 B"
210
- },
211
- {
212
- "name": "memo_ sig_ be_ ctx_",
213
- "import": {
214
- "./rmemo": "{ sig_, memo_, be_, ctx_ }"
215
- },
216
- "limit": "477 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": "580 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
- }
250
- }
2
+ "name": "ctx-core",
3
+ "version": "5.16.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
+ "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.10.7",
149
+ "@types/sinon": "^17.0.2",
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": "355 B"
214
+ },
215
+ {
216
+ "name": "memo_ sig_",
217
+ "import": {
218
+ "./rmemo": "{ sig_, memo_ }"
219
+ },
220
+ "limit": "377 B"
221
+ },
222
+ {
223
+ "name": "memo_ sig_ be_ ctx_",
224
+ "import": {
225
+ "./rmemo": "{ sig_, memo_, be_, ctx_ }"
226
+ },
227
+ "limit": "478 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": "580 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
+ ]
251
+ }