From be55064786cf55999a7c0c098ac407c3fa85ce91 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Mon, 10 Jul 2023 11:18:13 +0200 Subject: [PATCH] feat(tracker): method to force send all remaining messages --- tracker/tracker/src/common/interaction.ts | 1 + tracker/tracker/src/main/app/index.ts | 4 ++++ tracker/tracker/src/main/index.ts | 7 +++++++ tracker/tracker/src/webworker/index.ts | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/tracker/tracker/src/common/interaction.ts b/tracker/tracker/src/common/interaction.ts index bdd1c0408..22d70bca3 100644 --- a/tracker/tracker/src/common/interaction.ts +++ b/tracker/tracker/src/common/interaction.ts @@ -28,6 +28,7 @@ export type ToWorkerData = | Array | { type: 'compressed'; batch: Uint8Array } | { type: 'uncompressed'; batch: Uint8Array } + | 'forceFlushBatch' type Failure = { type: 'failure' diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index b4be6b283..b4c22fc27 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -662,6 +662,10 @@ export default class App { } } + forceFlushBatch() { + this.worker?.postMessage('forceFlushBatch') + } + getTabId() { return this.session.getTabId() } diff --git a/tracker/tracker/src/main/index.ts b/tracker/tracker/src/main/index.ts index 5f713e907..ebc15bc04 100644 --- a/tracker/tracker/src/main/index.ts +++ b/tracker/tracker/src/main/index.ts @@ -242,6 +242,13 @@ export default class API { return this.app.session.getSessionHash() } + forceFlushBatch() { + if (this.app === null) { + return + } + this.app.forceFlushBatch() + } + getSessionToken(): string | null | undefined { if (this.app === null) { return null diff --git a/tracker/tracker/src/webworker/index.ts b/tracker/tracker/src/webworker/index.ts index c7f781669..7e4d09352 100644 --- a/tracker/tracker/src/webworker/index.ts +++ b/tracker/tracker/src/webworker/index.ts @@ -86,6 +86,10 @@ self.onmessage = ({ data }: { data: ToWorkerData }): any => { reset() return (workerStatus = WorkerStatus.Stopped) } + if (data === 'forceFlushBatch') { + finalize() + return + } if (Array.isArray(data)) { if (writer !== null) {