@devcycle/js-client-sdk
Version:
The Javascript Client SDK for DevCycle
40 lines (39 loc) • 1.42 kB
TypeScript
import { DevCycleClient } from './Client';
import { DevCycleEvent, DevCycleOptions, DVCCustomDataJSON } from './types';
import { VariableDefinitions } from '@devcycle/types';
export declare const EventTypes: {
variableEvaluated: string;
variableDefaulted: string;
};
type AggregateEvent = DevCycleEvent & {
target: string;
};
export declare class EventQueue<Variables extends VariableDefinitions = VariableDefinitions, CustomData extends DVCCustomDataJSON = DVCCustomDataJSON> {
private readonly sdkKey;
private readonly options;
private readonly client;
private eventQueue;
private aggregateEventMap;
private flushInterval;
private flushEventQueueSize;
private maxEventQueueSize;
private eventQueueBatchSize;
constructor(sdkKey: string, dvcClient: DevCycleClient<Variables, CustomData>, options: DevCycleOptions);
flushEvents(): Promise<void>;
/**
* Queue DVCAPIEvent for producing
*/
queueEvent(event: DevCycleEvent): void;
/**
* Queue DVCEvent that can be aggregated together, where multiple calls are aggregated
* by incrementing the 'value' field.
*/
queueAggregateEvent(event: AggregateEvent): void;
private checkEventQueueSize;
/**
* Turn the Aggregate Event Map into an Array of DVCAPIEvent objects for publishing.
*/
private eventsFromAggregateEventMap;
close(): Promise<void>;
}
export {};