Skip to content

Адаптеры

Готовые загрузчики для популярных сервисов управления флагами, импортируются из vue-feature-toggles/adapters. Каждый возвращает асинхронную () => Record<string, FlagValue>, совместимую с опцией плагина loader.

ts
import { launchDarklyLoader, unleashLoader, flagsmithLoader } from 'vue-feature-toggles/adapters'

launchDarklyLoader()

ts
function launchDarklyLoader(options: {
  clientSideId: string
  user: { key: string; [k: string]: unknown }
  baseUrl?: string // по умолчанию: 'https://app.launchdarkly.com'
}): () => Promise<Record<string, FlagValue>>
ts
app.use(FeatureToggles, {
  loader: launchDarklyLoader({
    clientSideId: 'your-client-side-id',
    user: { key: userId },
  }),
})

unleashLoader()

ts
function unleashLoader(options: {
  url: string
  appName: string
  clientKey: string
  userId?: string // опционально — добавляет заголовок UNLEASH-INSTANCEID
}): () => Promise<Record<string, FlagValue>>
ts
app.use(FeatureToggles, {
  loader: unleashLoader({
    url: 'https://unleash.example.com/api',
    appName: 'my-app',
    clientKey: 'default:development.abc123',
    userId,
  }),
})

Отправляет имя приложения через заголовок UNLEASH-APPNAME.

flagsmithLoader()

ts
function flagsmithLoader(options: {
  apiKey: string
  apiUrl?: string // по умолчанию: 'https://edge.api.flagsmith.com/api/v1'
  identity?: string // опционально — включает оценку по пользователю
}): () => Promise<Record<string, FlagValue>>
ts
app.use(FeatureToggles, {
  loader: flagsmithLoader({
    apiKey: 'ser.your-api-key',
    identity: userId,
  }),
})

Отправляет API-ключ через заголовок X-Environment-Key.