@flipt-io/flipt-client

中文文档
0.14.0发布于 2025/03/30MITTypeScriptCommonJS零依赖近 30 天下载 2779

已删除: 此软件包已被 @ flipt- io/ flipt- client- js 所取代 。 请更新您的依赖关系 .

此软件包已被标记为弃用

This package has been superseded by @flipt-io/flipt-client-js. Please update your dependencies.

中文使用文档
文档目录16 节
  1. 安装
  2. 使用量
  3. 初始化参数
  4. 认证
  5. 错误策略
  6. 自定义获取器
  7. 计时器管理
  8. 州管理层
  9. ETag 支持
  10. 发展
  11. 刚才
  12. 先决条件
  13. 构建
  14. 测试
  15. 捐款
  16. 许可证

翻转客户端节点

[尖叫声] 这个SDK已经贬值,不会继续前进. 请使用新的 翻转客户端 JS SDK 换句话说.

flipt-client-node deprecated

这个 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 (英语) fetch API 密码 将被使用.
    • 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 许可证。 。 。 .

版本与发布记录

@flipt-io/flipt-client 共发布 26 个版本,首次发布于 2023/12/27;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.14.0latest2025/03/301.6 年前
0.13.02025/03/051.7 年前
0.12.02024/12/121.9 年前
0.11.02024/10/172 年前
0.10.12024/09/212 年前
0.10.02024/09/152 年前

关于 @flipt-io/flipt-client 的常见问题

@flipt-io/flipt-client 是什么?

已删除: 此软件包已被 @ flipt- io/ flipt- client- js 所取代 。 请更新您的依赖关系 .注意:该包已被作者标记为弃用——This package has been superseded by @flipt-io/flipt-client-js. Please update your dependencies.

如何安装 @flipt-io/flipt-client?

在项目目录运行 npm install @flipt-io/flipt-client,或使用 pnpm add / yarn add / bun add。

@flipt-io/flipt-client 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@flipt-io/flipt-client 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@flipt-io/flipt-client 可以商用吗?

@flipt-io/flipt-client 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@flipt-io/flipt-client 的下载量有多少?

根据 npm 官方下载统计,@flipt-io/flipt-client 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,779 次,日均约 93 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@flipt-io/flipt-client 还在维护吗?

最新版本 0.14.0 发布于 2025/03/30(1.6 年前);至今共发布 26 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/12/27。作者已将其标记为弃用,新项目建议寻找替代方案。