featurehub-javascript-client-sdk
Version:
FeatureHub client/browser SDK
56 lines (55 loc) • 1.99 kB
TypeScript
import { EdgeService } from './edge_service';
import { FeatureHubConfig } from './feature_hub_config';
import { InternalFeatureRepository } from './internal_feature_repository';
export declare class EventSource {
static readonly CLOSED: number;
static readonly CONNECTING: number;
static readonly OPEN: number;
readonly CLOSED: number;
readonly CONNECTING: number;
readonly OPEN: number;
readonly url: string;
readonly readyState: number;
readonly withCredentials: boolean;
onopen: (evt: MessageEvent) => any;
onmessage: (evt: MessageEvent) => any;
onerror: (evt: MessageEvent) => any;
constructor(url: string, eventSourceInitDict?: EventSource.EventSourceInitDict);
addEventListener(type: string, listener: EventListener): void;
dispatchEvent(evt: Event): boolean;
removeEventListener(type: string, listener?: EventListener): void;
close(): void;
}
export declare namespace EventSource {
enum ReadyState {
CONNECTING = 0,
OPEN = 1,
CLOSED = 2
}
interface EventSourceInitDict {
withCredentials?: boolean;
headers?: object;
proxy?: string;
https?: object;
rejectUnauthorized?: boolean;
}
}
export type EventSourceProvider = (url: string, eventSourceInitDict?: EventSource.EventSourceInitDict) => EventSource;
export declare class FeatureHubEventSourceClient implements EdgeService {
private eventSource;
private readonly _config;
private readonly _repository;
private _header;
private _staleEnvironmentTimeoutId;
private _stopped;
static eventSourceProvider: EventSourceProvider;
constructor(config: FeatureHubConfig, repository: InternalFeatureRepository);
get stopped(): boolean;
init(): void;
close(): void;
clientEvaluated(): boolean;
contextChange(header: string): Promise<void>;
poll(): Promise<void>;
requiresReplacementOnHeaderChange(): boolean;
private processConfig;
}