UNPKG

yandex-metrica-ab-react

Version:

React библиотека для работы с AB экспериментами Метрики

129 lines (128 loc) 3.19 kB
export interface ExpjsAnswer { flags: Record<string, string[] | undefined>; i?: string; experiments?: string; testids?: number[]; } export interface Config { /** * nonce will be added to style and script tags (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) */ nonce?: string; /** * Enables Visual Editor * * Default: true */ enableVisual: boolean; /** * Enables HTML tab in Visual Editor * Ignored if enableVisual = false * * Default: true */ enableHTML: boolean; /** * Enables JS tab in Visual Editor * Ignored if enableVisual = false * * Default: false */ enableJS: boolean; /** * Enables redirect experiments * * Default: true */ enableRedir: boolean; /** * Enables watch mode * Runs the MutationObserver and reapplies the changes when the element changes. * Applied only for experiments with Visual Editor * Ignored if enableVisual = false * Visual Editor changes won't be applied after rerender if enableWatch = false * * Default: true */ enableWatch: boolean; /** * Save experiment marker before redirect * * Default: true */ storeRedirParam: boolean | 'localstorage' | 'cookie' | 'get'; /** * How long wait for Yandex Metrica counter to initialize before make a redirect. * Applied only to experiments with redirect * Number in milliseconds * * Default: 100 */ metrikaTimeout: number; /** * Enables Adv experiments * * Default: true */ enableAdv: boolean; /** * Enables sending Yandex Metrica cookies to uaas.yandex.ru * * Default: true */ enableSendYmUid: boolean; /** * Enables setting Yandex Metrica cookies * * Default: false */ enableSetYmUid: boolean; /** * Defines the domain for setting cookies * * Default: undefined */ cookieDomain?: string | undefined; /** * Enables saving the Referer in the sessionStorage upon redirect so that it can be sent to Yandex Metrica * * Default: false */ storeReferer: boolean; /** * Enables removal of the ab_redir parameter from the page URL upon successful redirect * * Default: false */ removeAbRedirParam: boolean; } export interface Answer extends ExpjsAnswer { /** * Is flags ready to use */ ready: true; } export interface NoAnswer { flags: Record<string, undefined>; i?: undefined; experiments?: undefined; testids?: undefined; /** * Is flags ready to use */ ready: false; } export interface AnswerNamed<T> extends Omit<Answer, 'flags'> { /** * Key-Value storage of all flags */ flags: Partial<Record<keyof T, string[]>>; } export interface NoAnswerNamed<T> extends Omit<NoAnswer, 'flags'> { /** * Empty storage of flags */ flags: Partial<Record<keyof T, undefined>>; } export type ReturnType = Answer | NoAnswer; export type NamedReturnType<T> = AnswerNamed<T> | NoAnswerNamed<T>;