@verdant-web/store 5.4.3 → 5.5.0
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 +8 -8
- package/dist/bundle/index.js.map +4 -4
- package/dist/esm/__tests__/QueryBatcher.test.d.ts +1 -0
- package/dist/esm/__tests__/QueryBatcher.test.js +17 -0
- package/dist/esm/__tests__/QueryBatcher.test.js.map +1 -0
- package/dist/esm/__tests__/entities.test.js +3 -3
- package/dist/esm/__tests__/entities.test.js.map +1 -1
- package/dist/esm/__tests__/queries.test.js +16 -0
- package/dist/esm/__tests__/queries.test.js.map +1 -1
- package/dist/esm/entities/Entity.d.ts +2 -3
- package/dist/esm/entities/Entity.js +37 -17
- package/dist/esm/entities/Entity.js.map +1 -1
- package/dist/esm/entities/EntityStore.js +1 -1
- package/dist/esm/entities/EntityStore.js.map +1 -1
- package/dist/esm/files/EntityFile.d.ts +22 -7
- package/dist/esm/files/EntityFile.js +30 -6
- package/dist/esm/files/EntityFile.js.map +1 -1
- package/dist/esm/files/FileManager.d.ts +5 -4
- package/dist/esm/files/FileManager.js +35 -16
- package/dist/esm/files/FileManager.js.map +1 -1
- package/dist/esm/queries/BaseQuery.d.ts +4 -1
- package/dist/esm/queries/BaseQuery.js +22 -11
- package/dist/esm/queries/BaseQuery.js.map +1 -1
- package/dist/esm/queries/QueryBatcher.d.ts +2 -0
- package/dist/esm/queries/QueryBatcher.js +39 -0
- package/dist/esm/queries/QueryBatcher.js.map +1 -0
- package/package.json +2 -2
- package/src/__tests__/QueryBatcher.test.ts +21 -0
- package/src/__tests__/entities.test.ts +3 -3
- package/src/__tests__/queries.test.ts +19 -0
- package/src/entities/Entity.ts +30 -8
- package/src/entities/EntityStore.ts +1 -1
- package/src/files/EntityFile.ts +52 -10
- package/src/files/FileManager.ts +45 -20
- package/src/queries/BaseQuery.ts +25 -12
- package/src/queries/QueryBatcher.ts +54 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityStore.js","sourceRoot":"","sources":["../../../src/entities/EntityStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityStore.js","sourceRoot":"","sources":["../../../src/entities/EntityStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
import { EventSubscriber, FileData } from '@verdant-web/common';
|
|
1
|
+
import { EventSubscriber, FileData, FileRef, ObjectIdentifier, PropertyName } from '@verdant-web/common';
|
|
2
2
|
import { Context } from '../context/context.js';
|
|
3
|
-
import { Entity } from '../entities/Entity.js';
|
|
4
3
|
export type EntityFileEvents = {
|
|
5
4
|
change: () => void;
|
|
6
5
|
};
|
|
7
6
|
export declare const UPDATE: unique symbol;
|
|
8
7
|
export declare const MARK_FAILED: unique symbol;
|
|
9
|
-
export
|
|
8
|
+
export interface EntityFileContext {
|
|
9
|
+
readonly oid: ObjectIdentifier;
|
|
10
|
+
readonly key: PropertyName;
|
|
11
|
+
getFileRef(): FileRef | null;
|
|
12
|
+
applyFileRef(file: FileRef): void;
|
|
13
|
+
subscribe(callback: () => void): () => void;
|
|
14
|
+
onChange(): void;
|
|
15
|
+
}
|
|
10
16
|
export type EntityFileSnapshot = {
|
|
11
17
|
id: string;
|
|
12
18
|
url?: string | null;
|
|
19
|
+
name: string;
|
|
20
|
+
remote: boolean;
|
|
21
|
+
type: string;
|
|
22
|
+
file?: Blob | null;
|
|
23
|
+
alt: string | null;
|
|
13
24
|
};
|
|
14
25
|
/**
|
|
15
26
|
* Provides a consistent interface for files used in an app via
|
|
@@ -24,18 +35,22 @@ export declare class EntityFile extends EventSubscriber<EntityFileEvents> {
|
|
|
24
35
|
private _failedReason;
|
|
25
36
|
private _downloadRemote;
|
|
26
37
|
private _uploaded;
|
|
38
|
+
private _alt;
|
|
27
39
|
private ctx;
|
|
28
40
|
private unsubscribes;
|
|
29
|
-
private
|
|
30
|
-
constructor(id: string, { downloadRemote, ctx,
|
|
41
|
+
private fileContext;
|
|
42
|
+
constructor(id: string, { downloadRemote, ctx, fileContext, }: {
|
|
31
43
|
downloadRemote?: boolean;
|
|
32
44
|
ctx: Context;
|
|
33
|
-
|
|
45
|
+
fileContext: EntityFileContext;
|
|
34
46
|
});
|
|
35
47
|
get downloadRemote(): boolean;
|
|
36
48
|
get isFile(): boolean;
|
|
37
49
|
get isUploaded(): boolean;
|
|
38
50
|
get error(): string | null;
|
|
51
|
+
get alt(): string | null;
|
|
52
|
+
setAlt: (alt: string | null) => void;
|
|
53
|
+
private onContextChange;
|
|
39
54
|
private emitChange;
|
|
40
55
|
[UPDATE]: (fileData: FileData) => void;
|
|
41
56
|
[MARK_FAILED]: (reason?: string) => void;
|
|
@@ -46,5 +61,5 @@ export declare class EntityFile extends EventSubscriber<EntityFileEvents> {
|
|
|
46
61
|
get loading(): boolean;
|
|
47
62
|
get failed(): boolean;
|
|
48
63
|
destroy: () => void;
|
|
49
|
-
getSnapshot():
|
|
64
|
+
getSnapshot(): EntityFileSnapshot;
|
|
50
65
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
var _a, _b;
|
|
2
|
-
import { EventSubscriber } from '@verdant-web/common';
|
|
2
|
+
import { EventSubscriber, } from '@verdant-web/common';
|
|
3
3
|
export const UPDATE = Symbol('entity-file-update');
|
|
4
4
|
export const MARK_FAILED = Symbol('entity-file-mark-failed');
|
|
5
|
-
// this one goes on Entity
|
|
6
|
-
export const CHILD_FILE_CHANGED = Symbol('child-file-changed');
|
|
7
5
|
/**
|
|
8
6
|
* Provides a consistent interface for files used in an app via
|
|
9
7
|
* Entity access.
|
|
10
8
|
*/
|
|
11
9
|
export class EntityFile extends EventSubscriber {
|
|
12
|
-
constructor(id, { downloadRemote = false, ctx,
|
|
10
|
+
constructor(id, { downloadRemote = false, ctx, fileContext, }) {
|
|
11
|
+
var _c, _d;
|
|
13
12
|
super();
|
|
14
13
|
this.id = id;
|
|
15
14
|
// cached object URL for a local blob file, if applicable
|
|
@@ -19,7 +18,26 @@ export class EntityFile extends EventSubscriber {
|
|
|
19
18
|
this._failed = false;
|
|
20
19
|
this._downloadRemote = false;
|
|
21
20
|
this._uploaded = false;
|
|
21
|
+
this._alt = null;
|
|
22
22
|
this.unsubscribes = [];
|
|
23
|
+
this.setAlt = (alt) => {
|
|
24
|
+
var _c;
|
|
25
|
+
const file = this.fileContext.getFileRef();
|
|
26
|
+
if (!file || file.id !== this.id) {
|
|
27
|
+
throw new Error('Cannot set alt text on a file which is no longer present');
|
|
28
|
+
}
|
|
29
|
+
if (((_c = file.alt) !== null && _c !== void 0 ? _c : null) === alt)
|
|
30
|
+
return;
|
|
31
|
+
this.fileContext.applyFileRef(Object.assign(Object.assign({}, file), { alt }));
|
|
32
|
+
};
|
|
33
|
+
this.onContextChange = () => {
|
|
34
|
+
var _c, _d;
|
|
35
|
+
const nextAlt = (_d = (_c = this.fileContext.getFileRef()) === null || _c === void 0 ? void 0 : _c.alt) !== null && _d !== void 0 ? _d : null;
|
|
36
|
+
if (nextAlt !== this._alt) {
|
|
37
|
+
this._alt = nextAlt;
|
|
38
|
+
this.emitChange();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
23
41
|
this[_a] = (fileData) => {
|
|
24
42
|
this.ctx.log('debug', 'EntityFile updated', this.id, fileData);
|
|
25
43
|
this._loading = false;
|
|
@@ -55,8 +73,10 @@ export class EntityFile extends EventSubscriber {
|
|
|
55
73
|
this.dispose();
|
|
56
74
|
};
|
|
57
75
|
this.ctx = ctx;
|
|
58
|
-
this.
|
|
76
|
+
this.fileContext = fileContext;
|
|
59
77
|
this._downloadRemote = downloadRemote;
|
|
78
|
+
this._alt = (_d = (_c = fileContext.getFileRef()) === null || _c === void 0 ? void 0 : _c.alt) !== null && _d !== void 0 ? _d : null;
|
|
79
|
+
this.unsubscribes.push(fileContext.subscribe(this.onContextChange));
|
|
60
80
|
this.unsubscribes.push(this.ctx.internalEvents.subscribe(`fileUploaded:${id}`, this.onUploaded));
|
|
61
81
|
}
|
|
62
82
|
get downloadRemote() {
|
|
@@ -72,8 +92,11 @@ export class EntityFile extends EventSubscriber {
|
|
|
72
92
|
get error() {
|
|
73
93
|
return this._failedReason || null;
|
|
74
94
|
}
|
|
95
|
+
get alt() {
|
|
96
|
+
return this._alt;
|
|
97
|
+
}
|
|
75
98
|
emitChange() {
|
|
76
|
-
this.
|
|
99
|
+
this.fileContext.onChange();
|
|
77
100
|
this.emit('change');
|
|
78
101
|
}
|
|
79
102
|
get url() {
|
|
@@ -109,6 +132,7 @@ export class EntityFile extends EventSubscriber {
|
|
|
109
132
|
remote: (_h = (_g = this._fileData) === null || _g === void 0 ? void 0 : _g.remote) !== null && _h !== void 0 ? _h : false,
|
|
110
133
|
type: (_j = this.type) !== null && _j !== void 0 ? _j : '',
|
|
111
134
|
file: (_k = this._fileData) === null || _k === void 0 ? void 0 : _k.file,
|
|
135
|
+
alt: this.alt,
|
|
112
136
|
};
|
|
113
137
|
}
|
|
114
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityFile.js","sourceRoot":"","sources":["../../../src/files/EntityFile.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EntityFile.js","sourceRoot":"","sources":["../../../src/files/EntityFile.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,eAAe,GAKf,MAAM,qBAAqB,CAAC;AAO7B,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAqB7D;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAiC;IAchE,YACiB,EAAU,EAC1B,EACC,cAAc,GAAG,KAAK,EACtB,GAAG,EACH,WAAW,GAKX;;QAED,KAAK,EAAE,CAAC;QAXQ,OAAE,GAAF,EAAE,CAAQ;QAd3B,yDAAyD;QACjD,eAAU,GAAkB,IAAI,CAAC;QACjC,cAAS,GAAoB,IAAI,CAAC;QAClC,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAG,KAAK,CAAC;QAEhB,oBAAe,GAAG,KAAK,CAAC;QACxB,cAAS,GAAG,KAAK,CAAC;QAClB,SAAI,GAAkB,IAAI,CAAC;QAE3B,iBAAY,GAAmB,EAAE,CAAC;QA2C1C,WAAM,GAAG,CAAC,GAAkB,EAAE,EAAE;;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACd,0DAA0D,CAC1D,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAA,IAAI,CAAC,GAAG,mCAAI,IAAI,CAAC,KAAK,GAAG;gBAAE,OAAO;YACvC,IAAI,CAAC,WAAW,CAAC,YAAY,iCAAM,IAAI,KAAE,GAAG,IAAG,CAAC;QACjD,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;;YAC9B,MAAM,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,0CAAE,GAAG,mCAAI,IAAI,CAAC;YAC3D,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,CAAC;QACF,CAAC,CAAC;QAOF,QAAQ,GAAG,CAAC,QAAkB,EAAE,EAAE;YACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,UAAU,IAAI,iBAAiB,IAAI,GAAG,EAAE,CAAC;oBACjD,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/D,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,QAAa,GAAG,CAAC,MAAe,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,IAAc,EAAE,EAAE;;YACvC,gDAAgD;YAChD,MAAA,IAAI,CAAC,SAAS,oCAAd,IAAI,CAAC,SAAS,GAAK,IAAI,EAAC;YACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC;QA0BF,YAAO,GAAG,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC;QA9GD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,MAAA,MAAA,WAAW,CAAC,UAAU,EAAE,0CAAE,GAAG,mCAAI,IAAI,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY,CAAC,IAAI,CACrB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CACxE,CAAC;IACH,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM;QACT,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,UAAU;;QACb,OAAO,IAAI,CAAC,SAAS,KAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,CAAA,IAAI,KAAK,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAqBO,UAAU;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IAgCD,IAAI,GAAG;;QACN,qCAAqC;QACrC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,4BAA4B;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,GAAG,mCAAI,IAAI,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;;QACP,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,IAAI;;QACP,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IASD,WAAW;;QACV,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,GAAG,mCAAI,IAAI,CAAC,UAAU,mCAAI,SAAS;YACxD,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,cAAc;YACjC,MAAM,EAAE,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,mCAAI,KAAK;YACvC,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE;YACrB,IAAI,EAAE,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI;YAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;SACb,CAAC;IACH,CAAC;CACD;KAxEC,MAAM,OAeN,WAAW"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { FileData } from '@verdant-web/common';
|
|
2
2
|
import { Context } from '../context/context.js';
|
|
3
|
-
import { Entity } from '../entities/Entity.js';
|
|
4
3
|
import { Disposable } from '../internal.js';
|
|
5
4
|
import { Sync } from '../sync/Sync.js';
|
|
6
|
-
import { EntityFile } from './EntityFile.js';
|
|
5
|
+
import { EntityFile, EntityFileContext } from './EntityFile.js';
|
|
7
6
|
export declare class FileManager extends Disposable {
|
|
8
7
|
private sync;
|
|
9
8
|
private context;
|
|
10
9
|
private cache;
|
|
10
|
+
private fileData;
|
|
11
11
|
constructor({ sync, context }: {
|
|
12
12
|
sync: Sync;
|
|
13
13
|
context: Context;
|
|
14
14
|
});
|
|
15
|
-
add: (file: FileData
|
|
15
|
+
add: (file: FileData) => Promise<void>;
|
|
16
16
|
/**
|
|
17
17
|
* Immediately returns an EntityFile to use, then either loads
|
|
18
18
|
* the file from cache, local database, or the server.
|
|
@@ -20,8 +20,9 @@ export declare class FileManager extends Disposable {
|
|
|
20
20
|
get: (id: string, options: {
|
|
21
21
|
downloadRemote?: boolean;
|
|
22
22
|
ctx: Context;
|
|
23
|
-
|
|
23
|
+
fileContext: EntityFileContext;
|
|
24
24
|
}) => EntityFile;
|
|
25
|
+
private updateFileData;
|
|
25
26
|
private load;
|
|
26
27
|
private onFileUploaded;
|
|
27
28
|
}
|
|
@@ -1,44 +1,63 @@
|
|
|
1
1
|
import { Disposable } from '../internal.js';
|
|
2
|
-
import { EntityFile, MARK_FAILED, UPDATE } from './EntityFile.js';
|
|
2
|
+
import { EntityFile, MARK_FAILED, UPDATE, } from './EntityFile.js';
|
|
3
3
|
export class FileManager extends Disposable {
|
|
4
4
|
constructor({ sync, context }) {
|
|
5
5
|
super();
|
|
6
6
|
this.cache = new Map();
|
|
7
|
-
this.
|
|
8
|
-
|
|
9
|
-
let entityFile = this.cache.get(file.id);
|
|
10
|
-
if (!entityFile) {
|
|
11
|
-
entityFile = new EntityFile(file.id, { ctx: this.context, parent });
|
|
12
|
-
this.cache.set(file.id, entityFile);
|
|
13
|
-
}
|
|
7
|
+
this.fileData = new Map();
|
|
8
|
+
this.add = async (file) => {
|
|
14
9
|
if (!file.remote) {
|
|
15
10
|
// immediately update local files.
|
|
16
|
-
|
|
11
|
+
this.updateFileData(file);
|
|
17
12
|
}
|
|
18
13
|
// this will download any original remote file and trigger a re-upload to the
|
|
19
14
|
// new file's identity, in addition to storing it on disk
|
|
20
15
|
const processedFile = await (await this.context.files).add(file, { cloneRemote: true });
|
|
21
|
-
|
|
16
|
+
this.updateFileData(processedFile);
|
|
22
17
|
};
|
|
23
18
|
/**
|
|
24
19
|
* Immediately returns an EntityFile to use, then either loads
|
|
25
20
|
* the file from cache, local database, or the server.
|
|
26
21
|
*/
|
|
27
22
|
this.get = (id, options) => {
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const cacheKey = `${options.fileContext.oid}:${String(options.fileContext.key)}:${id}`;
|
|
25
|
+
const cachedFile = (_a = this.cache.get(cacheKey)) === null || _a === void 0 ? void 0 : _a.deref();
|
|
26
|
+
if (cachedFile) {
|
|
27
|
+
return cachedFile;
|
|
30
28
|
}
|
|
29
|
+
this.cache.delete(cacheKey);
|
|
31
30
|
const file = new EntityFile(id, options);
|
|
32
|
-
this.cache.set(
|
|
33
|
-
this.
|
|
31
|
+
this.cache.set(cacheKey, this.context.weakRef(file));
|
|
32
|
+
const data = (_b = this.fileData.get(id)) === null || _b === void 0 ? void 0 : _b.deref();
|
|
33
|
+
if (data) {
|
|
34
|
+
file[UPDATE](data);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.fileData.delete(id);
|
|
38
|
+
this.load(file);
|
|
39
|
+
}
|
|
34
40
|
return file;
|
|
35
41
|
};
|
|
42
|
+
this.updateFileData = (data) => {
|
|
43
|
+
this.fileData.set(data.id, this.context.weakRef(data));
|
|
44
|
+
for (const [key, fileRef] of this.cache) {
|
|
45
|
+
const file = fileRef.deref();
|
|
46
|
+
if (!file) {
|
|
47
|
+
this.cache.delete(key);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (file.id === data.id) {
|
|
51
|
+
file[UPDATE](data);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
36
55
|
this.load = async (file) => {
|
|
37
56
|
var _a;
|
|
38
57
|
const fileData = await (await this.context.files).get(file.id);
|
|
39
58
|
// immediately apply any file data we have
|
|
40
59
|
if (fileData) {
|
|
41
|
-
|
|
60
|
+
this.updateFileData(fileData);
|
|
42
61
|
}
|
|
43
62
|
if (!(fileData === null || fileData === void 0 ? void 0 : fileData.url) && (!fileData || fileData.remote)) {
|
|
44
63
|
// maybe we don't have it yet, it might be on the server still.
|
|
@@ -59,7 +78,7 @@ export class FileManager extends Disposable {
|
|
|
59
78
|
// avoid overwriting local values except for url
|
|
60
79
|
const copyWithUrl = Object.assign(Object.assign(Object.assign({}, result.data), fileData), { url: result.data.url });
|
|
61
80
|
await (await this.context.files).update(copyWithUrl);
|
|
62
|
-
|
|
81
|
+
this.updateFileData(result.data);
|
|
63
82
|
}
|
|
64
83
|
else {
|
|
65
84
|
this.context.log('error', 'Failed to load file', result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../src/files/FileManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../src/files/FileManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Context } from '../context/context.js';
|
|
1
|
+
import type { Context } from '../context/context.js';
|
|
2
2
|
import { Disposable } from '../utils/Disposable.js';
|
|
3
3
|
import { QueryDiagnostic } from './diagnostics.js';
|
|
4
4
|
export type BaseQueryEvents = {
|
|
@@ -26,12 +26,15 @@ export declare abstract class BaseQuery<T> extends Disposable {
|
|
|
26
26
|
private _timing;
|
|
27
27
|
private _startedAt;
|
|
28
28
|
private _timingHistory;
|
|
29
|
+
private _revalidationTimeout;
|
|
30
|
+
private _needsTrailingRevalidation;
|
|
29
31
|
protected context: Context;
|
|
30
32
|
readonly collection: string;
|
|
31
33
|
readonly key: string;
|
|
32
34
|
readonly isListQuery: boolean;
|
|
33
35
|
readonly type: string;
|
|
34
36
|
constructor({ initial, context, collection, key, shouldUpdate, }: BaseQueryOptions<T>);
|
|
37
|
+
private revalidate;
|
|
35
38
|
get current(): T;
|
|
36
39
|
get resolved(): Promise<T>;
|
|
37
40
|
get subscribed(): boolean;
|
|
@@ -3,14 +3,11 @@ import { EventSubscriber } from '@verdant-web/common';
|
|
|
3
3
|
import { Entity } from '../entities/Entity.js';
|
|
4
4
|
import { Disposable } from '../utils/Disposable.js';
|
|
5
5
|
import { getDiagnosticResult, } from './diagnostics.js';
|
|
6
|
+
import { enqueueQueryRun } from './QueryBatcher.js';
|
|
6
7
|
import { filterResultSet } from './utils.js';
|
|
7
8
|
export const ON_ALL_UNSUBSCRIBED = Symbol('ON_ALL_UNSUBSCRIBED');
|
|
8
9
|
export const UPDATE = Symbol('UPDATE');
|
|
9
|
-
|
|
10
|
-
// subscribe(event: 'change', callback: (value: T) => void): () => void;
|
|
11
|
-
// subscribe(event: 'statusChange', callback: (status: QueryStatus) => void): () => void;
|
|
12
|
-
// subscribe(callback: (value: T) => void): () => void;
|
|
13
|
-
// }
|
|
10
|
+
const REVALIDATION_DEBOUNCE = 50;
|
|
14
11
|
export class BaseQuery extends Disposable {
|
|
15
12
|
constructor({ initial, context, collection, key, shouldUpdate, }) {
|
|
16
13
|
super();
|
|
@@ -24,6 +21,23 @@ export class BaseQuery extends Disposable {
|
|
|
24
21
|
};
|
|
25
22
|
this._startedAt = null;
|
|
26
23
|
this._timingHistory = [];
|
|
24
|
+
this._needsTrailingRevalidation = false;
|
|
25
|
+
this.revalidate = () => {
|
|
26
|
+
if (this._revalidationTimeout !== undefined) {
|
|
27
|
+
this._needsTrailingRevalidation = true;
|
|
28
|
+
clearTimeout(this._revalidationTimeout);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.execute();
|
|
32
|
+
}
|
|
33
|
+
this._revalidationTimeout = setTimeout(() => {
|
|
34
|
+
this._revalidationTimeout = undefined;
|
|
35
|
+
if (this._needsTrailingRevalidation) {
|
|
36
|
+
this._needsTrailingRevalidation = false;
|
|
37
|
+
this.execute();
|
|
38
|
+
}
|
|
39
|
+
}, REVALIDATION_DEBOUNCE);
|
|
40
|
+
};
|
|
27
41
|
this.setValue = (value) => {
|
|
28
42
|
this._rawValue = value;
|
|
29
43
|
this.subscribeToDeleteAndRestore(this._rawValue);
|
|
@@ -92,7 +106,7 @@ export class BaseQuery extends Disposable {
|
|
|
92
106
|
this.status = 'revalidating';
|
|
93
107
|
}
|
|
94
108
|
// no status change needed if already in a 'running' status.
|
|
95
|
-
this._executionPromise = this.run
|
|
109
|
+
this._executionPromise = enqueueQueryRun(this.context, this.run)
|
|
96
110
|
.then(() => this._value)
|
|
97
111
|
.catch((err) => {
|
|
98
112
|
if (err instanceof Error) {
|
|
@@ -164,15 +178,12 @@ export class BaseQuery extends Disposable {
|
|
|
164
178
|
this.key = key;
|
|
165
179
|
this.collection = collection;
|
|
166
180
|
this.type = this.constructor.name;
|
|
181
|
+
this.addDispose(() => clearTimeout(this._revalidationTimeout));
|
|
167
182
|
const shouldUpdateFn = shouldUpdate ||
|
|
168
183
|
((collections) => collections.includes(collection));
|
|
169
184
|
this.addDispose(this.context.entityEvents.subscribe('collectionsChanged', (collections) => {
|
|
170
185
|
if (shouldUpdateFn(collections)) {
|
|
171
|
-
this.
|
|
172
|
-
// immediately refilter the result set - deleted
|
|
173
|
-
// entities will already be nulled out
|
|
174
|
-
// this.refreshValue();
|
|
175
|
-
this.execute();
|
|
186
|
+
this.revalidate();
|
|
176
187
|
}
|
|
177
188
|
}));
|
|
178
189
|
// TODO: subscribe to document changes and update if necessary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseQuery.js","sourceRoot":"","sources":["../../../src/queries/BaseQuery.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACN,mBAAmB,GAInB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAiB7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,
|
|
1
|
+
{"version":3,"file":"BaseQuery.js","sourceRoot":"","sources":["../../../src/queries/BaseQuery.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACN,mBAAmB,GAInB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAiB7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,OAAgB,SAAa,SAAQ,UAAU;IA0BpD,YAAY,EACX,OAAO,EACP,OAAO,EACP,UAAU,EACV,GAAG,EACH,YAAY,GACS;QACrB,KAAK,EAAE,CAAC;QA5BD,0BAAqB,GAAmB,EAAE,CAAC;QAE3C,YAAO,GAAgB,SAAS,CAAC;QACjC,sBAAiB,GAAsB,IAAI,CAAC;QAC5C,YAAO,GAAgB;YAC9B,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACX,CAAC;QACM,eAAU,GAAkB,IAAI,CAAC;QACjC,mBAAc,GAAe,EAAE,CAAC;QAEhC,+BAA0B,GAAG,KAAK,CAAC;QAgDnC,eAAU,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3C,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBACtC,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBACrC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;oBACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC;YACF,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC3B,CAAC,CAAC;QAqEQ,aAAQ,GAAG,CAAC,KAAQ,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAExC,iDAAiD;YACjD,8CAA8C;YAC9C,uCAAuC;YACvC,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,sDAAsD;YACtD,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjE,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACP,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,IACE,IAAI,CAAC,MAAgB,CAAC,MAAM,KAAM,QAAkB,CAAC,MAAM;wBAC3D,IAAI,CAAC,MAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,QAAkB,CAAC,CAAC,CAAC,CAAC,EACnE,CAAC;wBACF,OAAO,GAAG,KAAK,CAAC;oBACjB,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,GAAG,KAAK,CAAC;oBACjB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YAEvB,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC;QAEF,+CAA+C;QACrC,iBAAY,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEM,gCAA2B,GAAG,CAAC,KAAQ,EAAE,EAAE;;YAClD,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,2CAAI,CAAC;YACtC,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;oBAC7B,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;wBAC9B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC9B,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAC7C,CAAC;wBACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC9B,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAC9C,CAAC;oBACH,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;gBACpC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC9B,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAC5C,CAAC;gBACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC9B,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,CAAC,CAAC,CACF,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QAEF,YAAO,GAAG,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;YAC9B,CAAC;YACD,4DAA4D;YAE5D,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;iBAC9D,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;iBACvB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;oBAC1B,IACC,GAAG,CAAC,IAAI,KAAK,mBAAmB;wBAChC,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAChC,CAAC;wBACF,+DAA+D;wBAC/D,OAAO,IAAI,CAAC,MAAM,CAAC;oBACpB,CAAC;oBACD,MAAM,GAAG,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;;gBACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG;oBACrB,GAAG,IAAI,CAAC,cAAc;oCACpB,SAAS,EAAE,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,GAAG,EAAE,IAAK,IAAI,CAAC,OAAO;iBAC3D,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,GAAG,CACf,OAAO,EACP,gBAAgB,EAChB,IAAI,CAAC,GAAG,EACR,aAAa,QAAQ,IAAI,CACzB,CAAC;YACH,CAAC,CAAC,CAAC;YACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAC/B,CAAC,CAAC;QAEQ,iBAAY,GAAG,KAAK,EAAK,IAAsB,EAAc,EAAE;YACxE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,OAAO,MAAM,IAAI,EAAE,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAChD,CAAC;QACF,CAAC,CAAC;QAEQ,qBAAgB,GAAG,KAAK,EACjC,IAAsB,EACT,EAAE;YACf,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,OAAO,MAAM,IAAI,EAAE,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACpD,CAAC;QACF,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,MAAe,EAAmB,EAAE,CAAC,CAAC;YACtD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;YACN,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;YACzC,MAAM,oBAAO,IAAI,CAAC,OAAO,CAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAM,GAAG,EAAG,CAAC;SACpD,CAAC,CAAC;QAGH,QAAqB,GAAG,CAAC,OAAsC,EAAE,EAAE;YAClE,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;QACxC,CAAC,CAAC;QAzQD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CACjC,CAAC,KAA4B,EAAE,EAAE;;YAChC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAA,IAAI,CAAC,uBAAuB,qDAAG,IAAI,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,CACD,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC/D,MAAM,cAAc,GACnB,YAAY;YACZ,CAAC,CAAC,WAAqB,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CACd,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAClC,oBAAoB,EACpB,CAAC,WAAW,EAAE,EAAE;YACf,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,CAAC;QACF,CAAC,CACD,CACD,CAAC;QACF,+DAA+D;IAChE,CAAC;IAmBD,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ;;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,MAAA,IAAI,CAAC,iBAAiB,mCAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAY,MAAM,CAAC,CAAc;QAChC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACb,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAQ,IAAI,CAAC,SAAmB,CAAC,MAAM,KAAM,IAAI,CAAC,MAAgB,CAAC,MAAM,CAAC;QAC3E,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzC,CAAC;IAmBD,SAAS,CAAC,eAAoB,EAAE,QAAc;QAC7C,8CAA8C;QAC9C,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;YACrE,mCAAmC;YACnC,IAAI,CAAC,QAAQ,CAAC;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,eAAe,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnE,mCAAmC;YACnC,IAAI,CAAC,QAAQ,CAAC;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;aAAM,IACN,eAAe,KAAK,cAAc;YAClC,OAAO,QAAQ,KAAK,UAAU,EAC7B,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IA0JD,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;CACD;KAPC,mBAAmB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const BATCH_SIZE = 20;
|
|
2
|
+
class QueryBatcher {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.queue = [];
|
|
5
|
+
this.scheduled = false;
|
|
6
|
+
this.flush = () => {
|
|
7
|
+
const batch = this.queue.splice(0, BATCH_SIZE);
|
|
8
|
+
for (const { run, resolve, reject } of batch) {
|
|
9
|
+
run().then(resolve, reject);
|
|
10
|
+
}
|
|
11
|
+
if (this.queue.length) {
|
|
12
|
+
setTimeout(this.flush, 0);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
this.scheduled = false;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
enqueue(run) {
|
|
20
|
+
const promise = new Promise((resolve, reject) => {
|
|
21
|
+
this.queue.push({ run, resolve, reject });
|
|
22
|
+
});
|
|
23
|
+
if (!this.scheduled) {
|
|
24
|
+
this.scheduled = true;
|
|
25
|
+
queueMicrotask(this.flush);
|
|
26
|
+
}
|
|
27
|
+
return promise;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const batchers = new WeakMap();
|
|
31
|
+
export function enqueueQueryRun(context, run) {
|
|
32
|
+
let batcher = batchers.get(context);
|
|
33
|
+
if (!batcher) {
|
|
34
|
+
batcher = new QueryBatcher();
|
|
35
|
+
batchers.set(context, batcher);
|
|
36
|
+
}
|
|
37
|
+
return batcher.enqueue(run);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=QueryBatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBatcher.js","sourceRoot":"","sources":["../../../src/queries/QueryBatcher.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,EAAE,CAAC;AAQtB,MAAM,YAAY;IAAlB;QACS,UAAK,GAAgB,EAAE,CAAC;QACxB,cAAS,GAAG,KAAK,CAAC;QAelB,UAAK,GAAG,GAAG,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC/C,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBAC9C,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAzBA,OAAO,CAAI,GAAqB;QAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CAcD;AAED,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAyB,CAAC;AAEtD,MAAM,UAAU,eAAe,CAC9B,OAAgB,EAChB,GAAqB;IAErB,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdant-web/store",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.5.0",
|
|
4
4
|
"access": "public",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"jszip": "^3.10.1",
|
|
40
40
|
"jwt-decode": "^3.1.2",
|
|
41
41
|
"weak-event": "^2.0.5",
|
|
42
|
-
"@verdant-web/common": "3.2.
|
|
42
|
+
"@verdant-web/common": "3.2.2"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/node": "20.10.5",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { Context } from '../context/context.js';
|
|
3
|
+
import { enqueueQueryRun } from '../queries/QueryBatcher.js';
|
|
4
|
+
|
|
5
|
+
describe('QueryBatcher', () => {
|
|
6
|
+
it('yields between batches of query runs', async () => {
|
|
7
|
+
vi.useFakeTimers();
|
|
8
|
+
const context = {} as Context;
|
|
9
|
+
const runs = Array.from({ length: 21 }, () => vi.fn(async () => {}));
|
|
10
|
+
|
|
11
|
+
const results = runs.map((run) => enqueueQueryRun(context, run));
|
|
12
|
+
expect(runs.filter((run) => run.mock.calls.length > 0)).toHaveLength(0);
|
|
13
|
+
|
|
14
|
+
await Promise.resolve();
|
|
15
|
+
expect(runs.filter((run) => run.mock.calls.length > 0)).toHaveLength(20);
|
|
16
|
+
|
|
17
|
+
await vi.runAllTimersAsync();
|
|
18
|
+
expect(runs.filter((run) => run.mock.calls.length > 0)).toHaveLength(21);
|
|
19
|
+
await Promise.all(results);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
@@ -583,9 +583,9 @@ describe('entities', () => {
|
|
|
583
583
|
|
|
584
584
|
fileList.moveItem(file1Ref, 2);
|
|
585
585
|
|
|
586
|
-
expect(fileList.get(0)).toBe(file2Ref);
|
|
587
|
-
expect(fileList.get(1)).toBe(file3Ref);
|
|
588
|
-
expect(fileList.get(2)).toBe(file1Ref);
|
|
586
|
+
expect(fileList.get(0).uid).toBe(file2Ref.uid);
|
|
587
|
+
expect(fileList.get(1).uid).toBe(file3Ref.uid);
|
|
588
|
+
expect(fileList.get(2).uid).toBe(file1Ref.uid);
|
|
589
589
|
});
|
|
590
590
|
|
|
591
591
|
it('should return nullish for missing map items', async () => {
|
|
@@ -404,6 +404,25 @@ describe('query reactivity', () => {
|
|
|
404
404
|
// revalidating on change is tested elsewhere below.
|
|
405
405
|
});
|
|
406
406
|
|
|
407
|
+
it('revalidates on the leading and trailing edges of collection changes', async () => {
|
|
408
|
+
const storage = await createTestStorage();
|
|
409
|
+
const query = storage.todos.findAll();
|
|
410
|
+
await query.resolved;
|
|
411
|
+
const execute = vi.spyOn(query, 'execute');
|
|
412
|
+
vi.useFakeTimers();
|
|
413
|
+
|
|
414
|
+
const entityEvents = (storage as any).context.entityEvents;
|
|
415
|
+
entityEvents.emit('collectionsChanged', ['todos']);
|
|
416
|
+
entityEvents.emit('collectionsChanged', ['todos']);
|
|
417
|
+
entityEvents.emit('collectionsChanged', ['todos']);
|
|
418
|
+
expect(execute).toHaveBeenCalledTimes(1);
|
|
419
|
+
|
|
420
|
+
await vi.advanceTimersByTimeAsync(49);
|
|
421
|
+
expect(execute).toHaveBeenCalledTimes(1);
|
|
422
|
+
await vi.advanceTimersByTimeAsync(1);
|
|
423
|
+
expect(execute).toHaveBeenCalledTimes(2);
|
|
424
|
+
});
|
|
425
|
+
|
|
407
426
|
it('updates a get query when the item is deleted', async () => {
|
|
408
427
|
const client = await createTestStorage();
|
|
409
428
|
const query = await getQuery(client);
|