# @codesandbox/pitcher-client 中文文档

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

版本：1\.1\.7
npm 元数据更新时间：2025-05-12T06:52:45.517Z
中文译文更新时间：2026-11-10T07:51:07.306Z
软件包许可：GPL-3\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40codesandbox/pitcher-client
原文对照：https://npmcn.com/package/%40codesandbox/pitcher-client/?lang=original

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

- 包体积（解压后）：1.6 MB，592 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：14 个
- 首次发布：2024-12-12T13:31:40.190Z
- 最新版本发布：2025-05-12T06:52:45.352Z
- 近 30 天下载量：22436（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 0 个）

## 中文简介

## 如何运作

## 安装

```sh
npm install @codesandbox/pitcher-client
```

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

## README

# 投手客户

## 如何运作

`pitcher-client` 被曝光为类 `PitcherClient` 它负责保持与单一的VM的连接,暴露一个必须的API发送请求,收听通知等,并且还保持内部状态以进行更简单的消费.

有三个级别 `PitcherClient`。主类在瞬间 `CONNECTED` 状态,并将仅移动到 `CONNECTING`, (中文(简体) ), `DISCONNECTED` 财务报告和审定财务报表 `CONNECTED` 根据过去的状况 `connection`编辑 `Connection` 类为初始 VM 请求和websocket 连接持有连接状态,而 `WebsocketClient` 持有websocket连接的连接状态.

所有信件均由 `PitcherClientMessageHandler` 财务报告和审定财务报表 `PitcherMssageHandler` (也许应该是一个单一类别),其中处理信息的序列化、去序列化、排队和匹配.

## 如何写测试

所有测试 `pitcher-client` 可以写成完整的整合测试,其中唯一的嘲弄是皮彻的答复.

```ts
describe("Something", () => {
  test("should do something", async () => {
    const { client, pitcher, dispose } = await initPitcherClientMock({
      // This object represents all the responses you want Pitcher to give,
      // typed and ready to roll
      "file/open": ({ params: { id } }) => ({
        method: "file/open",
        status: PitcherResponseStatus.RESOLVED,
        result: {
          clients: {},
          content: "",
          document: { clients: {}, revision: 0 },
          id,
          isBinary: false,
          savedHash: "cc",
        },
      }),
    });

    // Use pitcher client as normal
    client.fs.getFile("someId");

    // Send a notification form Pitcher to the client
    await pitcher.sendNotification({
      method: "file/documentOperation",
      params: {
        id: file.id,
        revision: 1,
        operation: incoming.toJSON(),
        reason: ot.OperationReason.USER,
      },
    });

    // Not strictly required, but nice to clean up tests
    dispose();
  });
});
```

**记着!** 若为 `pitcher-client` 向您发送一个请求, 您没有处理器, 它会丢出一个错误, 并告诉你缺少哪个处理器 .

### 怎么会这样?

-   这个 `initPitcherClientMock` 返回时 `initPitcherClient` 以嘲弄的方式向它请求
-   这个 `jest-websocket-mock` 库用于为每次使用设置被模拟的 WebSocket 服务器 `initPitcherClientMock`

## 常见问题

### @codesandbox/pitcher-client 是什么？

如何运作

### 如何安装 @codesandbox/pitcher-client？

在项目目录运行 npm install @codesandbox/pitcher-client，或使用 pnpm add / yarn add / bun add。

### @codesandbox/pitcher-client 支持 TypeScript 吗？

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

### @codesandbox/pitcher-client 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @codesandbox/pitcher-client 可以商用吗？

@codesandbox/pitcher-client 使用 GPL-3\.0 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @codesandbox/pitcher-client 的下载量有多少？

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

### @codesandbox/pitcher-client 还在维护吗？

最新版本 1\.1\.7 发布于 2025/05/12（1\.5 年前）；至今共发布 8 个版本，其中过去 12 个月发布了 0 个；首次发布于 2024/12/12。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

