beacon-buffer
Version:
A lightweight, configurable JavaScript library for buffering and sending data using the Beacon API
69 lines • 1.88 kB
TypeScript
/**
* 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