unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
46 lines • 3 kB
TypeScript
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