@justscale/observable
Advanced tools
+1
-1
@@ -16,3 +16,3 @@ import { type Model, type Observable } from "./types.js"; | ||
| } | ||
| export type Watcher = AsyncGenerator<string[], void, unknown> & { | ||
| export type Watcher = AsyncGenerator<string[], void, unknown> & Disposable & { | ||
| unsubscribe: () => void; | ||
@@ -19,0 +19,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,KAAK,EAAmB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAO3F;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAQ1D;AAgCD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG;IAC9D,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,GAClC,WAAW,CAAC;AACf,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC"} | ||
| {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,KAAK,EAAmB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAO3F;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAQ1D;AAgCD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAC3D,UAAU,GAAG;IACX,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEJ;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,GAClC,WAAW,CAAC;AACf,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC"} |
+7
-0
@@ -114,2 +114,9 @@ import { MODEL_INTERNALS, OBSERVABLE_META } from "./types.js"; | ||
| }, | ||
| [Symbol.dispose]() { | ||
| doUnsubscribe(); | ||
| }, | ||
| [Symbol.asyncDispose]() { | ||
| doUnsubscribe(); | ||
| return Promise.resolve(); | ||
| }, | ||
| }; | ||
@@ -116,0 +123,0 @@ return watcher; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"} |
+3
-3
| { | ||
| "name": "@justscale/observable", | ||
| "version": "0.1.3", | ||
| "version": "0.1.4", | ||
| "description": "Proxy-based observable system with dirty tracking for TypeScript", | ||
@@ -47,3 +47,3 @@ "keywords": [ | ||
| "test": "tsx --test test/**/*.test.ts", | ||
| "test:coverage": "tsx --test --experimental-test-coverage test/**/*.test.ts", | ||
| "test:coverage": "mkdir -p coverage && tsx --test --experimental-test-coverage --test-reporter=spec --test-reporter=lcov --test-reporter-destination=stdout --test-reporter-destination=coverage/lcov.info test/**/*.test.ts", | ||
| "lint": "biome check .", | ||
@@ -60,3 +60,3 @@ "lint:fix": "biome check --write .", | ||
| "@biomejs/biome": "^2.3.8", | ||
| "@types/node": "^22.10.0", | ||
| "@types/node": "^24.10.1", | ||
| "tsx": "^4.19.0", | ||
@@ -63,0 +63,0 @@ "typescript": "^5.7.0" |
60345
0.85%787
0.9%