@live-change/db 0.5.12 → 0.5.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/lib/Index.js +17 -2
- package/lib/queryObservable.js +6 -0
- package/package.json +5 -5
package/lib/Index.js
CHANGED
|
@@ -19,6 +19,14 @@ class ObjectReader extends ChangeStream {
|
|
|
19
19
|
}
|
|
20
20
|
onChange(cb) {
|
|
21
21
|
this.callbacks.push(cb)
|
|
22
|
+
return {
|
|
23
|
+
dispose() {
|
|
24
|
+
const callbackIndex = this.callbacks.indexOf(cb)
|
|
25
|
+
if(callbackIndex == -1) throw new Error('Observer double dispose')
|
|
26
|
+
this.callbacks.splice(callbackIndex, 1)
|
|
27
|
+
/// TODO: dispose or ignore reader somehow if no callbacks
|
|
28
|
+
}
|
|
29
|
+
}
|
|
22
30
|
}
|
|
23
31
|
async change(obj, oldObj, id, timestamp) {
|
|
24
32
|
for(const callback of this.callbacks) await callback(obj, oldObj, id, timestamp)
|
|
@@ -40,6 +48,14 @@ class RangeReader extends ChangeStream {
|
|
|
40
48
|
}
|
|
41
49
|
async onChange(cb) {
|
|
42
50
|
this.callbacks.push(cb)
|
|
51
|
+
return {
|
|
52
|
+
dispose() {
|
|
53
|
+
const callbackIndex = this.callbacks.indexOf(cb)
|
|
54
|
+
if(callbackIndex == -1) throw new Error('Observer double dispose')
|
|
55
|
+
this.callbacks.splice(callbackIndex, 1)
|
|
56
|
+
/// TODO: dispose or ignore reader somehow if no callbacks
|
|
57
|
+
}
|
|
58
|
+
}
|
|
43
59
|
}
|
|
44
60
|
async change(obj, oldObj, id, timestamp) {
|
|
45
61
|
for(const callback of this.callbacks) await callback(obj, oldObj, id, timestamp)
|
|
@@ -47,7 +63,6 @@ class RangeReader extends ChangeStream {
|
|
|
47
63
|
async get() {
|
|
48
64
|
return await (await this.tableReader.table).rangeGet(this.range)
|
|
49
65
|
}
|
|
50
|
-
dispose() {}
|
|
51
66
|
}
|
|
52
67
|
|
|
53
68
|
class TableReader extends ChangeStream {
|
|
@@ -515,4 +530,4 @@ class Index extends Table {
|
|
|
515
530
|
}
|
|
516
531
|
}
|
|
517
532
|
|
|
518
|
-
module.exports = Index
|
|
533
|
+
module.exports = Index
|
package/lib/queryObservable.js
CHANGED
|
@@ -87,6 +87,12 @@ class Reader extends ChangeStream {
|
|
|
87
87
|
this.#observers.push(observer)
|
|
88
88
|
;(await this.#observable).observe(observer)
|
|
89
89
|
await observer.readPromise()
|
|
90
|
+
observer.dispose = async function() {
|
|
91
|
+
const observerIndex = this.#observers.indexOf(observer)
|
|
92
|
+
if(observerIndex == -1) throw new Error('Observer double dispose')
|
|
93
|
+
this.#observers.splice(observerIndex, 1)
|
|
94
|
+
;(await this.#observable).unobserve(observer)
|
|
95
|
+
}
|
|
90
96
|
return observer
|
|
91
97
|
}
|
|
92
98
|
async unobserve(observer) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/db",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.13",
|
|
4
4
|
"description": "Database with observable data for live queries",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/live-change/live-change-db",
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@live-change/db-store-level": "^0.5.
|
|
25
|
-
"@live-change/db-store-lmdb": "^0.5.
|
|
24
|
+
"@live-change/db-store-level": "^0.5.13",
|
|
25
|
+
"@live-change/db-store-lmdb": "^0.5.13",
|
|
26
26
|
"minimist": ">=1.2.3",
|
|
27
27
|
"rimraf": "^3.0.2",
|
|
28
28
|
"sockjs": "^0.3.24",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"websocket-extensions": ">=0.1.4"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@live-change/dao": "0.4.
|
|
33
|
+
"@live-change/dao": "0.4.13",
|
|
34
34
|
"get-random-values": "^1.2.2",
|
|
35
35
|
"node-interval-tree": "^1.3.3"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "e75a92ac01b8422076b660cf0dd5d8f4a80fe13c"
|
|
38
38
|
}
|