@monstermann/dsp 0.2.2 → 0.3.0
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 +524 -0
- package/dist/Dsp/add.d.mts +45 -0
- package/dist/Dsp/{add.js → add.mjs} +3 -3
- package/dist/Dsp/create.d.mts +25 -0
- package/dist/Dsp/create.mjs +31 -0
- package/dist/Dsp/dispose.d.mts +95 -0
- package/dist/Dsp/dispose.mjs +131 -0
- package/dist/Dsp/find.d.mts +44 -0
- package/dist/Dsp/find.mjs +49 -0
- package/dist/Dsp/includes.d.mts +36 -0
- package/dist/Dsp/includes.mjs +38 -0
- package/dist/Dsp/{index.d.ts → index.d.mts} +10 -10
- package/dist/Dsp/index.mjs +27 -0
- package/dist/Dsp/{internals.js → internals.mjs} +1 -1
- package/dist/Dsp/isDisposed.d.mts +28 -0
- package/dist/Dsp/isDisposed.mjs +30 -0
- package/dist/Dsp/isDsp.d.mts +26 -0
- package/dist/Dsp/isDsp.mjs +28 -0
- package/dist/Dsp/remove.d.mts +34 -0
- package/dist/Dsp/remove.mjs +38 -0
- package/dist/Dsp/unlink.d.mts +34 -0
- package/dist/Dsp/unlink.mjs +38 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +3 -0
- package/package.json +6 -6
- package/dist/Dsp/add.d.ts +0 -6
- package/dist/Dsp/create.d.ts +0 -6
- package/dist/Dsp/create.js +0 -13
- package/dist/Dsp/dispose.d.ts +0 -6
- package/dist/Dsp/dispose.js +0 -43
- package/dist/Dsp/find.d.ts +0 -6
- package/dist/Dsp/find.js +0 -12
- package/dist/Dsp/includes.d.ts +0 -6
- package/dist/Dsp/includes.js +0 -9
- package/dist/Dsp/index.js +0 -27
- package/dist/Dsp/isDisposed.d.ts +0 -6
- package/dist/Dsp/isDisposed.js +0 -9
- package/dist/Dsp/isDsp.d.ts +0 -6
- package/dist/Dsp/isDsp.js +0 -9
- package/dist/Dsp/remove.d.ts +0 -6
- package/dist/Dsp/remove.js +0 -11
- package/dist/Dsp/unlink.d.ts +0 -6
- package/dist/Dsp/unlink.js +0 -11
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -3
- /package/dist/Dsp/{symbol.d.ts → symbol.d.mts} +0 -0
- /package/dist/Dsp/{symbol.js → symbol.mjs} +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { unlinkDsp, unlinkVal } from "./internals.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/Dsp/unlink.ts
|
|
4
|
+
/**
|
|
5
|
+
* # unlink
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* function Dsp.unlink(link: DspLink | undefined): void;
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* `O(1)`
|
|
12
|
+
*
|
|
13
|
+
* Takes a value constructed by `add` and destroys all references.
|
|
14
|
+
*
|
|
15
|
+
* ## Example
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Dsp } from "@monstermann/dsp";
|
|
19
|
+
*
|
|
20
|
+
* const cb = () => {};
|
|
21
|
+
*
|
|
22
|
+
* const dsp = Dsp.create();
|
|
23
|
+
* const link = Dsp.add(dsp, cb);
|
|
24
|
+
*
|
|
25
|
+
* Dsp.includes(dsp, cb); // true
|
|
26
|
+
* Dsp.unlink(link);
|
|
27
|
+
* Dsp.includes(dsp, cb); // false
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
function unlink(link) {
|
|
32
|
+
if (!link) return;
|
|
33
|
+
unlinkVal(link);
|
|
34
|
+
unlinkDsp(link);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { unlink };
|
package/dist/index.d.mts
ADDED
package/dist/index.mjs
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monstermann/dsp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "Small & fast disposables.",
|
|
6
6
|
"author": "Michael Ostermann <michaelostermann@me.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"sideEffects": false,
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
|
-
"types": "./dist/index.d.
|
|
21
|
-
"import": "./dist/index.
|
|
20
|
+
"types": "./dist/index.d.mts",
|
|
21
|
+
"import": "./dist/index.mjs"
|
|
22
22
|
},
|
|
23
23
|
"./*": "./dist/*"
|
|
24
24
|
},
|
|
25
|
-
"main": "./dist/index.
|
|
26
|
-
"module": "./dist/index.
|
|
27
|
-
"types": "./dist/index.d.
|
|
25
|
+
"main": "./dist/index.mjs",
|
|
26
|
+
"module": "./dist/index.mjs",
|
|
27
|
+
"types": "./dist/index.d.mts",
|
|
28
28
|
"files": [
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
package/dist/Dsp/add.d.ts
DELETED
package/dist/Dsp/create.d.ts
DELETED
package/dist/Dsp/create.js
DELETED
package/dist/Dsp/dispose.d.ts
DELETED
package/dist/Dsp/dispose.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { symbol } from "./symbol.js";
|
|
2
|
-
import { unlinkVal } from "./internals.js";
|
|
3
|
-
|
|
4
|
-
//#region src/Dsp/dispose.ts
|
|
5
|
-
function dispose(target) {
|
|
6
|
-
let errors;
|
|
7
|
-
let stack = {
|
|
8
|
-
dsp: target,
|
|
9
|
-
prev: void 0
|
|
10
|
-
};
|
|
11
|
-
let dsp = target;
|
|
12
|
-
while (dsp) {
|
|
13
|
-
dsp[symbol] = true;
|
|
14
|
-
while (dsp.dsps) {
|
|
15
|
-
unlinkVal(dsp.dsps);
|
|
16
|
-
dsp.dsps = dsp.dsps.prevDsp;
|
|
17
|
-
}
|
|
18
|
-
while (dsp.vals) {
|
|
19
|
-
const val = dsp.vals.val;
|
|
20
|
-
dsp.vals = dsp.vals.prevVal;
|
|
21
|
-
if (symbol in val) {
|
|
22
|
-
stack = {
|
|
23
|
-
dsp: val,
|
|
24
|
-
prev: stack
|
|
25
|
-
};
|
|
26
|
-
dsp = val;
|
|
27
|
-
} else try {
|
|
28
|
-
val();
|
|
29
|
-
} catch (err) {
|
|
30
|
-
errors ??= [];
|
|
31
|
-
errors.push(err);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
stack = stack?.prev;
|
|
35
|
-
dsp = stack?.dsp;
|
|
36
|
-
}
|
|
37
|
-
if (!errors) return;
|
|
38
|
-
if (errors.length === 1) throw errors[0];
|
|
39
|
-
throw new AggregateError(errors, "DisposeError");
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
//#endregion
|
|
43
|
-
export { dispose };
|
package/dist/Dsp/find.d.ts
DELETED
package/dist/Dsp/find.js
DELETED
package/dist/Dsp/includes.d.ts
DELETED
package/dist/Dsp/includes.js
DELETED
package/dist/Dsp/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { symbol } from "./symbol.js";
|
|
2
|
-
import { dispose } from "./dispose.js";
|
|
3
|
-
import { add } from "./add.js";
|
|
4
|
-
import { create } from "./create.js";
|
|
5
|
-
import { find } from "./find.js";
|
|
6
|
-
import { includes } from "./includes.js";
|
|
7
|
-
import { isDisposed } from "./isDisposed.js";
|
|
8
|
-
import { isDsp } from "./isDsp.js";
|
|
9
|
-
import { unlink } from "./unlink.js";
|
|
10
|
-
import { remove } from "./remove.js";
|
|
11
|
-
|
|
12
|
-
//#region src/Dsp/index.js
|
|
13
|
-
const Dsp = {
|
|
14
|
-
add,
|
|
15
|
-
create,
|
|
16
|
-
dispose,
|
|
17
|
-
find,
|
|
18
|
-
includes,
|
|
19
|
-
isDisposed,
|
|
20
|
-
isDsp,
|
|
21
|
-
remove,
|
|
22
|
-
symbol,
|
|
23
|
-
unlink
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
//#endregion
|
|
27
|
-
export { Dsp };
|
package/dist/Dsp/isDisposed.d.ts
DELETED
package/dist/Dsp/isDisposed.js
DELETED
package/dist/Dsp/isDsp.d.ts
DELETED
package/dist/Dsp/isDsp.js
DELETED
package/dist/Dsp/remove.d.ts
DELETED
package/dist/Dsp/remove.js
DELETED
package/dist/Dsp/unlink.d.ts
DELETED
package/dist/Dsp/unlink.js
DELETED
package/dist/index.d.ts
DELETED
package/dist/index.js
DELETED
|
File without changes
|
|
File without changes
|