@casoon/auditmysite
Version:
Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe
84 lines • 2.37 kB
TypeScript
/**
* 🔧 Queue Adapter Interface
*
* Base adapter interface for the unified queue system.
* Implements the Adapter Pattern to provide a consistent API
* for different queue implementations.
*/
import { QueueItem, QueueConfig, QueueStatistics, QueueProcessor, QueueResult, QueueEventCallbacks } from './types';
export declare abstract class QueueAdapter<T = any> {
protected config: QueueConfig;
protected callbacks?: QueueEventCallbacks<T>;
protected items: Map<string, QueueItem<T>>;
protected isProcessing: boolean;
protected startTime?: Date;
protected endTime?: Date;
constructor(config: QueueConfig, callbacks?: QueueEventCallbacks<T>);
/**
* Add items to the queue
*/
abstract enqueue(data: T[], options?: {
priority?: number;
}): string[];
/**
* Process all items in the queue
*/
abstract process(processor: QueueProcessor<T>): Promise<QueueResult<T>>;
/**
* Get queue statistics
*/
abstract getStatistics(): QueueStatistics;
/**
* Pause queue processing
*/
abstract pause(): void;
/**
* Resume queue processing
*/
abstract resume(): void;
/**
* Clear all items from the queue
*/
abstract clear(): void;
/**
* Update queue configuration
*/
configure(config: Partial<QueueConfig>): void;
/**
* Get current configuration
*/
getConfiguration(): QueueConfig;
/**
* Check if queue is processing
*/
isActive(): boolean;
/**
* Get all items
*/
getItems(): QueueItem<T>[];
/**
* Get items by status
*/
getItemsByStatus(status: QueueItem<T>['status']): QueueItem<T>[];
/**
* Calculate priority for an item based on patterns
*/
protected calculatePriority(data: T, defaultPriority?: number): number;
/**
* Generate unique ID for queue item
*/
protected generateId(): string;
/**
* Create a new queue item
*/
protected createQueueItem(data: T, priority?: number): QueueItem<T>;
/**
* Update item status
*/
protected updateItemStatus(id: string, status: QueueItem<T>['status'], data?: Partial<QueueItem<T>>): boolean;
/**
* Get basic statistics
*/
protected getBaseStatistics(): QueueStatistics;
}
//# sourceMappingURL=queue-adapter.d.ts.map