Skip to content

Commit 9aea8ec

Browse files
committed
Handle completed uploads
1 parent 1355e9a commit 9aea8ec

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

packages/common/src/client/sync/stream/AbstractStreamingSyncImplementation.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,9 @@ export abstract class AbstractStreamingSyncImplementation
191191
protected abortController: AbortController | null;
192192
protected crudUpdateListener?: () => void;
193193
protected streamingSyncPromise?: Promise<void>;
194+
194195
private pendingCrudUpload?: Promise<void>;
196+
private notifyCompletedUploads?: () => void;
195197

196198
syncStatus: SyncStatus;
197199
triggerCrudUpload: () => void;
@@ -217,6 +219,7 @@ export abstract class AbstractStreamingSyncImplementation
217219
}
218220

219221
this.pendingCrudUpload = new Promise((resolve) => {
222+
this.notifyCompletedUploads?.();
220223
this._uploadAllCrud().finally(() => {
221224
this.pendingCrudUpload = undefined;
222225
resolve();
@@ -798,7 +801,7 @@ The next upload iteration will be delayed.`);
798801
}
799802

800803
async function stop() {
801-
control('stop');
804+
await control('stop');
802805
}
803806

804807
async function control(op: string, payload?: ArrayBuffer | string) {
@@ -876,9 +879,14 @@ The next upload iteration will be delayed.`);
876879
}
877880

878881
try {
882+
this.notifyCompletedUploads = () => {
883+
control('completed_upload');
884+
};
885+
879886
await control('start', JSON.stringify(resolvedOptions.params));
880887
await receivingLines;
881888
} finally {
889+
this.notifyCompletedUploads = undefined;
882890
await stop();
883891
}
884892
}

0 commit comments

Comments
 (0)