@e280/stz 0.2.12 → 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
@@ -111,6 +111,41 @@ await nap(900)
111
111
  // wait for 900 milliseconds
112
112
  ```
113
113
 
114
+ ### 🍏 disposer
115
+ > easy trash management
116
+
117
+ ```ts
118
+ import {disposer} from "@e280/stz"
119
+ ```
120
+
121
+ - create a disposer
122
+ ```ts
123
+ const dispose = disposer()
124
+ ```
125
+ - schedule something for cleanup
126
+ ```ts
127
+ dispose.schedule(() => console.log("disposed!"))
128
+ ```
129
+ - schedule multiple things at once
130
+ ```ts
131
+ dispose.schedule(
132
+ () => console.log("disposed thing 1"),
133
+ () => console.log("disposed thing 2"),
134
+ () => ev(window, {keydown: () => console.log("keydown")}),
135
+ )
136
+ ```
137
+ - schedule is chainable if you prefer that vibe
138
+ ```ts
139
+ dispose
140
+ .schedule(() => console.log("disposed thing 1"))
141
+ .schedule(() => console.log("disposed thing 2"))
142
+ .schedule(() => ev(window, {keydown: () => console.log("keydown")}))
143
+ ```
144
+ - **dispose** of all that garbage
145
+ ```ts
146
+ dispose()
147
+ ```
148
+
114
149
  ### 🍏 G Crew
115
150
  > extended js data types
116
151
 
@@ -118,9 +153,9 @@ await nap(900)
118
153
  > extended js Map
119
154
  - many are saying it's *"The Deluxe Mapping Experience"*
120
155
  ```ts
121
- import {MapG} from "@e280/stz"
156
+ import {GMap} from "@e280/stz"
122
157
 
123
- const map = new MapG<number, string>([
158
+ const map = new GMap<number, string>([
124
159
  [1, "hello"],
125
160
  [2, "world"],
126
161
  ])
@@ -138,13 +173,13 @@ await nap(900)
138
173
 
139
174
  #### GSet
140
175
  > extended js Set
141
- - `new SetG<T>()`
176
+ - `new GSet<T>()`
142
177
  - `set.adds(item1, item2, item3)` — add multiple items without a for-loop
143
178
  - `set.deletes(item1, item2, item3)` — add multiple items without a for-loop
144
179
 
145
180
  #### GWeakMap
146
181
  > extended js WeakMap
147
- - `new WeakMapG<K, V>()`
182
+ - `new GWeakMap<K, V>()`
148
183
  - `weakMap.require(key)` — returns value for key.. if missing, throw an error
149
184
  - `weakMap.guarantee(key, makeFn)` — returns the value for key.. if missing, run `makeFn` to set and return the value
150
185
 
@@ -220,6 +255,20 @@ fn()
220
255
  // coolAction is only called once here, other calls are redundant
221
256
  ```
222
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
+
223
272
  ### 🍏 `cycle(fn)`
224
273
  > execute a function over and over again, back to back
225
274
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.2.12",
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.1",
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/disposer.ts CHANGED
@@ -1,5 +1,10 @@
1
1
 
2
- export function disposer() {
2
+ export type Disposer = {
3
+ (): void
4
+ schedule: (...fns: (() => void)[]) => Disposer
5
+ }
6
+
7
+ export function disposer(): Disposer {
3
8
  let fns: (() => void)[] = []
4
9
 
5
10
  function d() {
@@ -7,8 +12,8 @@ export function disposer() {
7
12
  fns = []
8
13
  }
9
14
 
10
- d.schedule = (fn: () => void) => {
11
- fns.push(fn)
15
+ d.schedule = (...newFns: (() => void)[]) => {
16
+ fns.push(...newFns)
12
17
  return d
13
18
  }
14
19
 
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/disposer.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export declare function disposer(): {
1
+ export type Disposer = {
2
2
  (): void;
3
- schedule(fn: () => void): /*elided*/ any;
3
+ schedule: (...fns: (() => void)[]) => Disposer;
4
4
  };
5
+ export declare function disposer(): Disposer;
package/x/disposer.js CHANGED
@@ -5,8 +5,8 @@ export function disposer() {
5
5
  fn();
6
6
  fns = [];
7
7
  }
8
- d.schedule = (fn) => {
9
- fns.push(fn);
8
+ d.schedule = (...newFns) => {
9
+ fns.push(...newFns);
10
10
  return d;
11
11
  };
12
12
  return d;
package/x/disposer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../s/disposer.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,QAAQ;IACvB,IAAI,GAAG,GAAmB,EAAE,CAAA;IAE5B,SAAS,CAAC;QACT,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,EAAE,EAAE,CAAA;QAC1B,GAAG,GAAG,EAAE,CAAA;IACT,CAAC;IAED,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAc,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACZ,OAAO,CAAC,CAAA;IACT,CAAC,CAAA;IAED,OAAO,CAAC,CAAA;AACT,CAAC"}
1
+ {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../s/disposer.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,QAAQ;IACvB,IAAI,GAAG,GAAmB,EAAE,CAAA;IAE5B,SAAS,CAAC;QACT,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,EAAE,EAAE,CAAA;QAC1B,GAAG,GAAG,EAAE,CAAA;IACT,CAAC;IAED,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,MAAsB,EAAE,EAAE;QAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QACnB,OAAO,CAAC,CAAA;IACT,CAAC,CAAA;IAED,OAAO,CAAC,CAAA;AACT,CAAC"}
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"}