UNPKG

firestore-queue

Version:

A powerful, scalable queue system built on Google Firestore with time-based indexing, auto-configuration, and connection reuse

94 lines 2.25 kB
import { QueueMessageInput } from '../types'; /** * Writer interface for different data entry methods */ export interface WriterInterface { write(message: QueueMessageInput): Promise<WriteResult>; writeBatch(messages: QueueMessageInput[]): Promise<BulkWriteResult>; close?(): Promise<void>; } /** * Writer configuration */ export interface WriterConfig { queueName: string; projectId: string; databaseId?: string; serviceAccountPath?: string; firestoreInstance?: any; validatePayload?: boolean; maxPayloadSize?: number; allowedMessageTypes?: string[]; enableBatching?: boolean; batchSize?: number; batchTimeoutMs?: number; retryAttempts?: number; retryDelayMs?: number; deadLetterQueue?: string; enableMetrics?: boolean; metricsCallback?: (metrics: WriterMetrics) => void; } /** * Write operation result */ export interface WriteResult { success: boolean; messageId?: string; error?: string; timestamp: Date; latencyMs: number; } /** * Bulk write operation result */ export interface BulkWriteResult { success: boolean; totalMessages: number; successfulWrites: number; failedWrites: number; messageIds: string[]; errors: Array<{ index: number; error: string; }>; timestamp: Date; latencyMs: number; } /** * Writer metrics */ export interface WriterMetrics { totalWrites: number; successfulWrites: number; failedWrites: number; averageLatencyMs: number; currentBatchSize: number; lastWriteTimestamp: Date; } /** * HTTP endpoint configuration */ export interface HTTPWriterConfig extends WriterConfig { endpoint: string; authToken?: string; headers?: Record<string, string>; timeout?: number; } /** * Stream writer configuration */ export interface StreamWriterConfig extends WriterConfig { flushIntervalMs?: number; maxBufferSize?: number; compression?: boolean; } /** * Cloud Function writer configuration */ export interface CloudFunctionWriterConfig extends WriterConfig { functionName: string; region?: string; triggerType?: 'http' | 'firestore' | 'schedule'; schedule?: string; } //# sourceMappingURL=types.d.ts.map