@bodil/bdb 0.1.1 → 0.1.3
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 +55 -0
- package/dist/broadcast.js +5 -1
- package/dist/broadcast.js.map +1 -1
- package/dist/index.test.js +26 -0
- package/dist/index.test.js.map +1 -1
- package/dist/query.d.ts +4 -2
- package/dist/query.js +31 -22
- package/dist/query.js.map +1 -1
- package/dist/table.js +4 -4
- package/dist/table.js.map +1 -1
- package/package.json +15 -13
- package/src/broadcast.ts +6 -1
- package/src/index.test.ts +42 -0
- package/src/query.ts +35 -28
- package/src/table.ts +4 -4
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# bdb
|
|
2
|
+
|
|
3
|
+
An easy to use and well typed reactive database for client side web apps. It
|
|
4
|
+
doesn't get more web scale than this!
|
|
5
|
+
|
|
6
|
+
## API Docs
|
|
7
|
+
|
|
8
|
+
Find the API docs here:
|
|
9
|
+
|
|
10
|
+
* [https://js.bodil.lol/projects/bdb/](https://js.bodil.lol/projects/bdb/en/stable/modules.html)
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import { createTable } from "@bodil/bdb";
|
|
16
|
+
|
|
17
|
+
type MovieStar = {
|
|
18
|
+
name: string;
|
|
19
|
+
powerLevel: number;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// Make a table of entries of type `MovieStar` with primary key `name`
|
|
23
|
+
const movieStars = createTable<MovieStar>()(index<MovieStar>()("name"))
|
|
24
|
+
// with an additional searchable index for `powerLevel`.
|
|
25
|
+
.withIndex(index<MovieStar>()("powerLevel"));
|
|
26
|
+
|
|
27
|
+
// Add some movie stars to the table.
|
|
28
|
+
table.add(
|
|
29
|
+
{ name: "Joe", powerLevel: 25 },
|
|
30
|
+
{ name: "Mike", powerLevel: 15 },
|
|
31
|
+
{ name: "Robert", powerLevel: 9001 },
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
// Lookup a movie star by primary key.
|
|
35
|
+
table.get("Joe"); // => { name: "Joe", powerLevel: 25 }
|
|
36
|
+
|
|
37
|
+
// Get all movie stars with `powerLevel` below 9000.
|
|
38
|
+
const query = table.where("powerLevel").below(9000);
|
|
39
|
+
query.toArray().map((i) => i.name); // => ["Joe", "Mike"]
|
|
40
|
+
|
|
41
|
+
// A live query of Robert's power level.
|
|
42
|
+
const robertsPowerLevel = table.signal("Robert")?.map((i) => i.powerLevel);
|
|
43
|
+
robertsPowerLevel.get(); // => 9001
|
|
44
|
+
// He gets more powerful as he fixes the bug!
|
|
45
|
+
table.update("Robert", (robert) => robert.powerLevel++);
|
|
46
|
+
robertsPowerLevel.get(); // => 9002
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Licence
|
|
50
|
+
|
|
51
|
+
Copyright 2025 Bodil Stokke
|
|
52
|
+
|
|
53
|
+
Licensed under the
|
|
54
|
+
[EUPL](https://interoperable-europe.ec.europa.eu/collection/eupl/eupl-text-eupl-12)
|
|
55
|
+
version 1.2 or later.
|
package/dist/broadcast.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Emitter } from "@bodil/core/async";
|
|
2
|
-
import { DisposableContext,
|
|
2
|
+
import { DisposableContext, toDisposable } from "@bodil/core/disposable";
|
|
3
|
+
function eventListener(target, type, callback) {
|
|
4
|
+
target.addEventListener(type, callback);
|
|
5
|
+
return toDisposable(() => target.removeEventListener(type, callback));
|
|
6
|
+
}
|
|
3
7
|
/** @internal */
|
|
4
8
|
export class Broadcaster extends Emitter {
|
|
5
9
|
constructor(name) {
|
package/dist/broadcast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,SAAS,aAAa,CAAC,MAAmB,EAAE,IAAY,EAAE,QAAuB;IAC7E,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,WAAyB,SAAQ,OAAoB;IAI9D,YAAY,IAAY;QACpB,KAAK,EAAE,CAAC;QAHK,YAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAI/C,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CACZ,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAgC,EAAE,EAAE,CACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAkB,CAAC,CAC/C,CAAC;IACN,CAAC;IAEQ,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAoB;QACrB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACJ"}
|
package/dist/index.test.js
CHANGED
|
@@ -150,4 +150,30 @@ test("IndexedDB", async () => {
|
|
|
150
150
|
]);
|
|
151
151
|
}
|
|
152
152
|
});
|
|
153
|
+
test("query.below/query.above", () => {
|
|
154
|
+
const table = createTable()(index()("id")).withIndex(index()("value"));
|
|
155
|
+
table.add({ id: "1", value: 1 }, { id: "2", value: 2 }, { id: "3", value: 3 }, { id: "4", value: 4 }, { id: "5", value: 5 });
|
|
156
|
+
expect(table
|
|
157
|
+
.where("value")
|
|
158
|
+
.below(3)
|
|
159
|
+
.toArray()
|
|
160
|
+
.map((i) => i.value)).toEqual([2, 1]);
|
|
161
|
+
expect(table
|
|
162
|
+
.where("value")
|
|
163
|
+
.below(3)
|
|
164
|
+
.inclusive()
|
|
165
|
+
.toArray()
|
|
166
|
+
.map((i) => i.value)).toEqual([3, 2, 1]);
|
|
167
|
+
expect(table
|
|
168
|
+
.where("value")
|
|
169
|
+
.above(3)
|
|
170
|
+
.toArray()
|
|
171
|
+
.map((i) => i.value)).toEqual([4, 5]);
|
|
172
|
+
expect(table
|
|
173
|
+
.where("value")
|
|
174
|
+
.above(3)
|
|
175
|
+
.inclusive()
|
|
176
|
+
.toArray()
|
|
177
|
+
.map((i) => i.value)).toEqual([3, 4, 5]);
|
|
178
|
+
});
|
|
153
179
|
//# sourceMappingURL=index.test.js.map
|
package/dist/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
package/dist/query.d.ts
CHANGED
|
@@ -4,8 +4,7 @@ import type { Index, UnitIndex } from "./indices";
|
|
|
4
4
|
import type { Table } from "./table";
|
|
5
5
|
export declare enum IteratorDirection {
|
|
6
6
|
Ascending = 0,
|
|
7
|
-
Descending = 1
|
|
8
|
-
DescendingExclusive = 2
|
|
7
|
+
Descending = 1
|
|
9
8
|
}
|
|
10
9
|
export declare abstract class Query<A extends object> implements Iterable<Readonly<A>> {
|
|
11
10
|
abstract [Symbol.iterator](): IterableIterator<Readonly<A>>;
|
|
@@ -27,12 +26,15 @@ export declare class IndexQuery<A extends object, PI extends UnitIndex<A>, I ext
|
|
|
27
26
|
private readonly indexTable?;
|
|
28
27
|
private readonly isPrimary;
|
|
29
28
|
private start?;
|
|
29
|
+
private skipStart;
|
|
30
30
|
private direction;
|
|
31
31
|
constructor(table: Table<A, PI, Ix>, indexKey: keyof Ix & string, direction: IteratorDirection, start?: I["keyType"]);
|
|
32
32
|
[Symbol.iterator](): IterableIterator<Readonly<A>>;
|
|
33
33
|
reverse(): this;
|
|
34
34
|
equals(value: I["keyType"]): ArrayQuery<A, PI, Ix>;
|
|
35
35
|
below(value: I["keyType"]): this;
|
|
36
|
+
above(value: I["keyType"]): this;
|
|
37
|
+
inclusive(): this;
|
|
36
38
|
max(): Option<I["keyType"]>;
|
|
37
39
|
min(): Option<I["keyType"]>;
|
|
38
40
|
}
|
package/dist/query.js
CHANGED
|
@@ -5,38 +5,37 @@ export var IteratorDirection;
|
|
|
5
5
|
(function (IteratorDirection) {
|
|
6
6
|
IteratorDirection[IteratorDirection["Ascending"] = 0] = "Ascending";
|
|
7
7
|
IteratorDirection[IteratorDirection["Descending"] = 1] = "Descending";
|
|
8
|
-
IteratorDirection[IteratorDirection["DescendingExclusive"] = 2] = "DescendingExclusive";
|
|
9
8
|
})(IteratorDirection || (IteratorDirection = {}));
|
|
10
|
-
function* indexIterator(table, direction, start) {
|
|
9
|
+
function* indexIterator(table, direction, start, skipStart = false) {
|
|
11
10
|
if (table.isEmpty) {
|
|
12
11
|
return;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
const entries = direction === IteratorDirection.Ascending
|
|
14
|
+
? table.entries(start)
|
|
15
|
+
: table.entriesReversed(start);
|
|
16
|
+
for (const entry of entries) {
|
|
17
|
+
if (skipStart && table._compare(entry[0], start) === 0) {
|
|
18
|
+
skipStart = false;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
else {
|
|
22
|
-
for (const entry of table.entriesReversed(start, undefined, direction === IteratorDirection.DescendingExclusive)) {
|
|
20
|
+
else {
|
|
23
21
|
for (const item of entry[1]) {
|
|
24
22
|
yield item;
|
|
25
23
|
}
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
|
-
function* primaryIndexIterator(table, direction, start) {
|
|
27
|
+
function* primaryIndexIterator(table, direction, start, skipStart = false) {
|
|
30
28
|
if (table.isEmpty) {
|
|
31
29
|
return;
|
|
32
30
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
const entries = direction === IteratorDirection.Ascending
|
|
32
|
+
? table.entries(start)
|
|
33
|
+
: table.entriesReversed(start);
|
|
34
|
+
for (const entry of entries) {
|
|
35
|
+
if (skipStart && table._compare(entry[0], start) === 0) {
|
|
36
|
+
skipStart = false;
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
else {
|
|
39
|
-
for (const entry of table.entriesReversed(start, undefined, direction === IteratorDirection.DescendingExclusive)) {
|
|
38
|
+
else {
|
|
40
39
|
yield entry[1];
|
|
41
40
|
}
|
|
42
41
|
}
|
|
@@ -78,6 +77,7 @@ export class TableQuery extends Query {
|
|
|
78
77
|
export class IndexQuery extends TableQuery {
|
|
79
78
|
constructor(table, indexKey, direction, start) {
|
|
80
79
|
super(table);
|
|
80
|
+
this.skipStart = false;
|
|
81
81
|
this.isPrimary = table.primaryIndex.name === indexKey;
|
|
82
82
|
if (this.isPrimary) {
|
|
83
83
|
this.index = table.primaryIndex;
|
|
@@ -92,8 +92,8 @@ export class IndexQuery extends TableQuery {
|
|
|
92
92
|
}
|
|
93
93
|
[Symbol.iterator]() {
|
|
94
94
|
return this.isPrimary
|
|
95
|
-
? primaryIndexIterator(this.table.primary, this.direction, this.start)
|
|
96
|
-
: indexIterator(this.indexTable, this.direction, this.start);
|
|
95
|
+
? primaryIndexIterator(this.table.primary, this.direction, this.start, this.skipStart)
|
|
96
|
+
: indexIterator(this.indexTable, this.direction, this.start, this.skipStart);
|
|
97
97
|
}
|
|
98
98
|
reverse() {
|
|
99
99
|
switch (this.direction) {
|
|
@@ -103,8 +103,6 @@ export class IndexQuery extends TableQuery {
|
|
|
103
103
|
case IteratorDirection.Descending:
|
|
104
104
|
this.direction = IteratorDirection.Ascending;
|
|
105
105
|
return this;
|
|
106
|
-
case IteratorDirection.DescendingExclusive:
|
|
107
|
-
throw new Error("not sure how to reverse IteratorDirection.DescendingExclusive");
|
|
108
106
|
}
|
|
109
107
|
}
|
|
110
108
|
equals(value) {
|
|
@@ -116,7 +114,18 @@ export class IndexQuery extends TableQuery {
|
|
|
116
114
|
}
|
|
117
115
|
below(value) {
|
|
118
116
|
this.start = value;
|
|
119
|
-
this.direction = IteratorDirection.
|
|
117
|
+
this.direction = IteratorDirection.Descending;
|
|
118
|
+
this.skipStart = true;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
above(value) {
|
|
122
|
+
this.start = value;
|
|
123
|
+
this.direction = IteratorDirection.Ascending;
|
|
124
|
+
this.skipStart = true;
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
inclusive() {
|
|
128
|
+
this.skipStart = false;
|
|
120
129
|
return this;
|
|
121
130
|
}
|
|
122
131
|
max() {
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAMvC,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/table.js
CHANGED
|
@@ -19,7 +19,7 @@ export class Table extends Emitter {
|
|
|
19
19
|
this.primary = new BTree();
|
|
20
20
|
this.indices = {};
|
|
21
21
|
this.indexTables = {};
|
|
22
|
-
this.changed = Signal(0);
|
|
22
|
+
this.changed = Signal.from(0);
|
|
23
23
|
this.#signals = new BTree();
|
|
24
24
|
this.#signalCleanupRegistry = new FinalizationRegistry(this.#signalCleanup.bind(this));
|
|
25
25
|
this.#context = new DisposableContext();
|
|
@@ -55,14 +55,14 @@ export class Table extends Emitter {
|
|
|
55
55
|
signal(primaryKey) {
|
|
56
56
|
const active = this.#signals.get(primaryKey)?.deref();
|
|
57
57
|
if (active !== undefined) {
|
|
58
|
-
return active.readOnly
|
|
58
|
+
return active.readOnly;
|
|
59
59
|
}
|
|
60
|
-
const sig = Signal(this.get(primaryKey), {
|
|
60
|
+
const sig = Signal.from(this.get(primaryKey), {
|
|
61
61
|
equals: () => false,
|
|
62
62
|
});
|
|
63
63
|
this.#signalCleanupRegistry.register(sig, primaryKey);
|
|
64
64
|
this.#signals.set(primaryKey, new WeakRef(sig));
|
|
65
|
-
return sig.readOnly
|
|
65
|
+
return sig.readOnly;
|
|
66
66
|
}
|
|
67
67
|
get(primaryKey) {
|
|
68
68
|
return this.primary.get(primaryKey);
|
package/dist/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAc,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,MAAM,cAAc,CAAC;AAGjC,OAAO,EAAE,WAAW,EAA8B,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAQzC,MAAM,OAAO,KACT,SAAQ,OAAqC;IAc7C,QAAQ,CAAuB;IACtB,QAAQ,CAA8E;IACtF,sBAAsB,CAA4D;IAClF,QAAQ,CAA2B;IAE5C,YAAY,YAAgB;QACxB,KAAK,EAAE,CAAC;QAjBZ,UAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;QAGhC,YAAO,GAAG,IAAI,KAAK,EAA8B,CAAC;QAClD,YAAO,GAAgE,EAAS,CAAC;QACjF,gBAAW,GAEhB,EAAS,CAAC;QAEL,YAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bodil/bdb",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "A signal enabled database",
|
|
5
5
|
"homepage": "https://codeberg.org/bodil/bdb",
|
|
6
6
|
"repository": {
|
|
@@ -26,31 +26,33 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@bodil/core": "^0.
|
|
30
|
-
"@bodil/opt": "^0.
|
|
31
|
-
"@bodil/signal": "^0.
|
|
32
|
-
"immer": "^11.
|
|
33
|
-
"sorted-btree": "2.
|
|
29
|
+
"@bodil/core": "^0.5.2",
|
|
30
|
+
"@bodil/opt": "^1.0.0",
|
|
31
|
+
"@bodil/signal": "^0.5.1",
|
|
32
|
+
"immer": "^11.1.3",
|
|
33
|
+
"sorted-btree": "2.1.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@eslint/eslintrc": "^3.3.3",
|
|
37
|
-
"@eslint/js": "^9.39.
|
|
37
|
+
"@eslint/js": "^9.39.2",
|
|
38
38
|
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
|
|
39
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
40
|
-
"@typescript-eslint/parser": "^8.
|
|
41
|
-
"
|
|
39
|
+
"@typescript-eslint/eslint-plugin": "^8.52.0",
|
|
40
|
+
"@typescript-eslint/parser": "^8.52.0",
|
|
41
|
+
"@typhonjs-typedoc/ts-lib-docs": "^2024.12.25",
|
|
42
|
+
"eslint": "^9.39.2",
|
|
42
43
|
"eslint-config-prettier": "^10.1.8",
|
|
43
|
-
"eslint-plugin-jsdoc": "^
|
|
44
|
+
"eslint-plugin-jsdoc": "^61.5.0",
|
|
44
45
|
"fake-indexeddb": "^6.2.5",
|
|
45
|
-
"globals": "^
|
|
46
|
+
"globals": "^17.0.0",
|
|
46
47
|
"npm-run-all2": "^8.0.4",
|
|
47
48
|
"prettier": "^3.7.4",
|
|
48
49
|
"temporal-polyfill": "^0.3.0",
|
|
49
50
|
"typedoc": "^0.28.15",
|
|
50
51
|
"typedoc-plugin-extras": "^4.0.1",
|
|
51
52
|
"typedoc-plugin-mdn-links": "^5.0.10",
|
|
53
|
+
"typedoc-theme-fresh": "^0.2.3",
|
|
52
54
|
"typescript": "^5.9.3",
|
|
53
|
-
"vitest": "^
|
|
55
|
+
"vitest": "^4.0.16"
|
|
54
56
|
},
|
|
55
57
|
"prettier": {
|
|
56
58
|
"editorconfig": true,
|
package/src/broadcast.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Emitter } from "@bodil/core/async";
|
|
2
|
-
import { DisposableContext,
|
|
2
|
+
import { DisposableContext, toDisposable } from "@bodil/core/disposable";
|
|
3
|
+
|
|
4
|
+
function eventListener(target: EventTarget, type: string, callback: EventListener) {
|
|
5
|
+
target.addEventListener(type, callback);
|
|
6
|
+
return toDisposable(() => target.removeEventListener(type, callback));
|
|
7
|
+
}
|
|
3
8
|
|
|
4
9
|
/** @internal */
|
|
5
10
|
export class Broadcaster<MessageType> extends Emitter<MessageType> implements Disposable {
|
package/src/index.test.ts
CHANGED
|
@@ -210,3 +210,45 @@ test("IndexedDB", async () => {
|
|
|
210
210
|
]);
|
|
211
211
|
}
|
|
212
212
|
});
|
|
213
|
+
|
|
214
|
+
test("query.below/query.above", () => {
|
|
215
|
+
type Item = { id: string; value: number };
|
|
216
|
+
const table = createTable<Item>()(index<Item>()("id")).withIndex(index<Item>()("value"));
|
|
217
|
+
table.add(
|
|
218
|
+
{ id: "1", value: 1 },
|
|
219
|
+
{ id: "2", value: 2 },
|
|
220
|
+
{ id: "3", value: 3 },
|
|
221
|
+
{ id: "4", value: 4 },
|
|
222
|
+
{ id: "5", value: 5 },
|
|
223
|
+
);
|
|
224
|
+
expect(
|
|
225
|
+
table
|
|
226
|
+
.where("value")
|
|
227
|
+
.below(3)
|
|
228
|
+
.toArray()
|
|
229
|
+
.map((i) => i.value),
|
|
230
|
+
).toEqual([2, 1]);
|
|
231
|
+
expect(
|
|
232
|
+
table
|
|
233
|
+
.where("value")
|
|
234
|
+
.below(3)
|
|
235
|
+
.inclusive()
|
|
236
|
+
.toArray()
|
|
237
|
+
.map((i) => i.value),
|
|
238
|
+
).toEqual([3, 2, 1]);
|
|
239
|
+
expect(
|
|
240
|
+
table
|
|
241
|
+
.where("value")
|
|
242
|
+
.above(3)
|
|
243
|
+
.toArray()
|
|
244
|
+
.map((i) => i.value),
|
|
245
|
+
).toEqual([4, 5]);
|
|
246
|
+
expect(
|
|
247
|
+
table
|
|
248
|
+
.where("value")
|
|
249
|
+
.above(3)
|
|
250
|
+
.inclusive()
|
|
251
|
+
.toArray()
|
|
252
|
+
.map((i) => i.value),
|
|
253
|
+
).toEqual([3, 4, 5]);
|
|
254
|
+
});
|
package/src/query.ts
CHANGED
|
@@ -9,29 +9,25 @@ import type { Table } from "./table";
|
|
|
9
9
|
export enum IteratorDirection {
|
|
10
10
|
Ascending = 0,
|
|
11
11
|
Descending = 1,
|
|
12
|
-
DescendingExclusive = 2,
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
function* indexIterator<A extends object, I extends Index<A>>(
|
|
16
15
|
table: BTree<I["keyType"], Array<A>>,
|
|
17
16
|
direction: IteratorDirection,
|
|
18
17
|
start?: I["keyType"],
|
|
18
|
+
skipStart = false,
|
|
19
19
|
): Generator<Readonly<A>> {
|
|
20
20
|
if (table.isEmpty) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
start,
|
|
32
|
-
undefined,
|
|
33
|
-
direction === IteratorDirection.DescendingExclusive,
|
|
34
|
-
)) {
|
|
23
|
+
const entries =
|
|
24
|
+
direction === IteratorDirection.Ascending
|
|
25
|
+
? table.entries(start)
|
|
26
|
+
: table.entriesReversed(start);
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
if (skipStart && table._compare(entry[0], start) === 0) {
|
|
29
|
+
skipStart = false;
|
|
30
|
+
} else {
|
|
35
31
|
for (const item of entry[1]) {
|
|
36
32
|
yield item;
|
|
37
33
|
}
|
|
@@ -43,20 +39,19 @@ function* primaryIndexIterator<A extends object, I extends UnitIndex<A>>(
|
|
|
43
39
|
table: BTree<I["keyType"], Readonly<A>>,
|
|
44
40
|
direction: IteratorDirection,
|
|
45
41
|
start?: I["keyType"],
|
|
42
|
+
skipStart = false,
|
|
46
43
|
): Generator<Readonly<A>> {
|
|
47
44
|
if (table.isEmpty) {
|
|
48
45
|
return;
|
|
49
46
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
direction === IteratorDirection.DescendingExclusive,
|
|
59
|
-
)) {
|
|
47
|
+
const entries =
|
|
48
|
+
direction === IteratorDirection.Ascending
|
|
49
|
+
? table.entries(start)
|
|
50
|
+
: table.entriesReversed(start);
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
if (skipStart && table._compare(entry[0], start) === 0) {
|
|
53
|
+
skipStart = false;
|
|
54
|
+
} else {
|
|
60
55
|
yield entry[1];
|
|
61
56
|
}
|
|
62
57
|
}
|
|
@@ -123,6 +118,7 @@ export class IndexQuery<
|
|
|
123
118
|
private readonly indexTable?: BTree<I["keyType"], Array<A>>;
|
|
124
119
|
private readonly isPrimary: boolean;
|
|
125
120
|
private start?: I["keyType"];
|
|
121
|
+
private skipStart = false;
|
|
126
122
|
private direction: IteratorDirection;
|
|
127
123
|
|
|
128
124
|
constructor(
|
|
@@ -146,8 +142,8 @@ export class IndexQuery<
|
|
|
146
142
|
|
|
147
143
|
[Symbol.iterator](): IterableIterator<Readonly<A>> {
|
|
148
144
|
return this.isPrimary
|
|
149
|
-
? primaryIndexIterator(this.table.primary, this.direction, this.start)
|
|
150
|
-
: indexIterator(this.indexTable!, this.direction, this.start);
|
|
145
|
+
? primaryIndexIterator(this.table.primary, this.direction, this.start, this.skipStart)
|
|
146
|
+
: indexIterator(this.indexTable!, this.direction, this.start, this.skipStart);
|
|
151
147
|
}
|
|
152
148
|
|
|
153
149
|
reverse(): this {
|
|
@@ -158,8 +154,6 @@ export class IndexQuery<
|
|
|
158
154
|
case IteratorDirection.Descending:
|
|
159
155
|
this.direction = IteratorDirection.Ascending;
|
|
160
156
|
return this;
|
|
161
|
-
case IteratorDirection.DescendingExclusive:
|
|
162
|
-
throw new Error("not sure how to reverse IteratorDirection.DescendingExclusive");
|
|
163
157
|
}
|
|
164
158
|
}
|
|
165
159
|
|
|
@@ -173,7 +167,20 @@ export class IndexQuery<
|
|
|
173
167
|
|
|
174
168
|
below(value: I["keyType"]): this {
|
|
175
169
|
this.start = value;
|
|
176
|
-
this.direction = IteratorDirection.
|
|
170
|
+
this.direction = IteratorDirection.Descending;
|
|
171
|
+
this.skipStart = true;
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
above(value: I["keyType"]): this {
|
|
176
|
+
this.start = value;
|
|
177
|
+
this.direction = IteratorDirection.Ascending;
|
|
178
|
+
this.skipStart = true;
|
|
179
|
+
return this;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
inclusive(): this {
|
|
183
|
+
this.skipStart = false;
|
|
177
184
|
return this;
|
|
178
185
|
}
|
|
179
186
|
|
package/src/table.ts
CHANGED
|
@@ -30,7 +30,7 @@ export class Table<A extends object, PI extends UnitIndex<A>, Ix extends object>
|
|
|
30
30
|
[K in Exclude<keyof Ix & string, PI["name"]>]: BTree<Ix[K], Array<A>>;
|
|
31
31
|
} = {} as any;
|
|
32
32
|
|
|
33
|
-
readonly changed = Signal(0);
|
|
33
|
+
readonly changed = Signal.from(0);
|
|
34
34
|
|
|
35
35
|
#storage?: TableStorage<A, PI>;
|
|
36
36
|
readonly #signals = new BTree<PI["keyType"], WeakRef<Signal.State<Readonly<A> | undefined>>>();
|
|
@@ -82,14 +82,14 @@ export class Table<A extends object, PI extends UnitIndex<A>, Ix extends object>
|
|
|
82
82
|
signal(primaryKey: PI["keyType"]): Signal.Computed<Readonly<A> | undefined> {
|
|
83
83
|
const active = this.#signals.get(primaryKey)?.deref();
|
|
84
84
|
if (active !== undefined) {
|
|
85
|
-
return active.readOnly
|
|
85
|
+
return active.readOnly;
|
|
86
86
|
}
|
|
87
|
-
const sig = Signal(this.get(primaryKey), {
|
|
87
|
+
const sig = Signal.from(this.get(primaryKey), {
|
|
88
88
|
equals: () => false,
|
|
89
89
|
});
|
|
90
90
|
this.#signalCleanupRegistry.register(sig, primaryKey);
|
|
91
91
|
this.#signals.set(primaryKey, new WeakRef(sig));
|
|
92
|
-
return sig.readOnly
|
|
92
|
+
return sig.readOnly;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
get(primaryKey: PI["keyType"]): Readonly<A> | undefined {
|