@dxos/echo-db 2.29.2-dev.8c2ad8e5 → 2.29.2-dev.f6ed60b8
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/dist/src/api/database.d.ts +11 -7
- package/dist/src/api/database.d.ts.map +1 -1
- package/dist/src/api/database.js +22 -24
- package/dist/src/api/database.js.map +1 -1
- package/dist/src/api/database.test.js +13 -13
- package/dist/src/api/database.test.js.map +1 -1
- package/dist/src/api/item.d.ts.map +1 -1
- package/dist/src/api/item.js +1 -1
- package/dist/src/api/item.js.map +1 -1
- package/dist/src/api/result-set.d.ts.map +1 -1
- package/dist/src/api/result-set.js +1 -0
- package/dist/src/api/result-set.js.map +1 -1
- package/dist/src/api/selection/index.d.ts +5 -0
- package/dist/src/api/selection/index.d.ts.map +1 -0
- package/dist/src/api/selection/index.js +20 -0
- package/dist/src/api/selection/index.js.map +1 -0
- package/dist/src/api/selection/queries.d.ts +51 -0
- package/dist/src/api/selection/queries.d.ts.map +1 -0
- package/dist/src/api/selection/queries.js +70 -0
- package/dist/src/api/selection/queries.js.map +1 -0
- package/dist/src/api/selection/result.d.ts +50 -0
- package/dist/src/api/selection/result.d.ts.map +1 -0
- package/dist/src/api/selection/result.js +91 -0
- package/dist/src/api/selection/result.js.map +1 -0
- package/dist/src/api/selection/selection.d.ts +96 -0
- package/dist/src/api/selection/selection.d.ts.map +1 -0
- package/dist/src/api/selection/selection.js +164 -0
- package/dist/src/api/selection/selection.js.map +1 -0
- package/dist/src/api/{selection.test.d.ts → selection/selection.test.d.ts} +0 -0
- package/dist/src/api/selection/selection.test.d.ts.map +1 -0
- package/dist/src/api/{selection.test.js → selection/selection.test.js} +46 -44
- package/dist/src/api/selection/selection.test.js.map +1 -0
- package/dist/src/api/selection/util.d.ts +7 -0
- package/dist/src/api/selection/util.d.ts.map +1 -0
- package/dist/src/api/selection/util.js +25 -0
- package/dist/src/api/selection/util.js.map +1 -0
- package/dist/src/echo.test.js +20 -20
- package/dist/src/echo.test.js.map +1 -1
- package/dist/src/halo/contact-manager.js +2 -2
- package/dist/src/halo/contact-manager.js.map +1 -1
- package/dist/src/halo/halo.d.ts +1 -1
- package/dist/src/halo/halo.d.ts.map +1 -1
- package/dist/src/halo/halo.js +2 -2
- package/dist/src/halo/halo.js.map +1 -1
- package/dist/src/halo/preferences.js +6 -6
- package/dist/src/halo/preferences.js.map +1 -1
- package/dist/src/parties/party-core.test.js +3 -3
- package/dist/src/parties/party-core.test.js.map +1 -1
- package/dist/src/parties/party-factory.d.ts.map +1 -1
- package/dist/src/parties/party-factory.js +3 -3
- package/dist/src/parties/party-factory.js.map +1 -1
- package/dist/src/parties/party-internal.js +3 -3
- package/dist/src/parties/party-internal.js.map +1 -1
- package/dist/src/parties/party-manager.js +1 -1
- package/dist/src/parties/party-manager.js.map +1 -1
- package/dist/src/parties/party-manager.test.js +8 -10
- package/dist/src/parties/party-manager.test.js.map +1 -1
- package/dist/src/testing/testing-factories.d.ts +2 -2
- package/dist/src/testing/testing-factories.d.ts.map +1 -1
- package/dist/src/testing/testing-factories.js +1 -1
- package/dist/src/testing/testing-factories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/src/api/database.test.ts +13 -13
- package/src/api/database.ts +30 -30
- package/src/api/item.ts +2 -2
- package/src/api/result-set.ts +1 -0
- package/src/api/selection/index.ts +8 -0
- package/src/api/selection/queries.ts +108 -0
- package/src/api/selection/result.ts +112 -0
- package/src/api/{selection.test.ts → selection/selection.test.ts} +50 -48
- package/src/api/{selection.ts → selection/selection.ts} +30 -231
- package/src/api/selection/util.ts +27 -0
- package/src/echo.test.ts +20 -20
- package/src/halo/contact-manager.ts +2 -2
- package/src/halo/halo.ts +2 -3
- package/src/halo/preferences.ts +6 -6
- package/src/parties/party-core.test.ts +3 -3
- package/src/parties/party-factory.ts +3 -4
- package/src/parties/party-internal.ts +3 -3
- package/src/parties/party-manager.test.ts +8 -10
- package/src/parties/party-manager.ts +1 -1
- package/src/testing/testing-factories.ts +3 -3
- package/dist/src/api/selection.d.ts +0 -183
- package/dist/src/api/selection.d.ts.map +0 -1
- package/dist/src/api/selection.js +0 -308
- package/dist/src/api/selection.js.map +0 -1
- package/dist/src/api/selection.test.d.ts.map +0 -1
- package/dist/src/api/selection.test.js.map +0 -1
|
@@ -8,7 +8,7 @@ import { Model } from '@dxos/model-factory';
|
|
|
8
8
|
import { ObjectModel } from '@dxos/object-model';
|
|
9
9
|
import { range } from '@dxos/util';
|
|
10
10
|
|
|
11
|
-
import { Item,
|
|
11
|
+
import { Item, CreateItemOption } from '../api';
|
|
12
12
|
import { ECHO } from '../echo';
|
|
13
13
|
import { PartyInternal } from '../parties';
|
|
14
14
|
import { createTestInstance, inviteTestPeer } from './testing';
|
|
@@ -54,7 +54,7 @@ const createParties = async (peerCount = 2): Promise<{ peers: ECHO[], parties: W
|
|
|
54
54
|
* @returns Item instances from each of the peers.
|
|
55
55
|
*/
|
|
56
56
|
export const createModelTestBench = async<M extends Model<any>> (
|
|
57
|
-
options:
|
|
57
|
+
options: CreateItemOption<M> & { peerCount?: number}
|
|
58
58
|
): Promise<{ peers: ECHO[], items: WithTestMeta<Item<M>>[] }> => {
|
|
59
59
|
const { peers, parties } = await createParties(options.peerCount ?? 2);
|
|
60
60
|
for (const party of parties) {
|
|
@@ -72,7 +72,7 @@ export const createModelTestBench = async<M extends Model<any>> (
|
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
await party.database.select().
|
|
75
|
+
await party.database.select().exec().update.waitFor(() => !!party.database.getItem(item.id));
|
|
76
76
|
}));
|
|
77
77
|
|
|
78
78
|
const items = parties
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { Event } from '@dxos/async';
|
|
2
|
-
import { ItemID } from '@dxos/echo-protocol';
|
|
3
|
-
import { Database } from './database';
|
|
4
|
-
import { Entity } from './entity';
|
|
5
|
-
import { Item } from './item';
|
|
6
|
-
import { Link } from './link';
|
|
7
|
-
export declare type OneOrMultiple<T> = T | T[];
|
|
8
|
-
export declare type ItemIdFilter = {
|
|
9
|
-
id: ItemID;
|
|
10
|
-
};
|
|
11
|
-
export declare type ItemFilter = {
|
|
12
|
-
type?: OneOrMultiple<string>;
|
|
13
|
-
parent?: ItemID | Item;
|
|
14
|
-
};
|
|
15
|
-
export declare type LinkFilter = {
|
|
16
|
-
type?: OneOrMultiple<string>;
|
|
17
|
-
};
|
|
18
|
-
export declare type Predicate<T extends Entity> = (entity: T) => boolean;
|
|
19
|
-
export declare type RootFilter = ItemIdFilter | ItemFilter | Predicate<Item>;
|
|
20
|
-
export declare type RootSelector<R = void> = (filter?: RootFilter) => Selection<Item<any>, R>;
|
|
21
|
-
/**
|
|
22
|
-
* Controls how deleted items are filtered.
|
|
23
|
-
*/
|
|
24
|
-
export declare enum ItemFilterDeleted {
|
|
25
|
-
/**
|
|
26
|
-
* Do not return deleted items. Default behaviour.
|
|
27
|
-
*/
|
|
28
|
-
HIDE_DELETED = 0,
|
|
29
|
-
/**
|
|
30
|
-
* Return deleted and regular items.
|
|
31
|
-
*/
|
|
32
|
-
SHOW_DELETED = 1,
|
|
33
|
-
/**
|
|
34
|
-
* Return only deleted items.
|
|
35
|
-
*/
|
|
36
|
-
SHOW_DELETED_ONLY = 2
|
|
37
|
-
}
|
|
38
|
-
export declare type QueryOptions = {
|
|
39
|
-
/**
|
|
40
|
-
* Controls how deleted items are filtered.
|
|
41
|
-
*/
|
|
42
|
-
deleted?: ItemFilterDeleted;
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Represents where the selection has started.
|
|
46
|
-
*/
|
|
47
|
-
export declare type SelectionRoot = Database | Entity;
|
|
48
|
-
/**
|
|
49
|
-
* Returned from each stage of the visitor.
|
|
50
|
-
*/
|
|
51
|
-
export declare type SelectionContext<T extends Entity, R> = [entities: T[], result?: R];
|
|
52
|
-
/**
|
|
53
|
-
* Visitor callback.
|
|
54
|
-
* The visitor is passed the current entities and result (accumulator),
|
|
55
|
-
* which may be modified and returned.
|
|
56
|
-
*/
|
|
57
|
-
export declare type Callable<T extends Entity, R> = (entities: T[], result: R) => R;
|
|
58
|
-
/**
|
|
59
|
-
* Factory for selector that provides a root set of items.
|
|
60
|
-
* @param itemsProvider
|
|
61
|
-
* @param updateEventProvider
|
|
62
|
-
* @param root
|
|
63
|
-
* @param filter
|
|
64
|
-
* @param value Initial reducer value.
|
|
65
|
-
*/
|
|
66
|
-
export declare const createSelector: <R>(itemsProvider: () => Item[], updateEventProvider: () => Event<Entity[]>, root: SelectionRoot, filter: RootFilter | undefined, value: R) => Selection<Item<any>, R>;
|
|
67
|
-
/**
|
|
68
|
-
* Factory for specific item selector.
|
|
69
|
-
* @param root
|
|
70
|
-
* @param update
|
|
71
|
-
* @param value Initial reducer value.
|
|
72
|
-
*/
|
|
73
|
-
export declare const createItemSelector: <R>(root: Item<any>, update: Event<Entity[]>, value: R) => Selection<Item<any>, R>;
|
|
74
|
-
/**
|
|
75
|
-
* Selections are used to construct database subscriptions.
|
|
76
|
-
* They are [monads](https://www.quora.com/What-are-monads-in-computer-science) that support
|
|
77
|
-
* the functional composition of predicates to traverse the graph.
|
|
78
|
-
* Additionally, selections may be used to create reducers that compute an aggregated value over the traversal.
|
|
79
|
-
*
|
|
80
|
-
* Implementation:
|
|
81
|
-
* Each Selection contains a visitor
|
|
82
|
-
*/
|
|
83
|
-
export declare class Selection<T extends Entity<any>, R = void> {
|
|
84
|
-
private readonly _visitor;
|
|
85
|
-
private readonly _update;
|
|
86
|
-
private readonly _root;
|
|
87
|
-
private readonly _reducer;
|
|
88
|
-
/**
|
|
89
|
-
* @param _visitor Executes the query.
|
|
90
|
-
* @param _update The unfiltered update event.
|
|
91
|
-
* @param _root The root of the selection. Must be a stable reference.
|
|
92
|
-
* @param _reducer
|
|
93
|
-
*/
|
|
94
|
-
constructor(_visitor: (options: QueryOptions) => SelectionContext<T, R>, _update: Event<Entity[]>, _root: SelectionRoot, _reducer?: boolean);
|
|
95
|
-
/**
|
|
96
|
-
* Creates a derrived selection by aplying a mapping function to the result of the current selection.
|
|
97
|
-
*/
|
|
98
|
-
private _createSubSelection;
|
|
99
|
-
/**
|
|
100
|
-
* Finish the selection and return the result.
|
|
101
|
-
*/
|
|
102
|
-
query(options?: QueryOptions): SelectionResult<T, R>;
|
|
103
|
-
/**
|
|
104
|
-
* The root of the selection. Either a database or an item. Must be a stable reference.
|
|
105
|
-
*/
|
|
106
|
-
get root(): SelectionRoot;
|
|
107
|
-
/**
|
|
108
|
-
* Visitor.
|
|
109
|
-
* @param visitor
|
|
110
|
-
*/
|
|
111
|
-
call(visitor: Callable<T, R>): Selection<T, R>;
|
|
112
|
-
/**
|
|
113
|
-
* Filter entities of this selection.
|
|
114
|
-
* @param filter A filter object or a predicate function.
|
|
115
|
-
*/
|
|
116
|
-
filter(this: Selection<Item<any>, R>, filter: ItemFilter): Selection<Item<any>, R>;
|
|
117
|
-
filter<U extends Entity>(this: Selection<U, R>, filter: Predicate<U>): Selection<U, R>;
|
|
118
|
-
/**
|
|
119
|
-
* Select children of the items in this selection.
|
|
120
|
-
*/
|
|
121
|
-
children(this: Selection<Item<any>, R>, filter?: ItemFilter): Selection<Item<any>, R>;
|
|
122
|
-
/**
|
|
123
|
-
* Select parent of the items in this selection.
|
|
124
|
-
*/
|
|
125
|
-
parent(this: Selection<Item<any>, R>): Selection<Item<any>, R>;
|
|
126
|
-
/**
|
|
127
|
-
* Select links sourcing from the items in this selection.
|
|
128
|
-
*/
|
|
129
|
-
links(this: Selection<Item<any>, R>, filter?: LinkFilter): Selection<Link, R>;
|
|
130
|
-
/**
|
|
131
|
-
* Select links pointing to items in this selection.
|
|
132
|
-
*/
|
|
133
|
-
refs(this: Selection<Item<any>, R>, filter?: LinkFilter): Selection<Link, R>;
|
|
134
|
-
/**
|
|
135
|
-
* Select targets of links in this selection.
|
|
136
|
-
*/
|
|
137
|
-
target(this: Selection<Link, R>, filter?: ItemFilter): Selection<Item<any>, R>;
|
|
138
|
-
/**
|
|
139
|
-
* Select sources of links in this selection.
|
|
140
|
-
*/
|
|
141
|
-
source(this: Selection<Link, R>, filter?: ItemFilter): Selection<Item<any>, R>;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Query subscription.
|
|
145
|
-
* Represents a live-query (subscription) that can notify about future updates to the relevant subset of items.
|
|
146
|
-
*/
|
|
147
|
-
export declare class SelectionResult<T extends Entity, R = any> {
|
|
148
|
-
private readonly _execute;
|
|
149
|
-
private readonly _update;
|
|
150
|
-
private readonly _root;
|
|
151
|
-
private readonly _reducer;
|
|
152
|
-
/**
|
|
153
|
-
* Fired when there are updates in the selection.
|
|
154
|
-
* Only update that are relevant to the selection cause the update.
|
|
155
|
-
*/
|
|
156
|
-
readonly update: Event<SelectionResult<T, any>>;
|
|
157
|
-
private _lastResult;
|
|
158
|
-
constructor(_execute: () => SelectionContext<T, R>, _update: Event<Entity[]>, _root: SelectionRoot, _reducer: boolean);
|
|
159
|
-
/**
|
|
160
|
-
* Re-run query.
|
|
161
|
-
*/
|
|
162
|
-
refresh(): this;
|
|
163
|
-
/**
|
|
164
|
-
* The root of the selection. Either a database or an item. Must be a stable reference.
|
|
165
|
-
*/
|
|
166
|
-
get root(): SelectionRoot;
|
|
167
|
-
/**
|
|
168
|
-
* @deprecated
|
|
169
|
-
*/
|
|
170
|
-
/**
|
|
171
|
-
* Get the result of this selection.
|
|
172
|
-
*/
|
|
173
|
-
get entities(): T[];
|
|
174
|
-
/**
|
|
175
|
-
* Returns the selection or reducer result.
|
|
176
|
-
*/
|
|
177
|
-
get value(): R extends void ? T[] : R;
|
|
178
|
-
/**
|
|
179
|
-
* Return the first element if the set has exactly one element.
|
|
180
|
-
*/
|
|
181
|
-
expectOne(): T;
|
|
182
|
-
}
|
|
183
|
-
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/api/selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// Copyright 2020 DXOS.org
|
|
4
|
-
//
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.SelectionResult = exports.Selection = exports.createItemSelector = exports.createSelector = exports.ItemFilterDeleted = void 0;
|
|
10
|
-
const assert_1 = __importDefault(require("assert"));
|
|
11
|
-
const async_1 = require("@dxos/async");
|
|
12
|
-
const item_1 = require("./item");
|
|
13
|
-
/**
|
|
14
|
-
* Controls how deleted items are filtered.
|
|
15
|
-
*/
|
|
16
|
-
var ItemFilterDeleted;
|
|
17
|
-
(function (ItemFilterDeleted) {
|
|
18
|
-
/**
|
|
19
|
-
* Do not return deleted items. Default behaviour.
|
|
20
|
-
*/
|
|
21
|
-
ItemFilterDeleted[ItemFilterDeleted["HIDE_DELETED"] = 0] = "HIDE_DELETED";
|
|
22
|
-
/**
|
|
23
|
-
* Return deleted and regular items.
|
|
24
|
-
*/
|
|
25
|
-
ItemFilterDeleted[ItemFilterDeleted["SHOW_DELETED"] = 1] = "SHOW_DELETED";
|
|
26
|
-
/**
|
|
27
|
-
* Return only deleted items.
|
|
28
|
-
*/
|
|
29
|
-
ItemFilterDeleted[ItemFilterDeleted["SHOW_DELETED_ONLY"] = 2] = "SHOW_DELETED_ONLY";
|
|
30
|
-
})(ItemFilterDeleted = exports.ItemFilterDeleted || (exports.ItemFilterDeleted = {}));
|
|
31
|
-
/**
|
|
32
|
-
* Factory for selector that provides a root set of items.
|
|
33
|
-
* @param itemsProvider
|
|
34
|
-
* @param updateEventProvider
|
|
35
|
-
* @param root
|
|
36
|
-
* @param filter
|
|
37
|
-
* @param value Initial reducer value.
|
|
38
|
-
*/
|
|
39
|
-
const createSelector = (
|
|
40
|
-
// Provider is called each time the query is executed.
|
|
41
|
-
itemsProvider,
|
|
42
|
-
// TODO(burdon): Replace with direct event handler.
|
|
43
|
-
updateEventProvider, root, filter, value) => {
|
|
44
|
-
const predicate = filter ? filterToPredicate(filter) : () => true;
|
|
45
|
-
const visitor = (options) => {
|
|
46
|
-
const items = itemsProvider()
|
|
47
|
-
.filter(createQueryOptionsFilter(options))
|
|
48
|
-
.filter(predicate);
|
|
49
|
-
return [items, value];
|
|
50
|
-
};
|
|
51
|
-
return new Selection(visitor, updateEventProvider(), root, value !== undefined);
|
|
52
|
-
};
|
|
53
|
-
exports.createSelector = createSelector;
|
|
54
|
-
/**
|
|
55
|
-
* Factory for specific item selector.
|
|
56
|
-
* @param root
|
|
57
|
-
* @param update
|
|
58
|
-
* @param value Initial reducer value.
|
|
59
|
-
*/
|
|
60
|
-
const createItemSelector = (root, update, value) => new Selection(() => [[root], value], update, root, value !== undefined);
|
|
61
|
-
exports.createItemSelector = createItemSelector;
|
|
62
|
-
/**
|
|
63
|
-
* Selections are used to construct database subscriptions.
|
|
64
|
-
* They are [monads](https://www.quora.com/What-are-monads-in-computer-science) that support
|
|
65
|
-
* the functional composition of predicates to traverse the graph.
|
|
66
|
-
* Additionally, selections may be used to create reducers that compute an aggregated value over the traversal.
|
|
67
|
-
*
|
|
68
|
-
* Implementation:
|
|
69
|
-
* Each Selection contains a visitor
|
|
70
|
-
*/
|
|
71
|
-
class Selection {
|
|
72
|
-
/**
|
|
73
|
-
* @param _visitor Executes the query.
|
|
74
|
-
* @param _update The unfiltered update event.
|
|
75
|
-
* @param _root The root of the selection. Must be a stable reference.
|
|
76
|
-
* @param _reducer
|
|
77
|
-
*/
|
|
78
|
-
constructor(_visitor, _update, _root, _reducer = false) {
|
|
79
|
-
this._visitor = _visitor;
|
|
80
|
-
this._update = _update;
|
|
81
|
-
this._root = _root;
|
|
82
|
-
this._reducer = _reducer;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Creates a derrived selection by aplying a mapping function to the result of the current selection.
|
|
86
|
-
*/
|
|
87
|
-
_createSubSelection(map) {
|
|
88
|
-
return new Selection(options => map(this._visitor(options), options), this._update, this._root, this._reducer);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Finish the selection and return the result.
|
|
92
|
-
*/
|
|
93
|
-
// TODO(burdon): Rename exec.
|
|
94
|
-
query(options = {}) {
|
|
95
|
-
return new SelectionResult(() => this._visitor(options), this._update, this._root, this._reducer);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* The root of the selection. Either a database or an item. Must be a stable reference.
|
|
99
|
-
*/
|
|
100
|
-
get root() {
|
|
101
|
-
return this._root;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Visitor.
|
|
105
|
-
* @param visitor
|
|
106
|
-
*/
|
|
107
|
-
call(visitor) {
|
|
108
|
-
return this._createSubSelection(([items, result]) => [items, visitor(items, result)]);
|
|
109
|
-
}
|
|
110
|
-
filter(filter) {
|
|
111
|
-
const predicate = filterToPredicate(filter);
|
|
112
|
-
return this._createSubSelection(([items, result]) => [items.filter(predicate), result]);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Select children of the items in this selection.
|
|
116
|
-
*/
|
|
117
|
-
children(filter) {
|
|
118
|
-
const predicate = filter ? filterToPredicate(filter) : Boolean;
|
|
119
|
-
return this._createSubSelection(([items, result], options) => [
|
|
120
|
-
items.flatMap(item => Array.from(item._children.values())
|
|
121
|
-
.filter(createQueryOptionsFilter(options))
|
|
122
|
-
.filter(predicate)),
|
|
123
|
-
result
|
|
124
|
-
]);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Select parent of the items in this selection.
|
|
128
|
-
*/
|
|
129
|
-
parent() {
|
|
130
|
-
return this._createSubSelection(([items, result], options) => [
|
|
131
|
-
items.flatMap(item => item.parent ? [item.parent].filter(createQueryOptionsFilter(options)) : []),
|
|
132
|
-
result
|
|
133
|
-
]);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Select links sourcing from the items in this selection.
|
|
137
|
-
*/
|
|
138
|
-
links(filter = {}) {
|
|
139
|
-
const predicate = linkFilterToPredicate(filter);
|
|
140
|
-
return this._createSubSelection(([items, result], options) => [
|
|
141
|
-
items.flatMap(item => item.links.filter(predicate).filter(createQueryOptionsFilter(options))),
|
|
142
|
-
result
|
|
143
|
-
]);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Select links pointing to items in this selection.
|
|
147
|
-
*/
|
|
148
|
-
refs(filter = {}) {
|
|
149
|
-
const predicate = linkFilterToPredicate(filter);
|
|
150
|
-
return this._createSubSelection(([items, result], options) => [
|
|
151
|
-
items.flatMap(item => item.refs.filter(predicate).filter(createQueryOptionsFilter(options))),
|
|
152
|
-
result
|
|
153
|
-
]);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Select targets of links in this selection.
|
|
157
|
-
*/
|
|
158
|
-
target(filter = {}) {
|
|
159
|
-
const predicate = filterToPredicate(filter);
|
|
160
|
-
return this._createSubSelection(([links, result], options) => [
|
|
161
|
-
links.flatMap(link => link.target).filter(predicate).filter(createQueryOptionsFilter(options)),
|
|
162
|
-
result
|
|
163
|
-
]);
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Select sources of links in this selection.
|
|
167
|
-
*/
|
|
168
|
-
source(filter = {}) {
|
|
169
|
-
const predicate = filterToPredicate(filter);
|
|
170
|
-
return this._createSubSelection(([links, result], options) => [
|
|
171
|
-
links.flatMap(link => link.source).filter(predicate).filter(createQueryOptionsFilter(options)),
|
|
172
|
-
result
|
|
173
|
-
]);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
exports.Selection = Selection;
|
|
177
|
-
/**
|
|
178
|
-
* Query subscription.
|
|
179
|
-
* Represents a live-query (subscription) that can notify about future updates to the relevant subset of items.
|
|
180
|
-
*/
|
|
181
|
-
class SelectionResult {
|
|
182
|
-
constructor(_execute, _update, _root, _reducer) {
|
|
183
|
-
this._execute = _execute;
|
|
184
|
-
this._update = _update;
|
|
185
|
-
this._root = _root;
|
|
186
|
-
this._reducer = _reducer;
|
|
187
|
-
/**
|
|
188
|
-
* Fired when there are updates in the selection.
|
|
189
|
-
* Only update that are relevant to the selection cause the update.
|
|
190
|
-
*/
|
|
191
|
-
this.update = new async_1.Event(); // TODO(burdon): Result result object.
|
|
192
|
-
this._lastResult = [[]];
|
|
193
|
-
this.refresh();
|
|
194
|
-
// Re-run if deps change.
|
|
195
|
-
this.update.addEffect(() => _update.on(currentEntities => {
|
|
196
|
-
const [previousEntities] = this._lastResult;
|
|
197
|
-
this.refresh();
|
|
198
|
-
// Filters mutation events only if selection (since we can't reason about deps of call methods).
|
|
199
|
-
const set = new Set([...previousEntities, ...this._lastResult[0]]);
|
|
200
|
-
if (this._reducer || currentEntities.some(entity => set.has(entity))) {
|
|
201
|
-
this.update.emit(this);
|
|
202
|
-
}
|
|
203
|
-
}));
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Re-run query.
|
|
207
|
-
*/
|
|
208
|
-
refresh() {
|
|
209
|
-
const [entities, result] = this._execute();
|
|
210
|
-
this._lastResult = [dedupe(entities), result];
|
|
211
|
-
return this;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* The root of the selection. Either a database or an item. Must be a stable reference.
|
|
215
|
-
*/
|
|
216
|
-
get root() {
|
|
217
|
-
return this._root;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* @deprecated
|
|
221
|
-
*/
|
|
222
|
-
// TODO(burdon): Remove.
|
|
223
|
-
// get result () {
|
|
224
|
-
// return this.entities;
|
|
225
|
-
// }
|
|
226
|
-
/**
|
|
227
|
-
* Get the result of this selection.
|
|
228
|
-
*/
|
|
229
|
-
get entities() {
|
|
230
|
-
if (!this._lastResult) {
|
|
231
|
-
this.refresh();
|
|
232
|
-
}
|
|
233
|
-
const [entities] = this._lastResult;
|
|
234
|
-
return entities;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Returns the selection or reducer result.
|
|
238
|
-
*/
|
|
239
|
-
get value() {
|
|
240
|
-
if (!this._lastResult) {
|
|
241
|
-
this.refresh();
|
|
242
|
-
}
|
|
243
|
-
const [entities, value] = this._lastResult;
|
|
244
|
-
return (this._reducer ? value : entities);
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Return the first element if the set has exactly one element.
|
|
248
|
-
*/
|
|
249
|
-
expectOne() {
|
|
250
|
-
const entities = this.entities;
|
|
251
|
-
(0, assert_1.default)(entities.length === 1, `Expected one result; got ${entities.length}`);
|
|
252
|
-
return entities[0];
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
exports.SelectionResult = SelectionResult;
|
|
256
|
-
//
|
|
257
|
-
// Utils
|
|
258
|
-
//
|
|
259
|
-
const dedupe = (values) => Array.from(new Set(values));
|
|
260
|
-
const coerceToId = (item) => {
|
|
261
|
-
if (typeof item === 'string') {
|
|
262
|
-
return item;
|
|
263
|
-
}
|
|
264
|
-
return item.id;
|
|
265
|
-
};
|
|
266
|
-
const testOneOrMultiple = (expected, value) => {
|
|
267
|
-
if (Array.isArray(expected)) {
|
|
268
|
-
return expected.includes(value);
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
return expected === value;
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
const filterToPredicate = (filter) => {
|
|
275
|
-
if (typeof filter === 'function') {
|
|
276
|
-
return filter;
|
|
277
|
-
}
|
|
278
|
-
return itemFilterToPredicate(filter);
|
|
279
|
-
};
|
|
280
|
-
const itemFilterToPredicate = (filter) => {
|
|
281
|
-
if ('id' in filter) {
|
|
282
|
-
return item => item.id === filter.id;
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
return item => {
|
|
286
|
-
var _a;
|
|
287
|
-
return (!filter.type || testOneOrMultiple(filter.type, item.type)) &&
|
|
288
|
-
(!filter.parent || ((_a = item.parent) === null || _a === void 0 ? void 0 : _a.id) === coerceToId(filter.parent));
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
};
|
|
292
|
-
const linkFilterToPredicate = (filter) => link => (!filter.type || testOneOrMultiple(filter.type, link.type));
|
|
293
|
-
const createQueryOptionsFilter = ({ deleted = ItemFilterDeleted.HIDE_DELETED }) => {
|
|
294
|
-
return entity => {
|
|
295
|
-
if (entity.model === null) {
|
|
296
|
-
return false;
|
|
297
|
-
}
|
|
298
|
-
switch (deleted) {
|
|
299
|
-
case ItemFilterDeleted.HIDE_DELETED:
|
|
300
|
-
return !(entity instanceof item_1.Item) || !entity.deleted;
|
|
301
|
-
case ItemFilterDeleted.SHOW_DELETED:
|
|
302
|
-
return true;
|
|
303
|
-
case ItemFilterDeleted.SHOW_DELETED_ONLY:
|
|
304
|
-
return entity instanceof item_1.Item && entity.deleted;
|
|
305
|
-
}
|
|
306
|
-
};
|
|
307
|
-
};
|
|
308
|
-
//# sourceMappingURL=selection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/api/selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.test.d.ts","sourceRoot":"","sources":["../../../src/api/selection.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.test.js","sourceRoot":"","sources":["../../../src/api/selection.test.ts"],"names":[],"mappings":"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"}
|