best-doctor / its-on-client-js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@bestdoctor/its-on-client

TypeScript клиент для ItsOn.

Установка

$ yarn add @bestdoctor/its-on-client

или

$ npm i -S @bestdoctor/its-on-client

Пример использование

Инициализация клиента

import { ItsOnClient, Flags } from '@bestdoctor/its-on-client'

const serializedFlags = process.env._ITS_ON_FLAGS_
const prefetchedFlags = serializedFlags ? JSON.parse(serializedFlags) as Flags : undefined

export const itsOnClient = new ItsOnClient({
  url: String(process.env.ITS_ON_URL),
  prefetchedFlags,
  debugFlags: {
    'some-debug-flag': true
  }
})

export const isActive = (flag: string) => itsOnClient.isActive(flag)

Инициализация клиента с ограничением флагов типизацией

import { ItsOnClient, Flags } from '@bestdoctor/its-on-client'

type ProjectFlags = 'some-flag' | 'another-flag' | 'some-awesome-flag'
or
enum ProjectFlags = {
  SOME_FLAG,
  ANOTHER_FLAG,
  NEW_ANOTHER_FLAG,
}

const serializedFlags = process.env._ITS_ON_FLAGS_
const prefetchedFlags = serializedFlags ? JSON.parse(serializedFlags) as Flags : undefined

export const itsOnClient = new ItsOnClient<ProjectFlags>({
  url: String(process.env.ITS_ON_URL),
  prefetchedFlags,
})

export const isActive = (flag: ProjectFlags) => itsOnClient.isActive(flag)

Загрузка флагов в головном компоненте

useEffect(() => {
  itsOnClient.fetchFlags().then(() => {
    setIsFlagsLoaded(true)
  })
}, [])

Вспомогательные функции

logFlag: (flag: string) => void

Вывод в консоль текущего значения флага

logAllFlags: () => void

Вывод в консоль всех флагов

logDebugFlags: () => void

Вывод в консоль всех отладочных флагов

About


Languages

Language:TypeScript 88.3%Language:JavaScript 11.7%