Адаптеры
Готовые загрузчики для популярных сервисов управления флагами, импортируются из 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.