@e280/stz 0.2.12 → 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 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.12",
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.1",
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 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/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"}