@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 +53 -4
- package/package.json +2 -2
- package/s/debounce/microbounce.test.ts +74 -0
- package/s/debounce/microbounce.ts +27 -0
- package/s/disposer.ts +8 -3
- package/s/index.ts +1 -0
- package/s/tests.test.ts +2 -0
- package/x/data/txt.d.ts +4 -4
- package/x/debounce/microbounce.d.ts +1 -0
- package/x/debounce/microbounce.js +21 -0
- package/x/debounce/microbounce.js.map +1 -0
- package/x/debounce/microbounce.test.d.ts +9 -0
- package/x/debounce/microbounce.test.js +68 -0
- package/x/debounce/microbounce.test.js.map +1 -0
- package/x/disposer.d.ts +3 -2
- package/x/disposer.js +2 -2
- package/x/disposer.js.map +1 -1
- package/x/index.d.ts +1 -0
- package/x/index.js +1 -0
- package/x/index.js.map +1 -1
- package/x/tests.test.js +2 -0
- package/x/tests.test.js.map +1 -1
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 {
|
|
156
|
+
import {GMap} from "@e280/stz"
|
|
122
157
|
|
|
123
|
-
const map = new
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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 = (
|
|
11
|
-
fns.push(
|
|
15
|
+
d.schedule = (...newFns: (() => void)[]) => {
|
|
16
|
+
fns.push(...newFns)
|
|
12
17
|
return d
|
|
13
18
|
}
|
|
14
19
|
|
package/s/index.ts
CHANGED
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AAE7C,eAAe,OAAO,CAAC,KAAK,CAAC;IAC5B,6BAA6B,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAG,EAAE;QACrD,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACnD,SAAS,EAAE,CAAA;QACX,SAAS,EAAE,CAAA;QACX,SAAS,EAAE,CAAA;QACX,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QACb,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC,CAAC;IAEF,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAG,EAAE;QACxC,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACtD,GAAG,CAAC,CAAC,CAAC,CAAA;QACN,GAAG,CAAC,CAAC,CAAC,CAAA;QACN,GAAG,CAAC,CAAC,CAAC,CAAA;QACN,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QACb,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC,CAAC;IAEF,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAG,EAAE;QACjD,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE;YACrC,KAAK,EAAE,CAAA;YACP,OAAO,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,CAAA;QACR,GAAG,CAAC,GAAG,CAAC,CAAA;QACR,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CAAC;IAEF,uCAAuC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAG,EAAE;QAC/D,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAC,CAAS,EAAE,EAAE;YAC1C,KAAK,EAAE,CAAA;YACP,OAAO,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,CAAA;QACR,GAAG,CAAC,GAAG,CAAC,CAAA;QACR,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CAAC;IAEF,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAG,EAAE;QACrC,CAAC;YACA,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YACnD,SAAS,EAAE,CAAA;YACX,SAAS,EAAE,CAAA;YACX,SAAS,EAAE,CAAA;YACX,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;YACb,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QACD,CAAC;YACA,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YACnD,SAAS,EAAE,CAAA;YACX,SAAS,EAAE,CAAA;YACX,SAAS,EAAE,CAAA;YACX,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;YACb,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;IACF,CAAC,CAAC;CACF,CAAC,CAAA"}
|
package/x/disposer.d.ts
CHANGED
package/x/disposer.js
CHANGED
package/x/disposer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposer.js","sourceRoot":"","sources":["../s/disposer.ts"],"names":[],"mappings":"
|
|
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,
|
package/x/tests.test.js.map
CHANGED
|
@@ -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"}
|