# @betorigami/game-ui-shared 中文文档

规范地址：https://npmcn.com/package/%40betorigami/game-ui-shared/

版本：5\.0\.0
npm 元数据更新时间：2026-11-04T20:12:09.358Z
中文译文更新时间：2026-11-07T23:50:31.632Z
软件包许可：UNLICENSED

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

原始 npm 页面：https://www.npmjs.com/package/%40betorigami/game-ui-shared
原文对照：https://npmcn.com/package/%40betorigami/game-ui-shared/?lang=original

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

- 包体积（解压后）：2.1 MB，244 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：lit ^3\.3\.0，big\.js ^7\.0\.1，@lit/context ^1\.1\.5
- 首次发布：2026-09-15T04:03:10.990Z
- 最新版本发布：2026-11-04T20:12:09.176Z
- 近 30 天下载量：4892（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：58（近 12 个月 58 个）

## 中文简介

每个 Origami 游戏UI 共享的 Lit 组件、控制器、翻译和有线类型

## 安装

```sh
npm install @betorigami/game-ui-shared
```

也可以使用：`pnpm add @betorigami/game-ui-shared`、`yarn add @betorigami/game-ui-shared`、`bun add @betorigami/game-ui-shared`

## README

# @betorigami/game-ui-shared (英语)

Lit 组件,控制器,翻译,有线类型和由每个Origami游戏UI共享的游戏模块注册. 已经搬出 `@betorigami/games`,它现在持有主机元素,游戏文件夹及其模块的注册.

## 消费

`lit`, (中文(简体) ), `@lit/context` 财务报告和审定财务报表 `big.js` 是同伴的依赖关系,以便每个副本都由主机捆绑。 导入包会记录每个共享自定义元素 .

```ts
import { GameComponent, RequiredContext, localeContext, getTranslation } from '@betorigami/game-ui-shared';
```

元素读取游戏上下文 `RequiredContext`,每片需要一张`localeContext`, (中文(简体) ), `sessionContext`, (中文(简体) ), `limitsContext`, (中文(简体) ), `servicesContext`, (中文(简体) ), `skinContext`, (中文(简体) ), `preferencesContext`, (中文(简体) ), `layoutContext`, (中文(简体) ), `walletContext`),全部由 `<origami-game-provider-wrapper>`在包装器外看片子 桌面和移动样式进入 `${desktopContainerQuery} { … }` 财务报告和审定财务报表 `${mobileContainerQuery} { … }` 块,在基础规则之后,它们会超越 `game-layout` 包装器提供的容器。 测试给元素切片 `provideTestContexts` 并用 `updateTestContexts`。 。 。 .

游戏通过一个 `GameUiModule`数字 :

```ts
import { registerGameUiModule, type GameUiModule } from '@betorigami/game-ui-shared';

registerGameUiModule(myGameUiModule);
```

共享组件仅通过此注册到达游戏: 提供者包装器制作 `renderGame()`,信息模式读取 `gameInfo` 财务报告和审定财务报表 `maxMultiplier`,注结果模式的用途 `extractOutcome`, (中文(简体) ), `renderOutcome`, (中文(简体) ), `renderBetDetails` 财务报告和审定财务报表 `verifierInputs`,并使用 `verifierQuery`。 。 。 .

游戏通过模块增强而不是编辑此套件来添加其线性类型:

```ts
declare module '@betorigami/game-ui-shared' {
  interface GameActionData {
    MY_GAME?: MyGameStartAction | EndAction;
  }
}
```

软件包不读取环境变量 。 一个主机需要不同的 证明公正的核查员电话 `setVerifierBaseUrl` 启动时使用该 URL; 不将内置默认值留在原位的主机 .

## API 客户端

`ProviderApi` 是提供者- api 的客户端, 用 [嘿,亚庇](https://heyapi.dev/) 从提供者- api 的 OpenAPI spec. 在呼叫者看到之前,每个答复都与Zod/mini的谱对照.

```ts
import { ProviderApi } from '@betorigami/game-ui-shared';

const client = ProviderApi.createProviderApiClient({ baseUrl, authToken });
const { data, error } = await ProviderApi.postGamesDicePlay({ client, body });
```

`createProviderApiClient` 添加认证符号, 新的 `X-Origami-Trace` 页:1 `REQUEST_TIMEOUT_MS` 每个请求都暂停. `data` 是在请求成功时设定的,而答复则与规格相匹配。 否则 `error` 保存错误的正文, 该正文 `resolveApiErrorCode` 变成一个 `ErrorCode`。不匹配光谱投出的反应。 在此包中,导入自 `src/shared/provider-api/provider-api-client` 换句话说.

要在提供者 - api 的端点改变后再生成它 :

1.  从后端雷波本地启动提供者- api `ENABLE_OPENAPI_DOCS=true`,其默认值 `.env.template`。它服务于 `http://localhost:3000/openapi.json`。 。 。 .
2.  运行 `pnpm run generate:provider-api` 本包中.
3.  在 `src/shared/provider-api/generated/`。 。 。 .

设置,包括被排除在外的设置 `/internal/*` 路径,在 `openapi-ts.config.ts`。不要用手编辑生成的文件.

## 接线

`@betorigami/game-calculations` 提供游戏中尚未取出的内容。 一个主机必须把它和这个软件包的同版本钉上,或者两个版本的引擎会最终被一个捆绑和enum身份破解.

## 常见问题

### @betorigami/game-ui-shared 是什么？

每个 Origami 游戏UI 共享的 Lit 组件、控制器、翻译和有线类型

### 如何安装 @betorigami/game-ui-shared？

在项目目录运行 npm install @betorigami/game-ui-shared，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：lit（^3\.3\.0）、big\.js（^7\.0\.1）、@lit/context（^1\.1\.5）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @betorigami/game-ui-shared 支持 TypeScript 吗？

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

### @betorigami/game-ui-shared 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @betorigami/game-ui-shared 可以商用吗？

@betorigami/game-ui-shared 使用 UNLICENSED 许可。作者声明为 UNLICENSED，即不授予公开使用许可（与公共领域的 Unlicense 不同）。使用前需获得作者授权。以上为概括，不构成法律意见，请以许可原文为准。

### @betorigami/game-ui-shared 的下载量有多少？

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

### @betorigami/game-ui-shared 还在维护吗？

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

