rox-ssr
Version:
Rollout.io ROX JS SDK Client for SSR
106 lines (105 loc) • 3.82 kB
TypeScript
import { Flag } from './flag';
import { RoxString } from './string';
import { RoxNumber } from './number';
export { Flag } from './flag';
export { RoxString } from './string';
export { RoxNumber } from './number';
declare global {
interface Window {
rolloutData: any;
}
}
export interface RoxContainer {
[key: string]: Flag | RoxNumber | RoxString;
}
export declare enum RoxFetcherStatus {
AppliedFromEmbedded = "APPLIED_FROM_EMBEDDED",
AppliedFromCache = "APPLIED_FROM_CACHE",
AppliedFromNetwork = "APPLIED_FROM_NETWORK",
ErrorFetchFailed = "ERROR_FETCH_FAILED"
}
export interface RoxFetcherResult {
fetcherStatus: RoxFetcherStatus;
creationDate: Date;
hasChanges: boolean;
errorDetails?: string;
clientData?: string;
}
export interface RoxReporting {
name: string;
value: string;
}
export interface RoxExperiment {
identifier: string;
name: string;
isArchived: boolean;
labels: string[];
}
export interface SelfManagedOptions {
serverURL: string;
analyticsURL: string;
pushUpdateURL?: string;
configurationURL?: string;
stateURL?: string;
}
export interface RoxSetupOptions {
version?: string;
configurationFetchedHandler?(fetcherResult: RoxFetcherResult): void;
debugLevel?: 'verbose';
impressionHandler?(reporting: RoxReporting, context: any): void;
platform?: string;
fetchIntervalInSec?: number;
disableNetworkFetch?: boolean;
dynamicPropertyRuleHandler?(propName: string, context: any): object;
disablePushUpdateListener?: boolean;
devModeSecret?: string;
roxy?: string;
selfManaged?: SelfManagedOptions;
disableSignatureVerification?: boolean;
}
export interface dynamicApi {
isEnabled(nameSpacedFlagName: string, defaultValue: boolean, context?: any): boolean;
value(nameSpacedFlagName: string, defaultValue: string, context?: any): string;
getNumber(nameSpacedFlagName: string, defaultValue: number, context?: any): string;
}
export interface overrides {
setOverride(nameSpacedFlagName: string, value: string): void;
clearOverride(nameSpacedFlagName: string): void;
clearAllOverrides(): void;
getOriginalValue(nameSpacedFlagName: string): string;
hasOverride(nameSpacedFlagName: string): boolean;
}
export declare enum RoxOverridesPosition {
TopLeft = "top left",
TopRight = "top right",
BottomLeft = "bottom left",
BottomRight = "bottom right"
}
export declare class _RoxClient {
dynamicApi: dynamicApi;
overrides: overrides;
private alreadyInitialized;
private _configurationFetchedHandlers;
private _rolloutData;
private _initialSetup;
private _confFetchedHandlers;
private _impressionHandlers;
register(namespace: string, roxContainer: RoxContainer): void;
register(roxContainer: RoxContainer): void;
setup(apiKey: string, options?: RoxSetupOptions): Promise<void>;
private _confFetchedHandler;
private _impressionsHandler;
_setup(apiKey: string, options?: RoxSetupOptions): Promise<void>;
setContext(globalContext: any): void;
setCustomNumberProperty(name: string, value: number | ((context?: any) => number)): void;
setCustomStringProperty(name: string, value: string | ((context?: any) => string)): void;
setCustomBooleanProperty(name: string, value: boolean | ((context?: any) => boolean)): void;
setCustomDateProperty(name: string, value: Date | ((context?: any) => Date)): void;
setCustomSemverProperty(name: string, value: string | ((context?: any) => string)): void;
fetch(): void;
showOverrides(position?: RoxOverridesPosition): void;
private _configurationFetchedHandler;
get rolloutData(): string;
get flags(): ReadonlyArray<Flag | RoxString | RoxNumber>;
}
export declare const Rox: _RoxClient;