翻转客户端节点
[尖叫声] 这个SDK已经贬值,不会继续前进. 请使用新的 翻转客户端 JS SDK 换句话说.
这个 flipt-client-node 库中包含用于翻转的 JavaScript/ TypeScript 源代码 客户端评价 客户端.
安装
npm install @flipt-io/flipt-client
使用量
在您的节点.js代码中, 您可以导入此客户端并以此方式使用 :
import { FliptEvaluationClient } from '@flipt-io/flipt-client';
// namespace is the first positional argument and is optional here and will have a value of "default" if not specified.
// options is the second positional argument and is also optional, the structure is:
// {
// "url": "http://localhost:8080",
// "updateInterval": 120,
// "authentication": {
// "clientToken": "secret"
// }
// }
//
// You can replace the url with where your upstream Flipt instance points to, the updateInterval for how long you are willing
// to wait for updated flag state, and the auth token if your Flipt instance requires it.
const fliptEvaluationClient = await FliptEvaluationClient.init('default', {
url: 'http://localhost:8080',
authentication: {
clientToken: 'secret'
}
});
const variant = fliptEvaluationClient.evaluateVariant('flag1', 'someentity', {
fizz: 'buzz'
});
console.log(variant);
初始化参数
这个 FliptEvaluationClient 构造器接受两个可选参数:
namespace: 获取旗下状态的命名空间 。 如果不提供,客户端将默认为default名称空间.options: 实例ClientOptions类型,用于支持客户端的若干选项。 其结构是:url: 上游翻转实例的 URL。 如果不提供,客户端将默认为http://localhost:8080。 。 。 .updateInterval: 获取新旗帜状态的间隔( 以秒计) 。 如果不提供,客户端将默认为120秒.authentication: 与上游翻转实例通信时使用的认证策略。 如果不提供,客户端将默认为没有认证. 见 认证 用于提供更多信息.reference编号: 参考文献 用于获取旗帜状态。 如果不提供参考文献,则不使用参考文献.fetcher执行 获取器 界面,用于请求旗帜状态时。 如果不提供, 则使用节点的默认获取器 。 Js's (英语)fetchAPI 密码 将被使用.errorStrategy: 获取旗帜状态时所用的错误策略 。 如果不提供,客户端将默认失败. 欲了解更多信息,请参见[错误策略] (#错误策略-策略)部分.
认证
这个 FliptEvaluationClient 支持下列认证战略:
错误策略
客户 errorStrategy 选项支持以下错误策略:
fail: 如果无法获取旗下状态, 客户端会出错 。 这是默认行为.fallback:客户端将保持最后已知的好状态,并在出错时使用该状态进行评价.
自定义获取器
这个 FliptEvaluationClient 支持自定义获取器。 这允许您从自定义源获取旗下状态, 或者覆盖 HTTP 头 .
取取器可以传递给 FliptEvaluationClient 初始化函数 .
const fliptEvaluationClient = await FliptEvaluationClient.init('default', {
url: 'http://localhost:8080',
authentication: {
clientToken
},
fetcher: customFetcher
});
获取器是一个需要可选的函数 IFetcherOpts 参数并返回 a Promise 决心 Response 对象.
计时器管理
这个 FliptEvaluationClient class 使用计时器在正常间隔取取出新的旗帜状态.
一定要打电话给 close 方法 FliptEvaluationClient 当您使用它停止计时器并清理资源时, 课程会结束 .
fliptEvaluationClient.close();
州管理层
这个 FliptEvaluationClient 类从 Flipt 实例中拉出旗帜状态 url b. 《公约》 options 在即时状态下的对象.
这个状态从Flipt实例中拉出 在即时和每个 update_interval 数秒后.
要手动更新旗下状态,你可以拨打 refresh 方法 FliptEvaluationClient 课.
[注] 这个
refresh方法返回布尔表示国旗状态是否改变.
// Refresh the flag state
let changed = await fliptEvaluationClient.refresh();
if (changed) {
// Do something
}
ETag 支持
默认取取器使用 Etag HTTP 标题 减少高层建筑并发送先前观察到的快照。 在旗下状态不经常更新且您想要减少服务器上负载的情景中,这很有用.
要禁用ETag 支持, 您可以执行 自定义获取器 不使用ETags.
发展
刚才
这个库使用WebAssem(WASM)层与Flipt服务器交互. 它用 Rust 写成,并使用 wasm-bindgen 财务报告和审定财务报表 wasm-pack 工具。 我们用JavaScript API将已建成的WASM层包裹起来,以便于在节点.js环境中使用.
先决条件
构建
npm run build
测试
npm install
npm test
捐款
欢迎捐款! 请随意打开一个问题或提交拉出请求.
许可证
本项目根据以下规定获得许可证: MIT 许可证。 。 。 .