@e280/stz 0.2.11 → 0.2.13
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 +35 -0
- package/package.json +2 -2
- package/s/disposer.ts +8 -3
- package/s/pubsub.ts +1 -1
- package/x/disposer.d.ts +3 -2
- package/x/disposer.js +2 -2
- package/x/disposer.js.map +1 -1
- package/x/pubsub.d.ts +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
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e280/stz",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
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.
|
|
31
|
+
"@types/node": "^24.7.2",
|
|
32
32
|
"npm-run-all": "^4.1.5",
|
|
33
33
|
"typescript": "^5.9.3"
|
|
34
34
|
},
|
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/pubsub.ts
CHANGED
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/pubsub.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export interface Xub<A extends any[] = []> {
|
|
|
14
14
|
*/
|
|
15
15
|
on(fn: Listener<A>): () => void;
|
|
16
16
|
/** wait for the next published value */
|
|
17
|
-
next(): Promise<A>;
|
|
17
|
+
next(fn?: Listener<A>): Promise<A>;
|
|
18
18
|
/** wipe all listeners attached to this. */
|
|
19
19
|
clear(): void;
|
|
20
20
|
}
|