@e280/stz 0.2.13 → 0.2.14

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.
package/README.md CHANGED
@@ -153,9 +153,9 @@ import {disposer} from "@e280/stz"
153
153
  > extended js Map
154
154
  - many are saying it's *"The Deluxe Mapping Experience"*
155
155
  ```ts
156
- import {MapG} from "@e280/stz"
156
+ import {GMap} from "@e280/stz"
157
157
 
158
- const map = new MapG<number, string>([
158
+ const map = new GMap<number, string>([
159
159
  [1, "hello"],
160
160
  [2, "world"],
161
161
  ])
@@ -173,13 +173,13 @@ import {disposer} from "@e280/stz"
173
173
 
174
174
  #### GSet
175
175
  > extended js Set
176
- - `new SetG<T>()`
176
+ - `new GSet<T>()`
177
177
  - `set.adds(item1, item2, item3)` — add multiple items without a for-loop
178
178
  - `set.deletes(item1, item2, item3)` — add multiple items without a for-loop
179
179
 
180
180
  #### GWeakMap
181
181
  > extended js WeakMap
182
- - `new WeakMapG<K, V>()`
182
+ - `new GWeakMap<K, V>()`
183
183
  - `weakMap.require(key)` — returns value for key.. if missing, throw an error
184
184
  - `weakMap.guarantee(key, makeFn)` — returns the value for key.. if missing, run `makeFn` to set and return the value
185
185
 
@@ -255,6 +255,20 @@ fn()
255
255
  // coolAction is only called once here, other calls are redundant
256
256
  ```
257
257
 
258
+ ### 🍏 `microbounce(fn)`
259
+ > collapse multiple calls into a single call (uses queueMicrotask under the hood)
260
+
261
+ it's like `debounce(0, fn)` but more efficient by using queueMicrotask instead of setTimeout
262
+
263
+ ```ts
264
+ import {microbounce} from "@e280/stz"
265
+
266
+ const fn = microbounce(async() => coolAction())
267
+ fn()
268
+ fn()
269
+ fn() // previous calls are redundant
270
+ ```
271
+
258
272
  ### 🍏 `cycle(fn)`
259
273
  > execute a function over and over again, back to back
260
274
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.2.13",
3
+ "version": "0.2.14",
4
4
  "description": "everyday ts fns for everything",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@e280/science": "^0.1.2",
31
- "@types/node": "^24.7.2",
31
+ "@types/node": "^24.9.1",
32
32
  "npm-run-all": "^4.1.5",
33
33
  "typescript": "^5.9.3"
34
34
  },
@@ -0,0 +1,74 @@
1
+
2
+ import {nap} from "../nap.js"
3
+ import {microbounce} from "./microbounce.js"
4
+ import {Science, expect} from "@e280/science"
5
+
6
+ export default Science.suite({
7
+ "reduces many calls into one": Science.test(async() => {
8
+ let count = 0
9
+ const increment = microbounce(() => { count += 1 })
10
+ increment()
11
+ increment()
12
+ increment()
13
+ await nap(10)
14
+ expect(count).is(1)
15
+ }),
16
+
17
+ "uses last args": Science.test(async() => {
18
+ let count = 0
19
+ const add = microbounce((n: number) => { count += n })
20
+ add(1)
21
+ add(2)
22
+ add(3)
23
+ await nap(10)
24
+ expect(count).is(3)
25
+ }),
26
+
27
+ "last return is promised": Science.test(async() => {
28
+ let count = 0
29
+ const hit = microbounce((n: number) => {
30
+ count++
31
+ return n
32
+ })
33
+ hit(101)
34
+ hit(102)
35
+ const last = await hit(103)
36
+ expect(count).is(1)
37
+ expect(last).is(103)
38
+ }),
39
+
40
+ "last return type for async looks good": Science.test(async() => {
41
+ let count = 0
42
+ const hit = microbounce(async(n: number) => {
43
+ count++
44
+ return n
45
+ })
46
+ hit(101)
47
+ hit(102)
48
+ const last = await hit(103)
49
+ expect(count).is(1)
50
+ expect(last).is(103)
51
+ }),
52
+
53
+ "do it twice": Science.test(async() => {
54
+ {
55
+ let count = 0
56
+ const increment = microbounce(() => { count += 1 })
57
+ increment()
58
+ increment()
59
+ increment()
60
+ await nap(10)
61
+ expect(count).is(1)
62
+ }
63
+ {
64
+ let count = 0
65
+ const increment = microbounce(() => { count += 1 })
66
+ increment()
67
+ increment()
68
+ increment()
69
+ await nap(10)
70
+ expect(count).is(1)
71
+ }
72
+ }),
73
+ })
74
+
@@ -0,0 +1,27 @@
1
+
2
+ import {defer, Deferred} from "../defer.js"
3
+
4
+ export function microbounce<F extends (...params: any[]) => any>(fn: F) {
5
+ let scheduled: {
6
+ params: any[]
7
+ deferred: Deferred<any>
8
+ } | null = null
9
+
10
+ return ((...params: any[]) => {
11
+ if (scheduled) {
12
+ scheduled.params = params
13
+ }
14
+ else {
15
+ scheduled = {params, deferred: defer()}
16
+ queueMicrotask(() => {
17
+ const {params, deferred} = scheduled!
18
+ scheduled = null
19
+ Promise.resolve(fn(...params))
20
+ .then(deferred.resolve)
21
+ .catch(deferred.reject)
22
+ })
23
+ }
24
+ return scheduled.deferred.promise
25
+ }) as ((...params: Parameters<F>) => Promise<Awaited<ReturnType<F>>>)
26
+ }
27
+
package/s/index.ts CHANGED
@@ -11,6 +11,7 @@ export * from "./data/bytes.js"
11
11
  export * from "./data/txt.js"
