@bestdoctor/its-on-client

Its On Client

Usage no npm install needed!

<script type="module">
  import bestdoctorItsOnClient from 'https://cdn.skypack.dev/@bestdoctor/its-on-client';
</script>

README

@bestdoctor/its-on-client

Клиент для ItsOn.

Установка

$ yarn add @bestdoctor/its-on-client

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

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

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

const flagsToLowerCase = (input: Flags): Flags =>
  Object.fromEntries(Object.entries(input).map(([flag, value]) => [flag.toLowerCase(), value]))

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

export const itsOnClient = new ItsOnClient({
  url: String(process.env.ITS_ON_URL),
  prefetchedFlags,
  refetchInterfal: 60 * 1000,
  defaultFlags: {
    'some-default-flag': true
  }
})

itsOnClient.enableRefetch()

itsOnClient.subscribeToRefetch((flags) => console.log('new flags', flags))

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

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

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