UNPKG

beacon-buffer

Version:

A lightweight, configurable JavaScript library for buffering and sending data using the Beacon API

69 lines 1.88 kB
/** * Beacon Buffer - A generic buffer library for sending data using the Beacon API * Functional API design using TypeScript */ export interface BeaconBufferConfig { endpointUrl: string; sendInterval?: number; headers?: Record<string, string>; bufferKey?: string; dataKey?: string; autoStart?: boolean; enableSendLock?: boolean; sendTimeout?: number; retryOnFailure?: boolean; maxBufferSize?: number; enableAutoSend?: boolean; } export interface LogData { [key: string]: any; timestamp?: string; } interface Settings { endpointUrl: string; sendInterval: number; headers: Record<string, string>; bufferKey: string; dataKey: string; autoStart: boolean; enableSendLock: boolean; sendTimeout: number; retryOnFailure: boolean; maxBufferSize: number; enableAutoSend: boolean; } declare class BeaconBuffer { private settings; private sendIntervalId; private isRunning; private isSending; private sendingData; private sendTimeoutId; private visibilityHandler; private boundSendNow; constructor(config: BeaconBufferConfig); private validateConfig; private buildSettings; private initializeEventHandlers; private saveBuffer; private calculateCurrentBufferSize; addLog(logData: LogData): void; getBuffer(): LogData[]; clearBuffer(): void; sendNow(): boolean; private prepareDataForSending; private createJsonBlob; private removeSentDataFromBuffer; private startSendTimeout; private clearSendTimeout; start(): void; stop(): void; private attachEventListeners; private removeEventListeners; private startPeriodicSending; private stopPeriodicSending; getConfig(): Settings; isStarted(): boolean; } export default BeaconBuffer; //# sourceMappingURL=beacon-buffer.d.ts.map