# @flipt-io/flipt-client 中文文档

规范地址：https://npmcn.com/package/%40flipt-io/flipt-client/

版本：0\.14\.0
npm 元数据更新时间：2025-03-30T13:26:19.681Z
中文译文更新时间：2026-11-14T23:31:55.570Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40flipt-io/flipt-client
原文对照：https://npmcn.com/package/%40flipt-io/flipt-client/?lang=original
项目主页：https://github.com/flipt-io/flipt-client-sdks/tree/main#readme
源码仓库：https://github.com/flipt-io/flipt-client-sdks#main

弃用说明：This package has been superseded by @flipt-io/flipt-client-js\. Please update your dependencies\.

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：298 kB，15 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2023-12-26T16:01:58.071Z
- 最新版本发布：2025-03-30T13:26:19.457Z
- 近 30 天下载量：2779（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：26（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @flipt-io/flipt-client
```

也可以使用：`pnpm add @flipt-io/flipt-client`、`yarn add @flipt-io/flipt-client`、`bun add @flipt-io/flipt-client`

## README

# 翻转客户端节点

> \[尖叫声\] 这个SDK已经贬值,不会继续前进. 请使用新的 [翻转客户端 JS SDK](https://github.com/flipt-io/flipt-client-sdks/tree/main/flipt-client-js) 换句话说.

[![flipt-client-node](https://img.shields.io/npm/v/@flipt-io/flipt-client?label=%40flipt-io%2Fflipt-client)](https://www.npmjs.com/package/@flipt-io/flipt-client) ![deprecated](https://img.shields.io/badge/status-deprecated-red)

这个 `flipt-client-node` 库中包含用于翻转的 JavaScript/ TypeScript 源代码 [客户端评价](https://www.flipt.io/docs/integration/client) 客户端.

## 安装

```bash
npm install @flipt-io/flipt-client
```

## 使用量

在您的节点.js代码中, 您可以导入此客户端并以此方式使用 :

```typescript
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`: 与上游翻转实例通信时使用的认证策略。 如果不提供,客户端将默认为没有认证. 见 [认证](https://npmcn.com/package/%40flipt-io/flipt-client/#readme-authentication) 用于提供更多信息.
    -   `reference`编号: [参考文献](https://docs.flipt.io/guides/user/using-references) 用于获取旗帜状态。 如果不提供参考文献,则不使用参考文献.
    -   `fetcher`执行 [获取器](https://github.com/flipt-io/flipt-client-sdks/blob/bc1c19b553bf265f7f49ed4901d59f4202aff135/flipt-client-node/src/models.ts#L1-L16) 界面,用于请求旗帜状态时。 如果不提供, 则使用节点的默认获取器 。 Js's (英语) [`fetch` API 密码](https://nodejs.org/en/learn/getting-started/fetch) 将被使用.
    -   `errorStrategy`: 获取旗帜状态时所用的错误策略 。 如果不提供,客户端将默认失败. 欲了解更多信息,请参见\[错误策略\] (#错误策略-策略)部分.

### 认证

这个 `FliptEvaluationClient` 支持下列认证战略:

-   无认证( 默认)
-   [客户端托肯认证](https://docs.flipt.io/authentication/using-tokens)
-   [JWT 认证](https://docs.flipt.io/authentication/using-jwts)

### 错误策略

客户 `errorStrategy` 选项支持以下错误策略:

-   `fail`: 如果无法获取旗下状态, 客户端会出错 。 这是默认行为.
-   `fallback`:客户端将保持最后已知的好状态,并在出错时使用该状态进行评价.

### 自定义获取器

这个 `FliptEvaluationClient` 支持自定义获取器。 这允许您从自定义源获取旗下状态, 或者覆盖 HTTP 头 .

取取器可以传递给 `FliptEvaluationClient` 初始化函数 .

```typescript
const fliptEvaluationClient = await FliptEvaluationClient.init('default', {
  url: 'http://localhost:8080',
  authentication: {
    clientToken
  },
  fetcher: customFetcher
});
```

获取器是一个需要可选的函数 [`IFetcherOpts`](https://github.com/flipt-io/flipt-client-sdks/blob/bc1c19b553bf265f7f49ed4901d59f4202aff135/flipt-client-node/src/models.ts#L1-L16) 参数并返回 a `Promise` 决心 `Response` 对象.

## 计时器管理

这个 `FliptEvaluationClient` class 使用计时器在正常间隔取取出新的旗帜状态.

一定要打电话给 `close` 方法 `FliptEvaluationClient` 当您使用它停止计时器并清理资源时, 课程会结束 .

```typescript
fliptEvaluationClient.close();
```

## 州管理层

这个 `FliptEvaluationClient` 类从 Flipt 实例中拉出旗帜状态 `url` b. 《公约》 `options` 在即时状态下的对象.

这个状态从Flipt实例中拉出 在即时和每个 `update_interval` 数秒后.

要手动更新旗下状态,你可以拨打 `refresh` 方法 `FliptEvaluationClient` 课.

> \[注\] 这个 `refresh` 方法返回布尔表示国旗状态是否改变.

```typescript
// Refresh the flag state
let changed = await fliptEvaluationClient.refresh();

if (changed) {
  // Do something
}
```

## ETag 支持

默认取取器使用 [Etag HTTP 标题](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) 减少高层建筑并发送先前观察到的快照。 在旗下状态不经常更新且您想要减少服务器上负载的情景中,这很有用.

要禁用ETag 支持, 您可以执行 [自定义获取器](https://npmcn.com/package/%40flipt-io/flipt-client/#readme-custom-fetcher) 不使用ETags.

## 发展

### 刚才

这个库使用WebAssem(WASM)层与Flipt服务器交互. 它用 Rust 写成,并使用 `wasm-bindgen` 财务报告和审定财务报表 `wasm-pack` 工具。 我们用JavaScript API将已建成的WASM层包裹起来,以便于在节点.js环境中使用.

### 先决条件

-   [转动引擎 转动引擎](https://npmcn.com/package/%40flipt-io/flipt-engine-wasm-js)

### 构建

```bash
npm run build
```

### 测试

```bash
npm install
npm test
```

## 捐款

欢迎捐款! 请随意打开一个问题或提交拉出请求.

## 许可证

本项目根据以下规定获得许可证: [MIT 许可证](https://npmcn.com/package/%40flipt-io/flipt-client/LICENSE)。 。 。 .

## 常见问题

### @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。作者已将其标记为弃用，新项目建议寻找替代方案。

