@livingroot/yandex-metrica-ab-react
Version:
Fork of yandex-metrica-ab-react by firnis
36 lines (35 loc) • 1 kB
TypeScript
export interface ExpjsAnswer {
flags: Record<string, string[] | undefined>;
i?: string;
experiments?: string;
testids?: number[];
}
export interface Config {
nonce?: string;
enableVisual: boolean;
enableHTML: boolean;
enableJS: boolean;
enableRedir: boolean;
enableWatch: boolean;
storeRedirParam: boolean | 'localstorage' | 'cookie' | 'get';
metrikaTimeout: number;
}
export interface Answer extends ExpjsAnswer {
ready: true;
}
export interface NoAnswer {
flags: Record<string, undefined>;
i?: undefined;
experiments?: undefined;
testids?: undefined;
ready: false;
}
export interface AnswerNamed<T> extends Omit<Answer, 'flags'> {
flags: Partial<Record<keyof T, string[]>>;
ready: true;
}
export interface NoAnswerNamed<T> extends Omit<NoAnswer, 'flags'> {
flags: Partial<Record<keyof T, undefined>>;
}
export type ReturnType = Answer | NoAnswer;
export type NamedReturnType<T> = AnswerNamed<T> | NoAnswerNamed<T>;