UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

46 lines 3 kB
import type { IEventStore, IFeatureToggleDeltaQuery, IFeatureToggleQuery, IFlagResolver, ISegmentReadModel, IUnleashConfig } from '../../../types/index.js'; import type ConfigurationRevisionService from '../../feature-toggle/configuration-revision-service.js'; import { DeltaCache } from './delta-cache.js'; import type { FeatureConfigurationDeltaClient, IClientFeatureToggleDeltaReadModel } from './client-feature-toggle-delta-read-model-type.js'; import EventEmitter from 'events'; import type { ClientFeaturesDeltaSchema } from '../../../openapi/index.js'; import { type DeltaEvent, type DeltaHydrationEvent } from './client-feature-toggle-delta-types.js'; export type EnvironmentRevisions = Record<string, DeltaCache>; export type EnvironmentVisibleRevisionState = { projectRevisions: Map<string, number>; segmentRevisions: Map<number, number>; maxReferencedSegmentRevision: number; }; export declare const UPDATE_DELTA = "UPDATE_DELTA"; export declare const filterEventsByQuery: (events: DeltaEvent[], requestedRevisionId: number, projects: string[], namePrefix: string, referencedSegmentIds: Set<number>) => DeltaEvent[]; export declare const filterHydrationEventByQuery: (event: DeltaHydrationEvent, projects: string[], namePrefix: string) => DeltaHydrationEvent; export declare class ClientFeatureToggleDelta extends EventEmitter { private static instance; private clientFeatureToggleDeltaReadModel; private delta; private visibleRevisions; private eventStore; private lastDeltaProcessedRevisionId; private flagResolver; private readonly segmentReadModel; private eventBus; private readonly logger; constructor(clientFeatureToggleDeltaReadModel: IClientFeatureToggleDeltaReadModel, segmentReadModel: ISegmentReadModel, eventStore: IEventStore, configurationRevisionService: ConfigurationRevisionService, flagResolver: IFlagResolver, config: IUnleashConfig); static getInstance(clientFeatureToggleDeltaReadModel: IClientFeatureToggleDeltaReadModel, segmentReadModel: ISegmentReadModel, eventStore: IEventStore, configurationRevisionService: ConfigurationRevisionService, flagResolver: IFlagResolver, config: IUnleashConfig): ClientFeatureToggleDelta; getDelta(sdkRevisionId: number | undefined, query: IFeatureToggleQuery): Promise<ClientFeaturesDeltaSchema | undefined>; onUpdateRevisionEvent(): Promise<void>; /** * This is used in client-feature-delta-api.e2e.test.ts, do not remove */ resetDelta(): void; private processChangeEvents; private updateFeaturesDelta; getChangedToggles(environment: string, toggles: string[]): Promise<FeatureConfigurationDeltaClient[]>; private initEnvironmentDelta; private updateVisibleRevisions; getClientFeatures(query: IFeatureToggleDeltaQuery): Promise<FeatureConfigurationDeltaClient[]>; storeFootprint(): void; getCacheSizeInBytes(value: any): number; } export type { DeltaEvent }; //# sourceMappingURL=client-feature-toggle-delta.d.ts.map