@verdant-web/store 4.1.2 → 4.1.4
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/bundle/index.js +5 -5
- package/dist/bundle/index.js.map +4 -4
- package/dist/esm/__tests__/fixtures/testStorage.js +5 -0
- package/dist/esm/__tests__/fixtures/testStorage.js.map +1 -1
- package/dist/esm/__tests__/queries.test.js +51 -2
- package/dist/esm/__tests__/queries.test.js.map +1 -1
- package/dist/esm/__tests__/schema.test.d.ts +1 -0
- package/dist/esm/__tests__/schema.test.js +64 -0
- package/dist/esm/__tests__/schema.test.js.map +1 -0
- package/dist/esm/client/Client.d.ts +3 -1
- package/dist/esm/client/Client.js +8 -1
- package/dist/esm/client/Client.js.map +1 -1
- package/dist/esm/client/ClientDescriptor.d.ts +6 -2
- package/dist/esm/client/ClientDescriptor.js +7 -6
- package/dist/esm/client/ClientDescriptor.js.map +1 -1
- package/dist/esm/context/context.d.ts +17 -3
- package/dist/esm/entities/Entity.d.ts +2 -2
- package/dist/esm/entities/Entity.js +5 -1
- package/dist/esm/entities/Entity.js.map +1 -1
- package/dist/esm/entities/types.d.ts +41 -0
- package/dist/esm/files/FileManager.d.ts +3 -1
- package/dist/esm/files/FileManager.js +9 -2
- package/dist/esm/files/FileManager.js.map +1 -1
- package/dist/esm/persistence/PersistenceFiles.js +3 -2
- package/dist/esm/persistence/PersistenceFiles.js.map +1 -1
- package/dist/esm/persistence/idb/files/IdbPersistenceFileDb.d.ts +2 -2
- package/dist/esm/persistence/idb/files/IdbPersistenceFileDb.js +12 -4
- package/dist/esm/persistence/idb/files/IdbPersistenceFileDb.js.map +1 -1
- package/dist/esm/persistence/persistence.js +3 -3
- package/dist/esm/persistence/persistence.js.map +1 -1
- package/dist/esm/queries/BaseQuery.js +2 -1
- package/dist/esm/queries/BaseQuery.js.map +1 -1
- package/dist/esm/queries/QueryCache.d.ts +8 -1
- package/dist/esm/queries/QueryCache.js +33 -2
- package/dist/esm/queries/QueryCache.js.map +1 -1
- package/dist/esm/sync/FileSync.d.ts +1 -1
- package/dist/esm/sync/FileSync.js +2 -1
- package/dist/esm/sync/FileSync.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/fixtures/testStorage.ts +7 -1
- package/src/__tests__/queries.test.ts +70 -3
- package/src/__tests__/schema.test.ts +85 -0
- package/src/client/Client.ts +13 -7
- package/src/client/ClientDescriptor.ts +14 -8
- package/src/context/context.ts +18 -3
- package/src/entities/Entity.ts +8 -4
- package/src/entities/types.ts +57 -24
- package/src/files/FileManager.ts +15 -2
- package/src/persistence/PersistenceFiles.ts +11 -6
- package/src/persistence/idb/files/IdbPersistenceFileDb.ts +22 -9
- package/src/persistence/persistence.ts +4 -2
- package/src/queries/BaseQuery.ts +3 -1
- package/src/queries/QueryCache.ts +56 -2
- package/src/sync/FileSync.ts +3 -2
|
@@ -2,6 +2,11 @@ import { createMigration, schema } from '@verdant-web/common';
|
|
|
2
2
|
// @ts-ignore
|
|
3
3
|
import { IDBFactory } from 'fake-indexeddb';
|
|
4
4
|
import { ClientDescriptor, IdbPersistence, } from '../../index.js';
|
|
5
|
+
const test = schema.fields.object({
|
|
6
|
+
fields: {
|
|
7
|
+
foo: schema.fields.string(),
|
|
8
|
+
},
|
|
9
|
+
});
|
|
5
10
|
export const todoCollection = schema.collection({
|
|
6
11
|
name: 'todo',
|
|
7
12
|
primaryKey: 'id',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testStorage.js","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/testStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC9D,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"testStorage.js","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/testStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { createTestStorage } from './fixtures/testStorage.js';
|
|
3
1
|
import { assert } from '@verdant-web/common';
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { createTestStorage } from './fixtures/testStorage.js';
|
|
4
4
|
async function addTestingItems(storage) {
|
|
5
5
|
let items = [];
|
|
6
6
|
for (const item of [
|
|
@@ -51,6 +51,9 @@ async function addTestingItems(storage) {
|
|
|
51
51
|
}
|
|
52
52
|
return items;
|
|
53
53
|
}
|
|
54
|
+
afterEach(() => {
|
|
55
|
+
vi.useRealTimers();
|
|
56
|
+
});
|
|
54
57
|
describe('storage queries', () => {
|
|
55
58
|
it('can query synthetic indexes', async () => {
|
|
56
59
|
const storage = await createTestStorage();
|
|
@@ -216,6 +219,52 @@ describe('storage queries', () => {
|
|
|
216
219
|
items[5].get('id'),
|
|
217
220
|
]);
|
|
218
221
|
});
|
|
222
|
+
it('disposes of unsubscribed queries after a period', async () => {
|
|
223
|
+
const storage = await createTestStorage();
|
|
224
|
+
const items = await addTestingItems(storage);
|
|
225
|
+
vi.useFakeTimers();
|
|
226
|
+
const query = storage.todos.findAll({
|
|
227
|
+
index: {
|
|
228
|
+
where: 'categorySortedByDone',
|
|
229
|
+
match: {
|
|
230
|
+
category: 'general',
|
|
231
|
+
},
|
|
232
|
+
order: 'asc',
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
expect(storage.queries.activeKeys).toContain(query.key);
|
|
236
|
+
// since the query is not subscribed, it should be disposed after a period (defaults 5s)
|
|
237
|
+
vi.advanceTimersByTime(5001);
|
|
238
|
+
expect(storage.queries.activeKeys).not.toContain(query.key);
|
|
239
|
+
vi.useRealTimers();
|
|
240
|
+
});
|
|
241
|
+
it('keeps unsubscribed queries alive when told to', async () => {
|
|
242
|
+
const storage = await createTestStorage();
|
|
243
|
+
const items = await addTestingItems(storage);
|
|
244
|
+
vi.useFakeTimers();
|
|
245
|
+
const query = storage.todos.findAll({
|
|
246
|
+
index: {
|
|
247
|
+
where: 'categorySortedByDone',
|
|
248
|
+
match: {
|
|
249
|
+
category: 'general',
|
|
250
|
+
},
|
|
251
|
+
order: 'asc',
|
|
252
|
+
},
|
|
253
|
+
});
|
|
254
|
+
expect(storage.queries.activeKeys).toContain(query.key);
|
|
255
|
+
storage.queries.keepAlive(query.key);
|
|
256
|
+
// since the query is not subscribed, it should be disposed after a period (defaults 5s)
|
|
257
|
+
// overshoot that to be sure
|
|
258
|
+
vi.advanceTimersByTime(10 * 1000);
|
|
259
|
+
expect(storage.queries.activeKeys).toContain(query.key);
|
|
260
|
+
// remove hold
|
|
261
|
+
storage.queries.dropKeepAlive(query.key);
|
|
262
|
+
// doesn't get disposed immediately
|
|
263
|
+
expect(storage.queries.activeKeys).toContain(query.key);
|
|
264
|
+
// should be disposed after the normal period
|
|
265
|
+
vi.advanceTimersByTime(5001);
|
|
266
|
+
expect(storage.queries.activeKeys).not.toContain(query.key);
|
|
267
|
+
});
|
|
219
268
|
});
|
|
220
269
|
describe('query reactivity', () => {
|
|
221
270
|
async function getQuery(storage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.test.js","sourceRoot":"","sources":["../../../src/__tests__/queries.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queries.test.js","sourceRoot":"","sources":["../../../src/__tests__/queries.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createMigration, schema, } from '@verdant-web/common';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { ClientDescriptor } from '../client/ClientDescriptor.js';
|
|
4
|
+
import { IdbPersistence } from '../persistence/idb/idbPersistence.js';
|
|
5
|
+
describe('schema', () => {
|
|
6
|
+
it('supports recursive nested fields without breaking', async () => {
|
|
7
|
+
const baseField = schema.fields.object({
|
|
8
|
+
fields: {
|
|
9
|
+
foo: schema.fields.string(),
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
const nestedField = schema.fields.replaceObjectFields(baseField, {
|
|
13
|
+
foo: schema.fields.string(),
|
|
14
|
+
bar: schema.fields.map({
|
|
15
|
+
values: baseField,
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
18
|
+
const tests = schema.collection({
|
|
19
|
+
name: 'tests',
|
|
20
|
+
primaryKey: 'id',
|
|
21
|
+
fields: {
|
|
22
|
+
id: schema.fields.string(),
|
|
23
|
+
nested: nestedField,
|
|
24
|
+
},
|
|
25
|
+
indexes: {
|
|
26
|
+
testLevel3: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
compute: (doc) => { var _a, _b, _c, _d, _e; return (_e = (_d = (_c = (_b = (_a = doc.nested.bar) === null || _a === void 0 ? void 0 : _a.baz) === null || _b === void 0 ? void 0 : _b.bar) === null || _c === void 0 ? void 0 : _c.baz) === null || _d === void 0 ? void 0 : _d.foo) !== null && _e !== void 0 ? _e : ''; },
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
const testSchema = schema({
|
|
33
|
+
version: 1,
|
|
34
|
+
collections: {
|
|
35
|
+
tests,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
const storage = (await new ClientDescriptor({
|
|
39
|
+
schema: testSchema,
|
|
40
|
+
migrations: [createMigration(testSchema)],
|
|
41
|
+
namespace: 'schematest',
|
|
42
|
+
oldSchemas: [testSchema],
|
|
43
|
+
persistence: new IdbPersistence(new IDBFactory()),
|
|
44
|
+
}).open());
|
|
45
|
+
const doc = await storage.tests.put({
|
|
46
|
+
id: 'test',
|
|
47
|
+
nested: {
|
|
48
|
+
foo: 'foo',
|
|
49
|
+
bar: {
|
|
50
|
+
baz: {
|
|
51
|
+
foo: 'bar',
|
|
52
|
+
bar: {
|
|
53
|
+
baz: {
|
|
54
|
+
foo: 'bar',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
expect(doc.get('nested').get('bar').get('baz').get('bar').get('baz').get('foo')).toBe('bar');
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../../src/__tests__/schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,MAAM,GAIN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAKlE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE;gBACP,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;aAC3B;SACD,CAAC,CAAC;QACH,MAAM,WAAW,GAAgB,MAAM,CAAC,MAAM,CAAC,mBAAmB,CACjE,SAAS,EACT;YACC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBACtB,MAAM,EAAE,SAAS;aACjB,CAAC;SACF,CACD,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;YAC/B,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC1B,MAAM,EAAE,WAAW;aACnB;YACD,OAAO,EAAE;gBACR,UAAU,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,2BAAC,OAAA,MAAA,MAAA,MAAA,MAAA,MAAA,GAAG,CAAC,MAAM,CAAC,GAAG,0CAAE,GAAG,0CAAE,GAAG,0CAAE,GAAG,0CAAE,GAAG,mCAAI,EAAE,CAAA,EAAA;iBAC1D;aACD;SACD,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE;gBACZ,KAAK;aACL;SACD,CAAC,CAAC;QAEH,MAAM,OAAO,GAA0B,CAAC,MAAM,IAAI,gBAAgB,CAAC;YAClE,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,CAAC,eAAe,CAAK,UAAU,CAAC,CAAC;YAC7C,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,WAAW,EAAE,IAAI,cAAc,CAAC,IAAI,UAAU,EAAE,CAAC;SACjD,CAAC,CAAC,IAAI,EAAE,CAAQ,CAAC;QAElB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACnC,EAAE,EAAE,MAAM;YACV,MAAM,EAAE;gBACP,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE;oBACJ,GAAG,EAAE;wBACJ,GAAG,EAAE,KAAK;wBACV,GAAG,EAAE;4BACJ,GAAG,EAAE;gCACJ,GAAG,EAAE,KAAK;6BACV;yBACD;qBACD;iBACD;aACD;SACD,CAAC,CAAC;QAEH,MAAM,CACL,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CACxE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -2,9 +2,10 @@ import { EventSubscriber, FileData, Operation } from '@verdant-web/common';
|
|
|
2
2
|
import { Context } from '../context/context.js';
|
|
3
3
|
import { DocumentManager } from '../entities/DocumentManager.js';
|
|
4
4
|
import { EntityStore } from '../entities/EntityStore.js';
|
|
5
|
+
import { ExportedData } from '../persistence/interfaces.js';
|
|
5
6
|
import { CollectionQueries } from '../queries/CollectionQueries.js';
|
|
7
|
+
import { PublicQueryCacheAPI } from '../queries/QueryCache.js';
|
|
6
8
|
import { Sync } from '../sync/Sync.js';
|
|
7
|
-
import { ExportedData } from '../persistence/interfaces.js';
|
|
8
9
|
export type ClientWithCollections = Client & {
|
|
9
10
|
[key: string]: CollectionQueries<any, any, any>;
|
|
10
11
|
};
|
|
@@ -63,6 +64,7 @@ export declare class Client<Presence = any, Profile = any> extends EventSubscrib
|
|
|
63
64
|
get schema(): import("@verdant-web/common").StorageSchema;
|
|
64
65
|
get namespace(): string;
|
|
65
66
|
get undoHistory(): import("../UndoHistory.js").UndoHistory;
|
|
67
|
+
get queries(): PublicQueryCacheAPI;
|
|
66
68
|
/**
|
|
67
69
|
* Batch multiple operations together to be executed in a single transaction.
|
|
68
70
|
* The changes made will not be included in the same undo history step as
|
|
@@ -3,11 +3,11 @@ import { DocumentManager } from '../entities/DocumentManager.js';
|
|
|
3
3
|
import { EntityStore } from '../entities/EntityStore.js';
|
|
4
4
|
import { FileManager } from '../files/FileManager.js';
|
|
5
5
|
import { deleteAllDatabases } from '../persistence/idb/util.js';
|
|
6
|
+
import { importPersistence } from '../persistence/persistence.js';
|
|
6
7
|
import { CollectionQueries } from '../queries/CollectionQueries.js';
|
|
7
8
|
import { QueryCache } from '../queries/QueryCache.js';
|
|
8
9
|
import { NoSync, ServerSync } from '../sync/Sync.js';
|
|
9
10
|
import { getLatestVersion } from '../utils/versions.js';
|
|
10
|
-
import { importPersistence } from '../persistence/persistence.js';
|
|
11
11
|
export class Client extends EventSubscriber {
|
|
12
12
|
get sync() {
|
|
13
13
|
return this._sync;
|
|
@@ -19,6 +19,7 @@ export class Client extends EventSubscriber {
|
|
|
19
19
|
return this._documentManager;
|
|
20
20
|
}
|
|
21
21
|
constructor(context) {
|
|
22
|
+
var _a;
|
|
22
23
|
super();
|
|
23
24
|
this.context = context;
|
|
24
25
|
this.importingPromise = Promise.resolve();
|
|
@@ -118,6 +119,8 @@ export class Client extends EventSubscriber {
|
|
|
118
119
|
// changes to storage, so don't close metadata db yet
|
|
119
120
|
await this._entities.destroy();
|
|
120
121
|
this.context.persistenceShutdownHandler.shutdown();
|
|
122
|
+
this.context.internalEvents.disable();
|
|
123
|
+
this.context.entityEvents.disable();
|
|
121
124
|
// the idea here is to flush the microtask queue -
|
|
122
125
|
// we may have queued tasks related to queries that
|
|
123
126
|
// we want to settle before closing the databases
|
|
@@ -237,6 +240,7 @@ export class Client extends EventSubscriber {
|
|
|
237
240
|
// FIXME: make this less fragile
|
|
238
241
|
this._queryCache = new QueryCache({
|
|
239
242
|
context,
|
|
243
|
+
evictionTime: (_a = context.config.queries) === null || _a === void 0 ? void 0 : _a.evictionTime,
|
|
240
244
|
});
|
|
241
245
|
this._documentManager = new DocumentManager(this.schema, this._entities);
|
|
242
246
|
const notifyFutureSeen = debounce(() => {
|
|
@@ -277,6 +281,9 @@ export class Client extends EventSubscriber {
|
|
|
277
281
|
get undoHistory() {
|
|
278
282
|
return this.context.undoHistory;
|
|
279
283
|
}
|
|
284
|
+
get queries() {
|
|
285
|
+
return this._queryCache;
|
|
286
|
+
}
|
|
280
287
|
/**
|
|
281
288
|
* Batch multiple operations together to be executed in a single transaction.
|
|
282
289
|
* The changes made will not be included in the same undo history step as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/client/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EAER,eAAe,GAGf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/client/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Migration, StorageSchema } from '@verdant-web/common';
|
|
2
|
-
import { FileConfig, InitialContext } from '../context/context.js';
|
|
2
|
+
import { FileConfig, InitialContext, QueryConfig } from '../context/context.js';
|
|
3
|
+
import { PersistenceImplementation } from '../persistence/interfaces.js';
|
|
3
4
|
import { ServerSyncOptions } from '../sync/Sync.js';
|
|
4
5
|
import { UndoHistory } from '../UndoHistory.js';
|
|
5
6
|
import { Client } from './Client.js';
|
|
6
|
-
import { PersistenceImplementation } from '../persistence/interfaces.js';
|
|
7
7
|
export interface ClientDescriptorOptions<Presence = any, Profile = any> {
|
|
8
8
|
/** The schema used to create this client */
|
|
9
9
|
schema: StorageSchema<any>;
|
|
@@ -56,6 +56,10 @@ export interface ClientDescriptorOptions<Presence = any, Profile = any> {
|
|
|
56
56
|
* before turning it on.
|
|
57
57
|
*/
|
|
58
58
|
EXPERIMENTAL_weakRefs?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Customize querying behavior.
|
|
61
|
+
*/
|
|
62
|
+
queries?: QueryConfig;
|
|
59
63
|
}
|
|
60
64
|
/**
|
|
61
65
|
* Since storage initialization is async, this class wraps the core
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EventSubscriber, HybridLogicalClockTimestampProvider, PatchCreator, noop, } from '@verdant-web/common';
|
|
2
|
-
import {
|
|
3
|
-
import { Client } from './Client.js';
|
|
4
|
-
import { deleteAllDatabases } from '../persistence/idb/util.js';
|
|
5
|
-
import { FakeWeakRef } from '../FakeWeakRef.js';
|
|
2
|
+
import { ShutdownHandler } from '../context/ShutdownHandler.js';
|
|
6
3
|
import { Time } from '../context/Time.js';
|
|
7
|
-
import {
|
|
4
|
+
import { FakeWeakRef } from '../FakeWeakRef.js';
|
|
8
5
|
import { IdbPersistence } from '../persistence/idb/idbPersistence.js';
|
|
9
|
-
import {
|
|
6
|
+
import { deleteAllDatabases } from '../persistence/idb/util.js';
|
|
7
|
+
import { initializePersistence } from '../persistence/persistence.js';
|
|
8
|
+
import { UndoHistory } from '../UndoHistory.js';
|
|
9
|
+
import { Client } from './Client.js';
|
|
10
10
|
/**
|
|
11
11
|
* Since storage initialization is async, this class wraps the core
|
|
12
12
|
* Storage creation promise and exposes some metadata which can
|
|
@@ -56,6 +56,7 @@ export class ClientDescriptor {
|
|
|
56
56
|
disableRebasing: init.disableRebasing,
|
|
57
57
|
rebaseTimeout: init.rebaseTimeout,
|
|
58
58
|
},
|
|
59
|
+
queries: init.queries,
|
|
59
60
|
},
|
|
60
61
|
persistence: init.persistence || new IdbPersistence(environment.indexedDB),
|
|
61
62
|
environment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientDescriptor.js","sourceRoot":"","sources":["../../../src/client/ClientDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,mCAAmC,EAEnC,YAAY,EAEZ,IAAI,GACJ,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientDescriptor.js","sourceRoot":"","sources":["../../../src/client/ClientDescriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ClientMessage, EventSubscriber, FileData, FileRef, Migration, ObjectIdentifier, Operation, PatchCreator, StorageSchema } from '@verdant-web/common';
|
|
2
2
|
import { UndoHistory } from '../UndoHistory.js';
|
|
3
|
-
import { Time } from './Time.js';
|
|
4
|
-
import type { PersistenceDocuments } from '../persistence/PersistenceQueries.js';
|
|
5
|
-
import type { PersistenceMetadata } from '../persistence/PersistenceMetadata.js';
|
|
6
3
|
import { PersistenceFiles } from '../persistence/PersistenceFiles.js';
|
|
4
|
+
import type { PersistenceMetadata } from '../persistence/PersistenceMetadata.js';
|
|
5
|
+
import type { PersistenceDocuments } from '../persistence/PersistenceQueries.js';
|
|
7
6
|
import { PersistedFileData, PersistenceImplementation } from '../persistence/interfaces.js';
|
|
8
7
|
import { ShutdownHandler } from './ShutdownHandler.js';
|
|
8
|
+
import { Time } from './Time.js';
|
|
9
9
|
/**
|
|
10
10
|
* Common components utilized across various client
|
|
11
11
|
* services.
|
|
@@ -38,6 +38,7 @@ export interface Context {
|
|
|
38
38
|
filesDeleted: (files: FileRef[]) => void;
|
|
39
39
|
fileAdded: (file: FileData) => void;
|
|
40
40
|
[ev: `fileUploaded:${string}`]: (file: FileData) => void;
|
|
41
|
+
fileUploaded: (file: FileData) => void;
|
|
41
42
|
}>;
|
|
42
43
|
globalEvents: EventSubscriber<{
|
|
43
44
|
/**
|
|
@@ -79,6 +80,7 @@ export interface Context {
|
|
|
79
80
|
files?: FileConfig;
|
|
80
81
|
sync?: SyncConfig;
|
|
81
82
|
persistence?: PersistenceConfig;
|
|
83
|
+
queries?: QueryConfig;
|
|
82
84
|
};
|
|
83
85
|
environment: {
|
|
84
86
|
WebSocket: typeof WebSocket;
|
|
@@ -178,4 +180,16 @@ export interface PersistenceConfig {
|
|
|
178
180
|
disableRebasing?: boolean;
|
|
179
181
|
rebaseTimeout?: number;
|
|
180
182
|
}
|
|
183
|
+
export interface QueryConfig {
|
|
184
|
+
/**
|
|
185
|
+
* Milliseconds to hold a query in memory after it is unsubscribed before
|
|
186
|
+
* disposing of it. Once a query is disposed, it must be loaded fresh again
|
|
187
|
+
* on next use. Queries are cached based on their `key`, which you can
|
|
188
|
+
* manually override. By default keys are determined by the parameters
|
|
189
|
+
* passed to the query.
|
|
190
|
+
*
|
|
191
|
+
* Defaults to 5 seconds.
|
|
192
|
+
*/
|
|
193
|
+
evictionTime?: number;
|
|
194
|
+
}
|
|
181
195
|
export type InitialContext = Omit<Context, 'documents' | 'meta' | 'files'>;
|
|
@@ -3,8 +3,8 @@ import { Context } from '../context/context.js';
|
|
|
3
3
|
import { FileManager } from '../files/FileManager.js';
|
|
4
4
|
import { EntityCache } from './EntityCache.js';
|
|
5
5
|
import { EntityFamilyMetadata, EntityMetadataView } from './EntityMetadata.js';
|
|
6
|
-
import { BaseEntityValue, DataFromInit, EntityChange, EntityEvents, ListEntity, ListItemInit, ListItemValue, ObjectEntity } from './types.js';
|
|
7
6
|
import { EntityStoreEvents } from './EntityStore.js';
|
|
7
|
+
import { BaseEntityValue, DataFromInit, EntityChange, EntityEvents, ListEntity, ListItemInit, ListItemValue, ObjectEntity } from './types.js';
|
|
8
8
|
export interface EntityInit {
|
|
9
9
|
oid: ObjectIdentifier;
|
|
10
10
|
schema: StorageFieldSchema;
|
|
@@ -24,7 +24,7 @@ export declare class Entity<Init = any, KeyValue extends BaseEntityValue = any,
|
|
|
24
24
|
private fieldPath;
|
|
25
25
|
private entityFamily;
|
|
26
26
|
private metadataFamily;
|
|
27
|
-
|
|
27
|
+
readonly schema: StorageFieldSchema;
|
|
28
28
|
private parent;
|
|
29
29
|
private ctx;
|
|
30
30
|
private files;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventSubscriber, assert, assignOid, cloneDeep, compareRefs, createFileRef, createRef, getChildFieldSchema, getDefault, hasDefault,
|
|
1
|
+
import { EventSubscriber, assert, assignOid, cloneDeep, compareRefs, createFileRef, createRef, getChildFieldSchema, getDefault, hasDefault, isFile, isFileRef, isNullable, isObject, isRef, maybeGetOid, memoByKeys, traverseCollectionFieldsAndApplyDefaults, validateEntityField, } from '@verdant-web/common';
|
|
2
2
|
import { processValueFiles } from '../files/utils.js';
|
|
3
3
|
import { EntityFile } from '../index.js';
|
|
4
4
|
import { EntityCache } from './EntityCache.js';
|
|
@@ -274,6 +274,10 @@ export class Entity extends EventSubscriber {
|
|
|
274
274
|
requireDefaults: true,
|
|
275
275
|
})) {
|
|
276
276
|
if (hasDefault(fieldSchema)) {
|
|
277
|
+
// FIXME: this returns []/{} for arrays and objects, but the contract
|
|
278
|
+
// of this method should return an Entity for such object fields.
|
|
279
|
+
// I want to write a test case for this one before attempting to fix
|
|
280
|
+
// just to be sure the fix works.
|
|
277
281
|
return getDefault(fieldSchema);
|
|
278
282
|
}
|
|
279
283
|
if (isNullable(fieldSchema)) {
|