From 862ac9a16aa891c26355f9ad5858283c3aa029d6 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 19 Feb 2024 21:13:00 +0100 Subject: wallet-core: safer long-polling We now wait for some time if long-polling returns too early --- packages/taler-wallet-core/src/common.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'packages/taler-wallet-core/src/common.ts') diff --git a/packages/taler-wallet-core/src/common.ts b/packages/taler-wallet-core/src/common.ts index 9d7f2e763..45351f680 100644 --- a/packages/taler-wallet-core/src/common.ts +++ b/packages/taler-wallet-core/src/common.ts @@ -350,6 +350,7 @@ export enum TaskRunResultType { Backoff = "backoff", Progress = "progress", Error = "error", + LongpollReturnedPending = "longpoll-returned-pending", ScheduleLater = "schedule-later", } @@ -358,6 +359,7 @@ export type TaskRunResult = | TaskRunErrorResult | TaskRunBackoffResult | TaskRunProgressResult + | TaskRunLongpollReturnedPendingResult | TaskRunScheduleLaterResult; export namespace TaskRunResult { @@ -396,6 +398,15 @@ export namespace TaskRunResult { runAt, }; } + /** + * Longpolling returned, but what we're waiting for + * is still pending on the other side. + */ + export function longpollReturnedPending(): TaskRunLongpollReturnedPendingResult { + return { + type: TaskRunResultType.LongpollReturnedPending, + }; + } } export interface TaskRunFinishedResult { @@ -415,6 +426,10 @@ export interface TaskRunScheduleLaterResult { runAt: AbsoluteTime; } +export interface TaskRunLongpollReturnedPendingResult { + type: TaskRunResultType.LongpollReturnedPending; +} + export interface TaskRunErrorResult { type: TaskRunResultType.Error; errorDetail: TalerErrorDetail; -- cgit v1.2.3