UNPKG

npaw-plugin-nwf

Version:
49 lines (48 loc) 1.25 kB
import SessionsRequest from '../SessionsRequest'; export interface FlushError { code: string; details?: unknown; } /** * Manages flush lifecycle with timeout and failure tracking */ export default class FlushController { private flushResolve; private flushReject; private flushTimeout; private failedRequests; private isActive; /** * Start a flush operation * @param timeoutMs - Timeout in milliseconds * @returns Promise that resolves when flush completes or rejects on timeout/failure */ startFlush(timeoutMs: number): Promise<unknown>; /** * Record a failed request during flush * @param request - Failed request */ recordFailedRequest(request: SessionsRequest): void; /** * Complete the flush (call when queue is empty) */ complete(): void; /** * Fail the flush with an error * @param code - Error code * @param details - Error details */ fail(code: string, details?: unknown): void; /** * Check if flush is currently active */ isFlushing(): boolean; /** * Clear flush state */ private clear; /** * Create a standardized error object */ private createError; }