12
12
 
13
13
  export * from "./debounce/debounce.js"
14
+ export * from "./debounce/microbounce.js"
14
15
  export * from "./debounce/types.js"
15
16
 
16
17
  export * from "./deep/index.js"
package/s/tests.test.ts CHANGED
@@ -3,6 +3,7 @@ import {Science} from "@e280/science"
3
3
 
4
4
  import data from "./data/data.test.js"
5
5
  import debounce from "./debounce/debounce.test.js"
6
+ import microbounce from "./debounce/microbounce.test.js"
6
7
  import deep from "./deep/index.test.js"
7
8
  import queue from "./queue/queue.test.js"
8
9
  import toq from "./toq/toq.test.js"
@@ -10,6 +11,7 @@ import toq from "./toq/toq.test.js"
10
11
  await Science.run({
11
12
  data,
12
13
  debounce,
14
+ microbounce,
13
15
  deep,
14
16
  queue,
15
17
  toq,
package/x/data/txt.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  export declare const txt: Readonly<{
2
2
  fromBytes(bytes: Uint8Array): string;
3
- toBytes(string: string): Uint8Array<ArrayBufferLike>;
3
+ toBytes(string: string): NodeJS.NonSharedUint8Array;
4
4
  /** @deprecated renamed to `fromBytes` */
5
5
  string(bytes: Uint8Array): string;
6
6
  /** @deprecated renamed to `toBytes` */
7
- bytes(string: string): Uint8Array<ArrayBufferLike>;
7
+ bytes(string: string): NodeJS.NonSharedUint8Array;
8
8
  }>;
9
9
  /** @deprecated renamed to `txt` */
10
10
  export declare const Txt: Readonly<{
11
11
  fromBytes(bytes: Uint8Array): string;
12
- toBytes(string: string): Uint8Array<ArrayBufferLike>;
12
+ toBytes(string: string): NodeJS.NonSharedUint8Array;
13
13
  /** @deprecated renamed to `fromBytes` */
14
14
  string(bytes: Uint8Array): string;
15
15
  /** @deprecated renamed to `toBytes` */
16
- bytes(string: string): Uint8Array<ArrayBufferLike>;
16
+ bytes(string: string): NodeJS.NonSharedUint8Array;
17
17
  }>;
@@ -0,0 +1 @@
1
+ export declare function microbounce<F extends (...params: any[]) => any>(fn: F): ((...params: Parameters<F>) => Promise<Awaited<ReturnType<F>>>);
@@ -0,0 +1,21 @@
1
+ import { defer } from "../defer.js";
2
+ export function microbounce(fn) {
3
+ let scheduled = null;
4
+ return ((...params) => {
5
+ if (scheduled) {
6
+ scheduled.params = params;
7
+ }
8
+ else {
9
+ scheduled = { params, deferred: defer() };
10
+ queueMicrotask(() => {
11
+ const { params, deferred } = scheduled;
12
+ scheduled = null;
13
+ Promise.resolve(fn(...params))
14
+ .then(deferred.resolve)
15
+ .catch(deferred.reject);
16
+ });
17
+ }
18
+ return scheduled.deferred.promise;
19
+ });
20
+ }
21
+ //# sourceMappingURL=microbounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microbounce.js","sourceRoot":"","sources":["../../s/debounce/microbounce.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAW,MAAM,aAAa,CAAA;AAE3C,MAAM,UAAU,WAAW,CAAsC,EAAK;IACrE,IAAI,SAAS,GAGF,IAAI,CAAA;IAEf,OAAO,CAAC,CAAC,GAAG,MAAa,EAAE,EAAE;QAC5B,IAAI,SAAS,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,CAAC;aACI,CAAC;YACL,SAAS,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAC,CAAA;YACvC,cAAc,CAAC,GAAG,EAAE;gBACnB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,SAAU,CAAA;gBACrC,SAAS,GAAG,IAAI,CAAA;gBAChB,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;qBAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;qBACtB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;QACH,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAA;IAClC,CAAC,CAAoE,CAAA;AACtE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Science } from "@e280/science";
2
+ declare const _default: {
3
+ "reduces many calls into one": Science.Test;
4
+ "uses last args": Science.Test;
5
+ "last return is promised": Science.Test;
6
+ "last return type for async looks good": Science.Test;
7
+ "do it twice": Science.Test;
8
+ };
9
+ export default _default;
@@ -0,0 +1,68 @@
1
+ import { nap } from "../nap.js";
2
+ import { microbounce } from "./microbounce.js";
3
+ import { Science, expect } from "@e280/science";
4
+ export default Science.suite({
5
+ "reduces many calls into one": Science.test(async () => {
6
+ let count = 0;
7
+ const increment = microbounce(() => { count += 1; });
8
+ increment();
9
+ increment();
10
+ increment();
11
+ await nap(10);
12
+ expect(count).is(1);
13
+ }),
14
+ "uses last args": Science.test(async () => {
15
+ let count = 0;
16
+ const add = microbounce((n) => { count += n; });
17
+ add(1);
18
+ add(2);
19
+ add(3);
20
+ await nap(10);
21
+ expect(count).is(3);
22
+ }),
23
+ "last return is promised": Science.test(async () => {
24
+ let count = 0;
25
+ const hit = microbounce((n) => {
26
+ count++;
27
+ return n;
28
+ });
29
+ hit(101);
30
+ hit(102);
31
+ const last = await hit(103);
32
+ expect(count).is(1);
33
+ expect(last).is(103);
34
+ }),
35
+ "last return type for async looks good": Science.test(async () => {
36
+ let count = 0;
37
+ const hit = microbounce(async (n) => {
38
+ count++;
39
+ return n;
40
+ });
41
+ hit(101);
42
+ hit(102);
43
+ const last = await hit(103);
44
+ expect(count).is(1);
45
+ expect(last).is(103);
46
+ }),
47
+ "do it twice": Science.test(async () => {
48
+ {
49
+ let count = 0;
50
+ const increment = microbounce(() => { count += 1; });
51
+ increment();
52
+ increment();
53
+ increment();
54
+ await nap(10);
55
+ expect(count).is(1);
56
+ }
57
+ {
58
+ let count = 0;
59
+ const increment = microbounce(() => { count += 1; });
60
+ increment();
61
+ increment();
62
+ increment();
63
+ await nap(10);
64
+ expect(count).is(1);
65
+ }
66
+ }),
67
+ });
68
+ //# sourceMappingURL=microbounce.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microbounce.test.js","sourceRoot":"","sources":["../../s/debounce/microbounce.test.ts"],"names":[],"mappings":"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"}
package/x/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from "./data/base-x.js";
9
9
  export * from "./data/bytes.js";
10
10
  export * from "./data/txt.js";
11
11
  export * from "./debounce/debounce.js";
12
+ export * from "./debounce/microbounce.js";
12
13
  export * from "./debounce/types.js";
13
14
  export * from "./deep/index.js";
14
15
  export * from "./g/map.js";
package/x/index.js CHANGED
@@ -9,6 +9,7 @@ export * from "./data/base-x.js";
9
9
  export * from "./data/bytes.js";
10
10
  export * from "./data/txt.js";
11
11
  export * from "./debounce/debounce.js";
12
+ export * from "./debounce/microbounce.js";
12
13
  export * from "./debounce/types.js";
13
14
  export * from "./deep/index.js";
14
15
  export * from "./g/map.js";
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAE/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAE/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
package/x/tests.test.js CHANGED
@@ -1,12 +1,14 @@
1
1
  import { Science } from "@e280/science";
2
2
  import data from "./data/data.test.js";
3
3
  import debounce from "./debounce/debounce.test.js";
4
+ import microbounce from "./debounce/microbounce.test.js";
4
5
  import deep from "./deep/index.test.js";
5
6
  import queue from "./queue/queue.test.js";
6
7
  import toq from "./toq/toq.test.js";
7
8
  await Science.run({
8
9
  data,
9
10
  debounce,
11
+ microbounce,
10
12
  deep,
11
13
  queue,
12
14
  toq,
@@ -1 +1 @@
1
- {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,IAAI,MAAM,qBAAqB,CAAA;AACtC,OAAO,QAAQ,MAAM,6BAA6B,CAAA;AAClD,OAAO,IAAI,MAAM,sBAAsB,CAAA;AACvC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,GAAG,MAAM,mBAAmB,CAAA;AAEnC,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,GAAG;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,IAAI,MAAM,qBAAqB,CAAA;AACtC,OAAO,QAAQ,MAAM,6BAA6B,CAAA;AAClD,OAAO,WAAW,MAAM,gCAAgC,CAAA;AACxD,OAAO,IAAI,MAAM,sBAAsB,CAAA;AACvC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,GAAG,MAAM,mBAAmB,CAAA;AAEnC,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,IAAI;IACJ,QAAQ;IACR,WAAW;IACX,IAAI;IACJ,KAAK;IACL,GAAG;CACH,CAAC,CAAA"}