UNPKG

unleash-client

Version:
93 lines 3.51 kB
import { EventEmitter } from 'events'; import { ClientFeaturesDelta, ClientFeaturesResponse, EnhancedFeatureInterface, FeatureInterface } from '../feature'; import { CustomHeaders, CustomHeadersFunction } from '../headers'; import { HttpOptions } from '../http-options'; import { TagFilter } from '../tags'; import { BootstrapProvider } from './bootstrap-provider'; import { StorageProvider } from './storage-provider'; import { Segment } from '../strategy/strategy'; import { Mode } from '../unleash-config'; export declare const SUPPORTED_SPEC_VERSION = "5.2.0"; export interface RepositoryInterface extends EventEmitter { getToggle(name: string): FeatureInterface | undefined; getToggles(): FeatureInterface[]; getTogglesWithSegmentData(): EnhancedFeatureInterface[]; getSegment(id: number): Segment | undefined; stop(): void; start(): Promise<void>; } export interface RepositoryOptions { url: string; appName: string; instanceId: string; connectionId: string; projectName?: string; refreshInterval: number; timeout?: number; headers?: CustomHeaders; customHeadersFunction?: CustomHeadersFunction; httpOptions?: HttpOptions; namePrefix?: string; tags?: Array<TagFilter>; bootstrapProvider: BootstrapProvider; bootstrapOverride?: boolean; storageProvider: StorageProvider<ClientFeaturesResponse>; eventSource?: EventSource; mode: Mode; } export default class Repository extends EventEmitter implements EventEmitter { private timer; private url; private etag; private appName; private instanceId; private connectionId; private refreshInterval; private headers?; private failures; private customHeadersFunction?; private timeout?; private stopped; private projectName?; private httpOptions?; private readonly namePrefix?; private readonly tags?; private bootstrapProvider; private bootstrapOverride; private storageProvider; private ready; private connected; private data; private segments; private eventSource; private mode; constructor({ url, appName, instanceId, connectionId, projectName, refreshInterval, timeout, headers, customHeadersFunction, httpOptions, namePrefix, tags, bootstrapProvider, bootstrapOverride, storageProvider, eventSource, mode, }: RepositoryOptions); private handleFlagsFromStream; timedFetch(interval: number): void; validateFeature(feature: FeatureInterface): void; start(): Promise<void>; loadBackup(): Promise<void>; setReady(): void; createSegmentLookup(segments: Segment[] | undefined): Map<number, Segment>; save(response: ClientFeaturesResponse, fromApi: boolean): Promise<void>; saveDelta(delta: ClientFeaturesDelta): Promise<void>; notEmpty(content: ClientFeaturesResponse): boolean; loadBootstrap(): Promise<void>; private convertToMap; getFailures(): number; nextFetch(): number; private backoff; private countSuccess; private configurationError; private recoverableError; private handleErrorCases; fetch(): Promise<void>; mergeTagsToStringArray(tags: Array<TagFilter>): Array<string>; stop(): void; getSegment(segmentId: number): Segment | undefined; getToggle(name: string): FeatureInterface | undefined; getToggles(): FeatureInterface[]; getTogglesWithSegmentData(): EnhancedFeatureInterface[]; private enhanceStrategies; } //# sourceMappingURL=index.d.ts.map