UNPKG

@launchdarkly/js-sdk-common

Version:
58 lines 2.06 kB
import { EventListener, EventName, LDLogger } from '../../api'; import { DataSourceErrorKind } from '../../datasource'; export interface EventStream { addEventListener(type: EventName, listener: EventListener): void; } export interface ObjProcessors { [kind: string]: (object: any) => any; } export interface Update { kind: string; key: string; version: number; object?: any; deleted?: boolean; } export interface Payload { id: string; version: number; state: string; basis: boolean; updates: Update[]; } export type PayloadListener = (payload: Payload) => void; /** * A FDv2 PayloadReader can be used to parse payloads from a stream of FDv2 events. It will send payloads * to the PayloadListeners as the payloads are received. Invalid series of events may be dropped silently, * but the payload reader will continue to operate. */ export declare class PayloadReader { private readonly _objProcessors; private readonly _errorHandler?; private readonly _logger?; private _listeners; private _tempId?; private _tempBasis?; private _tempUpdates; /** * Creates a PayloadReader * * @param eventStream event stream of FDv2 events * @param _objProcessors defines object processors for each object kind. * @param _errorHandler that will be called with errors as they are encountered * @param _logger for logging */ constructor(eventStream: EventStream, _objProcessors: ObjProcessors, _errorHandler?: ((errorKind: DataSourceErrorKind, message: string) => void) | undefined, _logger?: LDLogger | undefined); addPayloadListener(listener: PayloadListener): void; removePayloadListener(listener: PayloadListener): void; private _attachHandler; private _processObj; private _processServerIntent; private _processPutObject; private _processDeleteObject; private _processPayloadTransferred; private _processGoodbye; private _processError; private _resetState; } //# sourceMappingURL=payloadReader.d.ts.map