@powersync/common 1.7.0 → 1.8.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/lib/client/AbstractPowerSyncDatabase.d.ts +2 -3
- package/lib/client/AbstractPowerSyncDatabase.js +8 -5
- package/lib/client/AbstractPowerSyncDatabase.js.map +1 -1
- package/lib/client/sync/bucket/SqliteBucketStorage.js +3 -4
- package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -1
- package/lib/client/sync/stream/AbstractRemote.d.ts +39 -6
- package/lib/client/sync/stream/AbstractRemote.js +323 -3
- package/lib/client/sync/stream/AbstractRemote.js.map +1 -1
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +21 -7
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +50 -37
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/BaseObserver.d.ts +2 -3
- package/lib/utils/BaseObserver.js +11 -10
- package/lib/utils/BaseObserver.js.map +1 -1
- package/lib/utils/DataStream.d.ts +63 -0
- package/lib/utils/DataStream.js +163 -0
- package/lib/utils/DataStream.js.map +1 -0
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractRemote.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractRemote.ts"],"names":[],"mappings":"AAAA,OAAO,MAAmB,MAAM,WAAW,CAAC;AAO5C,4CAA4C;AAC5C,MAAM,oCAAoC,GAAG,MAAM,CAAC;AAEpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAEnE,MAAM,OAAgB,cAAc;IAItB;IACA;IAJF,WAAW,GAAgC,IAAI,CAAC;IAE1D,YACY,SAA0B,EAC1B,SAAkB,qBAAqB;QADvC,cAAS,GAAT,SAAS,CAAiB;QAC1B,WAAM,GAAN,MAAM,CAAiC;IAChD,CAAC;IAEJ,KAAK,CAAC,cAAc;QAClB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,SAAS,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,oCAAoC,CAAC,EAAE,CAAC;YACnG,OAAO,IAAI,CAAC,WAAY,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY;QACvC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,WAAW,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAClE,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAC9C,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO;YACL,GAAG,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI;YAChC,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,SAAS,WAAW,CAAC,KAAK,EAAE;aAC5C;SACF,CAAC;IACJ,CAAC;IAMD,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"AbstractRemote.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractRemote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { ILogger } from 'js-logger';
|
|
3
|
-
import { StreamingSyncLine, StreamingSyncRequest } from './streaming-sync-types';
|
|
4
2
|
import { AbstractRemote } from './AbstractRemote';
|
|
5
3
|
import { BucketStorageAdapter } from '../bucket/BucketStorageAdapter';
|
|
6
4
|
import { SyncStatus, SyncStatusOptions } from '../../../db/crud/SyncStatus';
|
|
@@ -9,6 +7,10 @@ export declare enum LockType {
|
|
|
9
7
|
CRUD = "crud",
|
|
10
8
|
SYNC = "sync"
|
|
11
9
|
}
|
|
10
|
+
export declare enum SyncStreamConnectionMethod {
|
|
11
|
+
HTTP = "http",
|
|
12
|
+
WEB_SOCKET = "web-socket"
|
|
13
|
+
}
|
|
12
14
|
/**
|
|
13
15
|
* Abstract Lock to be implemented by various JS environments
|
|
14
16
|
*/
|
|
@@ -41,11 +43,23 @@ export interface StreamingSyncImplementationListener extends BaseListener {
|
|
|
41
43
|
*/
|
|
42
44
|
statusChanged?: ((status: SyncStatus) => void) | undefined;
|
|
43
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Configurable options to be used when connecting to the PowerSync
|
|
48
|
+
* backend instance.
|
|
49
|
+
*/
|
|
50
|
+
export interface PowerSyncConnectionOptions {
|
|
51
|
+
/**
|
|
52
|
+
* The connection method to use when streaming updates from
|
|
53
|
+
* the PowerSync backend instance.
|
|
54
|
+
* Defaults to a HTTP streaming connection.
|
|
55
|
+
*/
|
|
56
|
+
connectionMethod?: SyncStreamConnectionMethod;
|
|
57
|
+
}
|
|
44
58
|
export interface StreamingSyncImplementation extends BaseObserver<StreamingSyncImplementationListener>, Disposable {
|
|
45
59
|
/**
|
|
46
60
|
* Connects to the sync service
|
|
47
61
|
*/
|
|
48
|
-
connect(): Promise<void>;
|
|
62
|
+
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
49
63
|
/**
|
|
50
64
|
* Disconnects from the sync services.
|
|
51
65
|
* @throws if not connected or if abort is not controlled internally
|
|
@@ -66,6 +80,7 @@ export declare const DEFAULT_STREAMING_SYNC_OPTIONS: {
|
|
|
66
80
|
logger: ILogger;
|
|
67
81
|
crudUploadThrottleMs: number;
|
|
68
82
|
};
|
|
83
|
+
export declare const DEFAULT_STREAM_CONNECTION_OPTIONS: Required<PowerSyncConnectionOptions>;
|
|
69
84
|
export declare abstract class AbstractStreamingSyncImplementation extends BaseObserver<StreamingSyncImplementationListener> implements StreamingSyncImplementation {
|
|
70
85
|
protected _lastSyncedAt: Date | null;
|
|
71
86
|
protected options: AbstractStreamingSyncImplementationOptions;
|
|
@@ -86,16 +101,15 @@ export declare abstract class AbstractStreamingSyncImplementation extends BaseOb
|
|
|
86
101
|
getWriteCheckpoint(): Promise<string>;
|
|
87
102
|
protected _uploadAllCrud(): Promise<void>;
|
|
88
103
|
protected uploadCrudBatch(): Promise<boolean>;
|
|
89
|
-
connect(): Promise<void>;
|
|
104
|
+
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
90
105
|
disconnect(): Promise<void>;
|
|
91
106
|
/**
|
|
92
107
|
* @deprecated use [connect instead]
|
|
93
108
|
*/
|
|
94
|
-
streamingSync(signal?: AbortSignal): Promise<void>;
|
|
95
|
-
protected streamingSyncIteration(signal: AbortSignal,
|
|
109
|
+
streamingSync(signal?: AbortSignal, options?: PowerSyncConnectionOptions): Promise<void>;
|
|
110
|
+
protected streamingSyncIteration(signal: AbortSignal, options?: PowerSyncConnectionOptions): Promise<{
|
|
96
111
|
retry?: boolean;
|
|
97
112
|
}>;
|
|
98
|
-
protected streamingSyncRequest(req: StreamingSyncRequest, signal?: AbortSignal): AsyncGenerator<StreamingSyncLine>;
|
|
99
113
|
protected updateSyncStatus(options: SyncStatusOptions): void;
|
|
100
114
|
private delayRetry;
|
|
101
115
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import throttle from 'lodash/throttle';
|
|
2
2
|
import Logger from 'js-logger';
|
|
3
3
|
import { isStreamingKeepalive, isStreamingSyncCheckpoint, isStreamingSyncCheckpointComplete, isStreamingSyncCheckpointDiff, isStreamingSyncData } from './streaming-sync-types';
|
|
4
|
-
import ndjsonStream from 'can-ndjson-stream';
|
|
5
4
|
import { SyncStatus } from '../../../db/crud/SyncStatus';
|
|
6
5
|
import { SyncDataBucket } from '../bucket/SyncDataBucket';
|
|
7
6
|
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
@@ -11,12 +10,20 @@ export var LockType;
|
|
|
11
10
|
LockType["CRUD"] = "crud";
|
|
12
11
|
LockType["SYNC"] = "sync";
|
|
13
12
|
})(LockType || (LockType = {}));
|
|
13
|
+
export var SyncStreamConnectionMethod;
|
|
14
|
+
(function (SyncStreamConnectionMethod) {
|
|
15
|
+
SyncStreamConnectionMethod["HTTP"] = "http";
|
|
16
|
+
SyncStreamConnectionMethod["WEB_SOCKET"] = "web-socket";
|
|
17
|
+
})(SyncStreamConnectionMethod || (SyncStreamConnectionMethod = {}));
|
|
14
18
|
export const DEFAULT_CRUD_UPLOAD_THROTTLE_MS = 1000;
|
|
15
19
|
export const DEFAULT_STREAMING_SYNC_OPTIONS = {
|
|
16
20
|
retryDelayMs: 5000,
|
|
17
21
|
logger: Logger.get('PowerSyncStream'),
|
|
18
22
|
crudUploadThrottleMs: DEFAULT_CRUD_UPLOAD_THROTTLE_MS
|
|
19
23
|
};
|
|
24
|
+
export const DEFAULT_STREAM_CONNECTION_OPTIONS = {
|
|
25
|
+
connectionMethod: SyncStreamConnectionMethod.HTTP
|
|
26
|
+
};
|
|
20
27
|
export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
21
28
|
_lastSyncedAt;
|
|
22
29
|
options;
|
|
@@ -139,12 +146,12 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
139
146
|
return true;
|
|
140
147
|
}
|
|
141
148
|
}
|
|
142
|
-
async connect() {
|
|
149
|
+
async connect(options) {
|
|
143
150
|
if (this.abortController) {
|
|
144
151
|
await this.disconnect();
|
|
145
152
|
}
|
|
146
153
|
this.abortController = new AbortController();
|
|
147
|
-
this.streamingSyncPromise = this.streamingSync(this.abortController.signal);
|
|
154
|
+
this.streamingSyncPromise = this.streamingSync(this.abortController.signal, options);
|
|
148
155
|
// Return a promise that resolves when the connection status is updated
|
|
149
156
|
return new Promise((resolve) => {
|
|
150
157
|
const l = this.registerListener({
|
|
@@ -189,7 +196,7 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
189
196
|
/**
|
|
190
197
|
* @deprecated use [connect instead]
|
|
191
198
|
*/
|
|
192
|
-
async streamingSync(signal) {
|
|
199
|
+
async streamingSync(signal, options) {
|
|
193
200
|
if (!signal) {
|
|
194
201
|
this.abortController = new AbortController();
|
|
195
202
|
signal = this.abortController.signal;
|
|
@@ -231,7 +238,7 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
231
238
|
if (signal?.aborted) {
|
|
232
239
|
break;
|
|
233
240
|
}
|
|
234
|
-
const { retry } = await this.streamingSyncIteration(nestedAbortController.signal);
|
|
241
|
+
const { retry } = await this.streamingSyncIteration(nestedAbortController.signal, options);
|
|
235
242
|
if (!retry) {
|
|
236
243
|
/**
|
|
237
244
|
* A sync error ocurred that we cannot recover from here.
|
|
@@ -273,11 +280,15 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
273
280
|
// Mark as disconnected if here
|
|
274
281
|
this.updateSyncStatus({ connected: false });
|
|
275
282
|
}
|
|
276
|
-
async streamingSyncIteration(signal,
|
|
283
|
+
async streamingSyncIteration(signal, options) {
|
|
277
284
|
return await this.obtainLock({
|
|
278
285
|
type: LockType.SYNC,
|
|
279
286
|
signal,
|
|
280
287
|
callback: async () => {
|
|
288
|
+
const resolvedOptions = {
|
|
289
|
+
...DEFAULT_STREAM_CONNECTION_OPTIONS,
|
|
290
|
+
...(options ?? {})
|
|
291
|
+
};
|
|
281
292
|
this.logger.debug('Streaming sync iteration started');
|
|
282
293
|
this.options.adapter.startSession();
|
|
283
294
|
const bucketEntries = await this.options.adapter.getBucketStates();
|
|
@@ -294,11 +305,34 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
294
305
|
let validatedCheckpoint = null;
|
|
295
306
|
let appliedCheckpoint = null;
|
|
296
307
|
let bucketSet = new Set(initialBuckets.keys());
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
308
|
+
this.logger.debug('Requesting stream from server');
|
|
309
|
+
const syncOptions = {
|
|
310
|
+
path: '/sync/stream',
|
|
311
|
+
abortSignal: signal,
|
|
312
|
+
data: {
|
|
313
|
+
buckets: req,
|
|
314
|
+
include_checksum: true,
|
|
315
|
+
raw_data: true
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
const stream = resolvedOptions?.connectionMethod == SyncStreamConnectionMethod.HTTP
|
|
319
|
+
? await this.options.remote.postStream(syncOptions)
|
|
320
|
+
: await this.options.remote.socketStream(syncOptions);
|
|
321
|
+
this.logger.debug('Stream established. Processing events');
|
|
322
|
+
while (!stream.closed) {
|
|
323
|
+
const line = await stream.read();
|
|
324
|
+
if (!line) {
|
|
325
|
+
// The stream has closed while waiting
|
|
326
|
+
return { retry: true };
|
|
327
|
+
}
|
|
328
|
+
// A connection is active and messages are being received
|
|
329
|
+
if (!this.syncStatus.connected) {
|
|
330
|
+
// There is a connection now
|
|
331
|
+
Promise.resolve().then(() => this.triggerCrudUpload());
|
|
332
|
+
this.updateSyncStatus({
|
|
333
|
+
connected: true
|
|
334
|
+
});
|
|
335
|
+
}
|
|
302
336
|
if (isStreamingSyncCheckpoint(line)) {
|
|
303
337
|
targetCheckpoint = line.checkpoint;
|
|
304
338
|
const bucketsToDelete = new Set(bucketSet);
|
|
@@ -385,6 +419,11 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
385
419
|
if (remaining_seconds == 0) {
|
|
386
420
|
// Connection would be closed automatically right after this
|
|
387
421
|
this.logger.debug('Token expiring; reconnect');
|
|
422
|
+
/**
|
|
423
|
+
* For a rare case where the backend connector does not update the token
|
|
424
|
+
* (uses the same one), this should have some delay.
|
|
425
|
+
*/
|
|
426
|
+
await this.delayRetry();
|
|
388
427
|
return { retry: true };
|
|
389
428
|
}
|
|
390
429
|
this.triggerCrudUpload();
|
|
@@ -421,7 +460,6 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
421
460
|
}
|
|
422
461
|
}
|
|
423
462
|
}
|
|
424
|
-
progress?.();
|
|
425
463
|
}
|
|
426
464
|
this.logger.debug('Stream input empty');
|
|
427
465
|
// Connection closed. Likely due to auth issue.
|
|
@@ -429,31 +467,6 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
429
467
|
}
|
|
430
468
|
});
|
|
431
469
|
}
|
|
432
|
-
async *streamingSyncRequest(req, signal) {
|
|
433
|
-
const body = await this.options.remote.postStreaming('/sync/stream', req, {}, signal);
|
|
434
|
-
// A connection is active
|
|
435
|
-
// There is a connection now
|
|
436
|
-
Promise.resolve().then(() => this.triggerCrudUpload());
|
|
437
|
-
this.updateSyncStatus({
|
|
438
|
-
connected: true
|
|
439
|
-
});
|
|
440
|
-
const stream = ndjsonStream(body);
|
|
441
|
-
const reader = stream.getReader();
|
|
442
|
-
try {
|
|
443
|
-
while (true) {
|
|
444
|
-
// Read from the stream
|
|
445
|
-
const { done, value } = await reader.read();
|
|
446
|
-
// Exit if we're done
|
|
447
|
-
if (done)
|
|
448
|
-
return;
|
|
449
|
-
// Else yield the chunk
|
|
450
|
-
yield value;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
finally {
|
|
454
|
-
reader.releaseLock();
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
470
|
updateSyncStatus(options) {
|
|
458
471
|
const updatedStatus = new SyncStatus({
|
|
459
472
|
connected: options.connected ?? this.syncStatus.connected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -28,5 +28,6 @@ export * from './db/schema/TableV2';
|
|
|
28
28
|
export * from './utils/AbortOperation';
|
|
29
29
|
export * from './utils/BaseObserver';
|
|
30
30
|
export * from './utils/strings';
|
|
31
|
+
export * from './utils/DataStream';
|
|
31
32
|
export * from './utils/parseQuery';
|
|
32
33
|
export * from './types/types';
|
package/lib/index.js
CHANGED
|
@@ -28,6 +28,7 @@ export * from './db/schema/TableV2';
|
|
|
28
28
|
export * from './utils/AbortOperation';
|
|
29
29
|
export * from './utils/BaseObserver';
|
|
30
30
|
export * from './utils/strings';
|
|
31
|
+
export * from './utils/DataStream';
|
|
31
32
|
export * from './utils/parseQuery';
|
|
32
33
|
export * from './types/types';
|
|
33
34
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0DAA0D,CAAC;AACzE,cAAc,2CAA2C,CAAC;AAE1D,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0DAA0D,CAAC;AACzE,cAAc,2CAA2C,CAAC;AAE1D,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,eAAe,CAAC"}
|
|
@@ -8,13 +8,12 @@ export type BaseListener = {
|
|
|
8
8
|
[key: string]: ((...event: any) => any) | undefined;
|
|
9
9
|
};
|
|
10
10
|
export declare class BaseObserver<T extends BaseListener = BaseListener> implements BaseObserverInterface<T> {
|
|
11
|
-
protected listeners:
|
|
12
|
-
[id: string]: Partial<T>;
|
|
13
|
-
};
|
|
11
|
+
protected listeners: Set<Partial<T>>;
|
|
14
12
|
constructor();
|
|
15
13
|
/**
|
|
16
14
|
* Register a listener for updates to the PowerSync client.
|
|
17
15
|
*/
|
|
18
16
|
registerListener(listener: Partial<T>): () => void;
|
|
19
17
|
iterateListeners(cb: (listener: Partial<T>) => any): void;
|
|
18
|
+
iterateAsyncListeners(cb: (listener: Partial<T>) => Promise<any>): Promise<void>;
|
|
20
19
|
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { v4 } from 'uuid';
|
|
2
1
|
export class BaseObserver {
|
|
3
|
-
listeners;
|
|
4
|
-
constructor() {
|
|
5
|
-
this.listeners = {};
|
|
6
|
-
}
|
|
2
|
+
listeners = new Set();
|
|
3
|
+
constructor() { }
|
|
7
4
|
/**
|
|
8
5
|
* Register a listener for updates to the PowerSync client.
|
|
9
6
|
*/
|
|
10
7
|
registerListener(listener) {
|
|
11
|
-
|
|
12
|
-
this.listeners[id] = listener;
|
|
8
|
+
this.listeners.add(listener);
|
|
13
9
|
return () => {
|
|
14
|
-
|
|
10
|
+
this.listeners.delete(listener);
|
|
15
11
|
};
|
|
16
12
|
}
|
|
17
13
|
iterateListeners(cb) {
|
|
18
|
-
for (const
|
|
19
|
-
cb(
|
|
14
|
+
for (const listener of this.listeners) {
|
|
15
|
+
cb(listener);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async iterateAsyncListeners(cb) {
|
|
19
|
+
for (let i of Array.from(this.listeners.values())) {
|
|
20
|
+
await cb(i);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseObserver.js","sourceRoot":"","sources":["../../src/utils/BaseObserver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseObserver.js","sourceRoot":"","sources":["../../src/utils/BaseObserver.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,YAAY;IACb,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAE5C,gBAAe,CAAC;IAEhB;;OAEG;IACH,gBAAgB,CAAC,QAAoB;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,EAAiC;QAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAA0C;QACpE,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAClD,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ILogger } from 'js-logger';
|
|
2
|
+
import { BaseListener, BaseObserver } from './BaseObserver';
|
|
3
|
+
export type DataStreamOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* Close the stream if any consumer throws an error
|
|
6
|
+
*/
|
|
7
|
+
closeOnError?: boolean;
|
|
8
|
+
pressure?: {
|
|
9
|
+
highWaterMark?: number;
|
|
10
|
+
lowWaterMark?: number;
|
|
11
|
+
};
|
|
12
|
+
logger?: ILogger;
|
|
13
|
+
};
|
|
14
|
+
export type DataStreamCallback<Data extends any = any> = (data: Data) => Promise<void>;
|
|
15
|
+
export interface DataStreamListener<Data extends any = any> extends BaseListener {
|
|
16
|
+
data: (data: Data) => Promise<void>;
|
|
17
|
+
closed: () => void;
|
|
18
|
+
error: (error: Error) => void;
|
|
19
|
+
highWater: () => Promise<void>;
|
|
20
|
+
lowWater: () => Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_PRESSURE_LIMITS: {
|
|
23
|
+
highWater: number;
|
|
24
|
+
lowWater: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* A very basic implementation of a data stream with backpressure support which does not use
|
|
28
|
+
* native JS streams or async iterators.
|
|
29
|
+
* This is handy for environments such as React Native which need polyfills for the above.
|
|
30
|
+
*/
|
|
31
|
+
export declare class DataStream<Data extends any = any> extends BaseObserver<DataStreamListener<Data>> {
|
|
32
|
+
protected options?: DataStreamOptions | undefined;
|
|
33
|
+
dataQueue: Data[];
|
|
34
|
+
protected isClosed: boolean;
|
|
35
|
+
protected processingPromise: Promise<void> | null;
|
|
36
|
+
protected logger: ILogger;
|
|
37
|
+
constructor(options?: DataStreamOptions | undefined);
|
|
38
|
+
get highWatermark(): number;
|
|
39
|
+
get lowWatermark(): number;
|
|
40
|
+
get closed(): boolean;
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Enqueues data for the consumers to read
|
|
44
|
+
*/
|
|
45
|
+
enqueueData(data: Data): void;
|
|
46
|
+
/**
|
|
47
|
+
* Reads data once from the data stream
|
|
48
|
+
* @returns a Data payload or Null if the stream closed.
|
|
49
|
+
*/
|
|
50
|
+
read(): Promise<Data | null>;
|
|
51
|
+
/**
|
|
52
|
+
* Executes a callback for each data item in the stream
|
|
53
|
+
*/
|
|
54
|
+
forEach(callback: DataStreamCallback<Data>): () => void;
|
|
55
|
+
protected processQueue(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Creates a new data stream which is a map of the original
|
|
58
|
+
*/
|
|
59
|
+
map<ReturnData>(callback: (data: Data) => ReturnData): DataStream<ReturnData>;
|
|
60
|
+
protected hasDataReader(): boolean;
|
|
61
|
+
protected _processQueue(): Promise<void>;
|
|
62
|
+
protected iterateAsyncErrored(cb: (l: BaseListener) => Promise<void>): Promise<void>;
|
|
63
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import Logger from 'js-logger';
|
|
2
|
+
import { BaseObserver } from './BaseObserver';
|
|
3
|
+
export const DEFAULT_PRESSURE_LIMITS = {
|
|
4
|
+
highWater: 10,
|
|
5
|
+
lowWater: 0
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* A very basic implementation of a data stream with backpressure support which does not use
|
|
9
|
+
* native JS streams or async iterators.
|
|
10
|
+
* This is handy for environments such as React Native which need polyfills for the above.
|
|
11
|
+
*/
|
|
12
|
+
export class DataStream extends BaseObserver {
|
|
13
|
+
options;
|
|
14
|
+
dataQueue;
|
|
15
|
+
isClosed;
|
|
16
|
+
processingPromise;
|
|
17
|
+
logger;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super();
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.processingPromise = null;
|
|
22
|
+
this.isClosed = false;
|
|
23
|
+
this.dataQueue = [];
|
|
24
|
+
this.logger = options?.logger ?? Logger.get('DataStream');
|
|
25
|
+
if (options?.closeOnError) {
|
|
26
|
+
const l = this.registerListener({
|
|
27
|
+
error: (ex) => {
|
|
28
|
+
l?.();
|
|
29
|
+
this.close();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
get highWatermark() {
|
|
35
|
+
return this.options?.pressure?.highWaterMark ?? DEFAULT_PRESSURE_LIMITS.highWater;
|
|
36
|
+
}
|
|
37
|
+
get lowWatermark() {
|
|
38
|
+
return this.options?.pressure?.lowWaterMark ?? DEFAULT_PRESSURE_LIMITS.lowWater;
|
|
39
|
+
}
|
|
40
|
+
get closed() {
|
|
41
|
+
return this.isClosed;
|
|
42
|
+
}
|
|
43
|
+
async close() {
|
|
44
|
+
this.isClosed = true;
|
|
45
|
+
await this.processingPromise;
|
|
46
|
+
this.iterateListeners((l) => l.closed?.());
|
|
47
|
+
// Discard any data in the queue
|
|
48
|
+
this.dataQueue = [];
|
|
49
|
+
this.listeners.clear();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Enqueues data for the consumers to read
|
|
53
|
+
*/
|
|
54
|
+
enqueueData(data) {
|
|
55
|
+
if (this.isClosed) {
|
|
56
|
+
throw new Error('Cannot enqueue data into closed stream.');
|
|
57
|
+
}
|
|
58
|
+
this.dataQueue.push(data);
|
|
59
|
+
this.processQueue();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Reads data once from the data stream
|
|
63
|
+
* @returns a Data payload or Null if the stream closed.
|
|
64
|
+
*/
|
|
65
|
+
async read() {
|
|
66
|
+
if (this.dataQueue.length <= this.lowWatermark) {
|
|
67
|
+
await this.iterateAsyncErrored(async (l) => l.lowWater?.());
|
|
68
|
+
}
|
|
69
|
+
if (this.closed) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
const l = this.registerListener({
|
|
74
|
+
data: async (data) => {
|
|
75
|
+
resolve(data);
|
|
76
|
+
// Remove the listener
|
|
77
|
+
l?.();
|
|
78
|
+
},
|
|
79
|
+
closed: () => {
|
|
80
|
+
resolve(null);
|
|
81
|
+
l?.();
|
|
82
|
+
},
|
|
83
|
+
error: (ex) => {
|
|
84
|
+
reject(ex);
|
|
85
|
+
l?.();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
this.processQueue();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Executes a callback for each data item in the stream
|
|
93
|
+
*/
|
|
94
|
+
forEach(callback) {
|
|
95
|
+
if (this.dataQueue.length <= this.lowWatermark) {
|
|
96
|
+
this.iterateAsyncErrored(async (l) => l.lowWater?.());
|
|
97
|
+
}
|
|
98
|
+
return this.registerListener({
|
|
99
|
+
data: callback
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
async processQueue() {
|
|
103
|
+
if (this.processingPromise) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Allow listeners to mutate the queue before processing.
|
|
108
|
+
* This allows for operations such as dropping or compressing data
|
|
109
|
+
* on high water or requesting more data on low water.
|
|
110
|
+
*/
|
|
111
|
+
if (this.dataQueue.length >= this.highWatermark) {
|
|
112
|
+
await this.iterateAsyncErrored(async (l) => l.highWater?.());
|
|
113
|
+
}
|
|
114
|
+
return (this.processingPromise = this._processQueue());
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Creates a new data stream which is a map of the original
|
|
118
|
+
*/
|
|
119
|
+
map(callback) {
|
|
120
|
+
const stream = new DataStream(this.options);
|
|
121
|
+
const l = this.registerListener({
|
|
122
|
+
data: async (data) => {
|
|
123
|
+
stream.enqueueData(callback(data));
|
|
124
|
+
},
|
|
125
|
+
closed: () => {
|
|
126
|
+
stream.close();
|
|
127
|
+
l?.();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return stream;
|
|
131
|
+
}
|
|
132
|
+
hasDataReader() {
|
|
133
|
+
return Array.from(this.listeners.values()).some((l) => !!l.data);
|
|
134
|
+
}
|
|
135
|
+
async _processQueue() {
|
|
136
|
+
if (!this.dataQueue.length || this.isClosed || !this.hasDataReader()) {
|
|
137
|
+
Promise.resolve().then(() => (this.processingPromise = null));
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const data = this.dataQueue.shift();
|
|
141
|
+
await this.iterateAsyncErrored(async (l) => l.data?.(data));
|
|
142
|
+
if (this.dataQueue.length <= this.lowWatermark) {
|
|
143
|
+
await this.iterateAsyncErrored(async (l) => l.lowWater?.());
|
|
144
|
+
}
|
|
145
|
+
this.processingPromise = null;
|
|
146
|
+
if (this.dataQueue.length) {
|
|
147
|
+
// Next tick
|
|
148
|
+
setTimeout(() => this.processQueue());
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async iterateAsyncErrored(cb) {
|
|
152
|
+
for (let i of Array.from(this.listeners.values())) {
|
|
153
|
+
try {
|
|
154
|
+
await cb(i);
|
|
155
|
+
}
|
|
156
|
+
catch (ex) {
|
|
157
|
+
this.logger.error(ex);
|
|
158
|
+
this.iterateListeners((l) => l.error?.(ex));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=DataStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataStream.js","sourceRoot":"","sources":["../../src/utils/DataStream.ts"],"names":[],"mappings":"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"}
|