npaw-plugin-nwf
Version:
NPAW's Plugin
49 lines (48 loc) • 1.25 kB
TypeScript
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;
}