featurehub-javascript-client-sdk
Version:
FeatureHub client/browser SDK
55 lines (54 loc) • 3.08 kB
TypeScript
import { FeatureStateValueInterceptor, InterceptorValueMatch } from './interceptors';
import { FeatureStateHolder } from './feature_state';
import { AnalyticsCollector } from './analytics';
import { FeatureRolloutStrategy, SSEResultState } from './models';
import { ClientContext } from './client_context';
import { Applied, ApplyFeature } from './strategy_matcher';
import { InternalFeatureRepository } from './internal_feature_repository';
import { CatchReleaseListenerHandler, ReadinessListenerHandle } from './feature_hub_config';
import { PostLoadNewFeatureStateAvailableListener, Readyness, ReadynessListener } from './featurehub_repository';
export declare class ClientFeatureRepository implements InternalFeatureRepository {
private hasReceivedInitialState;
private features;
private analyticsCollectors;
private readynessState;
private _readinessListeners;
private _catchAndReleaseMode;
private _catchReleaseStates;
private _newFeatureStateAvailableListeners;
private _matchers;
private readonly _applyFeature;
private _catchReleaseCheckForDeletesOnRelease?;
constructor(applyFeature?: ApplyFeature);
apply(strategies: Array<FeatureRolloutStrategy>, key: string, featureValueId: string, context: ClientContext): Applied;
get readyness(): Readyness;
notify(state: SSEResultState, data: any): void;
private _checkForDeletedFeatures;
addValueInterceptor(matcher: FeatureStateValueInterceptor): void;
valueInterceptorMatched(key: string): InterceptorValueMatch | undefined;
addPostLoadNewFeatureStateAvailableListener(listener: PostLoadNewFeatureStateAvailableListener): CatchReleaseListenerHandler;
removePostLoadNewFeatureStateAvailableListener(listener: PostLoadNewFeatureStateAvailableListener | CatchReleaseListenerHandler): void;
addReadynessListener(listener: ReadynessListener): ReadinessListenerHandle;
addReadinessListener(listener: ReadynessListener, ignoreNotReadyOnRegister?: boolean): ReadinessListenerHandle;
removeReadinessListener(listener: ReadynessListener | ReadinessListenerHandle): void;
notReady(): void;
broadcastReadynessState(firstState: boolean): void;
addAnalyticCollector(collector: AnalyticsCollector): void;
simpleFeatures(): Map<string, string | undefined>;
logAnalyticsEvent(action: string, other?: Map<string, string>, ctx?: ClientContext): void;
hasFeature(key: string): undefined | FeatureStateHolder;
feature<T = any>(key: string): FeatureStateHolder<T>;
getFeatureState<T = any>(key: string): FeatureStateHolder<T>;
get catchAndReleaseMode(): boolean;
set catchAndReleaseMode(value: boolean);
release(disableCatchAndRelease?: boolean): Promise<void>;
getFlag(key: string): boolean | undefined;
getString(key: string): string | undefined;
getJson(key: string): string | undefined;
getNumber(key: string): number | undefined;
isSet(key: string): boolean;
private _catchUpdatedFeatures;
private triggerNewStateAvailable;
private featureUpdate;
private deleteFeature;
}