@signaldb/svelte 2.0.0-beta.10 → 2.0.0-beta.11
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.
|
@@ -6,6 +6,12 @@ interface WorkerDataAdapterOptions {
|
|
|
6
6
|
id?: string;
|
|
7
7
|
log?: (message: string, ...args: any[]) => void;
|
|
8
8
|
}
|
|
9
|
+
export interface WorkerDataAdapterEndpoint {
|
|
10
|
+
addEventListener: (type: 'message', listener: (event: MessageEvent) => void) => void;
|
|
11
|
+
removeEventListener: (type: 'message', listener: (event: MessageEvent) => void) => void;
|
|
12
|
+
postMessage: (message: unknown) => void;
|
|
13
|
+
terminate?: () => void;
|
|
14
|
+
}
|
|
9
15
|
export default class WorkerDataAdapter implements DataAdapter {
|
|
10
16
|
private worker;
|
|
11
17
|
private options;
|
|
@@ -16,7 +22,7 @@ export default class WorkerDataAdapter implements DataAdapter {
|
|
|
16
22
|
private collectionReady;
|
|
17
23
|
private batchExecutionHelpers;
|
|
18
24
|
private queries;
|
|
19
|
-
constructor(worker:
|
|
25
|
+
constructor(worker: WorkerDataAdapterEndpoint, options: WorkerDataAdapterOptions);
|
|
20
26
|
private exec;
|
|
21
27
|
private enqueueBatched;
|
|
22
28
|
private updateQuery;
|
|
@@ -188,7 +188,7 @@ class WorkerDataAdapter {
|
|
|
188
188
|
return () => {
|
|
189
189
|
const currentCallbacks = this.queries[collection.name]?.get((0, queryId_1.default)(selector, options))?.stateChangeCallbacks;
|
|
190
190
|
if (!currentCallbacks)
|
|
191
|
-
|
|
191
|
+
return;
|
|
192
192
|
this.updateQuery(collection.name, { selector, options }, {
|
|
193
193
|
stateChangeCallbacks: currentCallbacks
|
|
194
194
|
.filter(existingCallback => existingCallback !== callback),
|
|
@@ -200,7 +200,7 @@ class WorkerDataAdapter {
|
|
|
200
200
|
dispose: async () => {
|
|
201
201
|
await this.exec('unregisterCollection', collection.name);
|
|
202
202
|
this.isDisposed = true;
|
|
203
|
-
this.worker.terminate();
|
|
203
|
+
this.worker.terminate?.();
|
|
204
204
|
},
|
|
205
205
|
isReady: async () => {
|
|
206
206
|
await this.exec('isReady', collection.name);
|
|
@@ -3,7 +3,7 @@ import type { QueryOptions } from './DataAdapter';
|
|
|
3
3
|
import type Modifier from './types/Modifier';
|
|
4
4
|
import type StorageAdapter from './types/StorageAdapter';
|
|
5
5
|
import type Selector from './types/Selector';
|
|
6
|
-
interface
|
|
6
|
+
export interface WorkerDataAdapterHostEndpoint {
|
|
7
7
|
addEventListener: (type: 'message', listener: (event: MessageEvent) => any) => void;
|
|
8
8
|
postMessage: (message: any) => void;
|
|
9
9
|
}
|
|
@@ -37,7 +37,7 @@ export default class WorkerDataAdapterHost<T extends BaseItem<I>, I = any> {
|
|
|
37
37
|
private collectionIndices;
|
|
38
38
|
private queries;
|
|
39
39
|
private onError;
|
|
40
|
-
constructor(workerContext:
|
|
40
|
+
constructor(workerContext: WorkerDataAdapterHostEndpoint, options: WorkerDataAdapterHostOptions);
|
|
41
41
|
private respond;
|
|
42
42
|
private handleMessage;
|
|
43
43
|
private getIndexInfo;
|
|
@@ -35,9 +35,6 @@ class WorkerDataAdapterHost {
|
|
|
35
35
|
}
|
|
36
36
|
if (this.options.log)
|
|
37
37
|
this.log = this.options.log;
|
|
38
|
-
if (typeof addEventListener === 'undefined' || typeof postMessage === 'undefined') {
|
|
39
|
-
throw new TypeError('WorkerDataAdapterHost can only be used in a Web Worker context');
|
|
40
|
-
}
|
|
41
38
|
this.workerContext.addEventListener('message', async (event) => {
|
|
42
39
|
try {
|
|
43
40
|
const { workerId, id, method, args } = event.data;
|
|
@@ -19,4 +19,6 @@ export { default as DefaultDataAdapter } from './DefaultDataAdapter';
|
|
|
19
19
|
export { default as AsyncDataAdapter } from './AsyncDataAdapter';
|
|
20
20
|
export { default as WorkerDataAdapter } from './WorkerDataAdapter';
|
|
21
21
|
export { default as WorkerDataAdapterHost } from './WorkerDataAdapterHost';
|
|
22
|
+
export type { WorkerDataAdapterEndpoint } from './WorkerDataAdapter';
|
|
23
|
+
export type { WorkerDataAdapterHostEndpoint } from './WorkerDataAdapterHost';
|
|
22
24
|
export { default as AutoFetchDataAdapter } from './AutoFetchDataAdapter';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signaldb/svelte",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.0-beta.
|
|
4
|
+
"version": "2.0.0-beta.11",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc -d --noEmit false",
|
|
7
7
|
"analyze-bundle": "bundle-analyzer ./dist --upload-token=$BUNDLE_ANALYZER_UPLOAD_TOKEN --bundle-name=@signaldb/svelte",
|