UNPKG

@devcycle/nodejs-server-sdk

Version:

The DevCycle NodeJS Server SDK used for feature management.

60 lines (59 loc) 2.15 kB
import { DVCRequestEvent } from './models/requestEvent'; import { BucketedUserConfig, DVCLogger, DVCReporter } from '@devcycle/types'; import { DevCycleEvent, DVCPopulatedUser } from '@devcycle/js-cloud-server-sdk'; import { WASMBucketingExports } from '@devcycle/bucketing-assembly-script'; export declare const AggregateEventTypes: Record<string, string>; export declare const EventTypes: Record<string, string>; type UserEventsBatchRecord = { user: DVCPopulatedUser; events: DVCRequestEvent[]; }; export type FlushPayload = { payloadId: string; eventCount: number; records: UserEventsBatchRecord[]; }; export type EventQueueOptions = { eventFlushIntervalMS?: number; disableAutomaticEventLogging?: boolean; disableCustomEventLogging?: boolean; eventRequestChunkSize?: number; maxEventQueueSize?: number; flushEventQueueSize?: number; logger: DVCLogger; reporter?: DVCReporter; eventsAPIURI?: string; }; export declare class EventQueue { private readonly sdkKey; private readonly clientUUID; private readonly bucketing; private readonly logger; private readonly reporter?; private readonly eventsAPIURI?; eventFlushIntervalMS: number; flushEventQueueSize: number; maxEventQueueSize: number; disabledEventFlush: boolean; private flushInterval; private flushInProgress; private flushCallbacks; constructor(sdkKey: string, clientUUID: string, bucketing: WASMBucketingExports, options: EventQueueOptions); cleanup(): void; private _flushEvents; /** * Flush events in queue to DevCycle Events API. Requeue events if flush fails */ flushEvents(): Promise<void>; /** * Queue DVCAPIEvent for publishing to DevCycle Events API. */ queueEvent(user: DVCPopulatedUser, event: DevCycleEvent): void; /** * Queue DVCEvent that can be aggregated together, where multiple calls are aggregated * by incrementing the 'value' field. */ queueAggregateEvent(user: DVCPopulatedUser, event: DevCycleEvent, bucketedConfig?: BucketedUserConfig): void; private checkEventQueueSize; } export {};