@ flaggly/ sdk (英语)
客户端 SDK 为 旗帜 - 在Cloudflare Workers上自办的地标旗服务.
安装
pnpm i @flaggly/sdk
设置
定义您的旗帜图案并创建客户端 :
import { Flaggly } from '@flaggly/sdk';
type Flags = {
'dark-mode': { type: 'boolean' };
'banner': { type: 'payload'; result: { text: string; color: string } };
'checkout': { type: 'variant'; result: string };
};
const flaggly = new Flaggly<Flags>({
url: 'https://flaggly.example.workers.dev',
apiKey: 'YOUR_USER_JWT',
});
国旗在创建时立即进行评估. 过 lazy: true 等待直到你打电话 identify() 或者说 fetchFlags()。 。 。 .
使用量
// Type-safe getters
const isDarkMode = flaggly.getBooleanFlag('dark-mode');
const banner = flaggly.getPayloadFlag('banner');
const checkout = flaggly.getVariantFlag('checkout');
识别用户
打电话 identify() 当用户登录时。 重新评价所有旗子的用户背景 :
await flaggly.identify(userId, { email: user.email, tier: user.tier });
反应
import { Flaggly, FlagValue } from '@flaggly/sdk';
import { useSyncExternalStore } from 'react';
const flaggly = new Flaggly<Flags>({
url: 'https://flaggly.example.workers.dev',
apiKey: 'YOUR_USER_JWT',
lazy: true,
bootstrap: {
'dark-mode': false,
},
});
export const useFlags = () =>
useSyncExternalStore(flaggly.store.subscribe, flaggly.store.get, flaggly.store.get);
export const useFlag = <K extends keyof Flags>(key: K): FlagValue<Flags[K]> => {
const data = useFlags();
return data?.[key].result as FlagValue<Flags[K]>;
};
Cloudflare工人(服务约束)
const flaggly = new Flaggly<Flags>({
url: 'https://flaggly.example.workers.dev',
apiKey: 'YOUR_USER_JWT',
lazy: true,
workerFetch: (url, init) => env.FLAGGLY_SERVICE.fetch(url, init),
});
选项
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
url | string | - 说吧 | 您旗下工人的基础 URL |
apiKey | string | - 说吧 | 公共用户 JWT |
app | string | "default" | 应用标识符 |
env | string | "production" | 环境标识符 |
lazy | boolean | false | 在手动调用前推迟国旗评价 |
bootstrap | Partial<FlagValues> | - 说吧 | 第一次获取前的默认值 |
workerFetch | typeof fetch | fetch | 自定义获取服务绑定 |
getBackupId | () => string | - 说吧 | 自定义匿名用户ID生成器 |
customStorage | CustomStorage | localStorage | 备份ID存储 |
getCurrentRoute | () => string | null | window.location.href | 非浏览器嵌入器的路由提供者 |
getRandomId | () => string | crypto.randomUUID | 非浏览器管道的 UUID 生成器 |
文档
页:1 (原始内容存档于2017-06-21). glagly.dev。 。 。 .
许可证
麻省理工学院