@xyo-network/event-kit-testing

中文文档
2.3.4发布于 2026/11/03LGPL-3.0-onlyTypeScriptES Module

事件套件提供程序端口的共享一致性控制

中文使用文档
文档目录3 节
  1. 为什么要共用套房
  2. 声明的能力,而不是假定的
  3. WakeQueue 条款

@xyo-network/event-kit-testing

事件套件提供程序端口的共享一致性控制。

const report = await runWakeQueueConformance('sqlite', {
  create: () => createSqliteWakeQueue({ path }),
  reopen: () => createSqliteWakeQueue({ path }),
})

为什么要共用套房

只有在每个实现都同意契约的情况下,端口才可交换。这个 套件是什么? WakeQueue 提供者可互换,而不仅仅是 类似:添加后端意味着实现接口并运行它。

它抛出第一个被违反的子句,其中包含子句名称和它所看到的内容,并且 否则返回完整的报告,因此一个测试显示运行了哪些子句。

声明的能力,而不是假定的

reopen 是可选的,是提供者声明它是持久的方式。它的实例 必须共享独立对象子句的实际持久权限。这个主题 省略了它的耐久性子句报告为 跳过从不沉默 已通过——进程内队列不能满足它不能满足的子句。 这使得报告诚实地描述了供应商证明了什么。

WakeQueue 条款

条款财产
empty-claim空队列产生 undefined 而不是阻塞
append-visible附加的东西会完好无损地回来吗
lease-withholds持有的租约对其他消费者是不可见的
release-returns释放使条目再次可声明
ack-removes包装可以永久地去除它
arrival-order条目按到达顺序提供
single-claimer只有一个人赢得了有争议的参赛作品
recover-inflight被放弃的租约是可收回的
lease-fencing旧的ack/release不能改变当前的继承者
completion-fencing同样成功的完井重复是惰性的;相反的操作失败
survives-restart条目和ack比实例存活时间更长(仅持久)
recovers-after-restart进程死亡时持有的租约是可回收的(仅限持久)。
cross-writer-claimer独立对象产生一个获胜声明(仅声明能力)

恢复使用 recoverInflight({ consumersStopped: true }) 毕竟是消费者 停止。测试还会使故意捕获的租期闭包失效以进行演示 击剑;该断言不授权操作符恢复活动所有者。 共享套件由特定于后端的fault、SIGKILL、custody、 身份冲突和HTTP允许测试。一份通过的报告并不能证明 主机丢失、恢复或多主机资格。

版本与发布记录

@xyo-network/event-kit-testing 共发布 22 个版本,首次发布于 2026/08/21;过去 12 个月发布了 22 个版本。

版本发布日期距今
2.3.4latest2026/11/03今天
2.3.32026/11/03今天
2.3.22026/10/313 天前
2.3.12026/10/303 天前
2.3.02026/10/295 天前
2.2.32026/10/286 天前

关于 @xyo-network/event-kit-testing 的常见问题

@xyo-network/event-kit-testing 是什么?

事件套件提供程序端口的共享一致性控制

如何安装 @xyo-network/event-kit-testing?

在项目目录运行 npm install @xyo-network/event-kit-testing,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(^4.6)、@ariestools/sdk(^9.0)、@xyo-network/sdk(^8.1)、@opentelemetry/api(^1.10)、@xyo-network/sdk-protocol(^8.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@xyo-network/event-kit-testing 支持 TypeScript 吗?

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

@xyo-network/event-kit-testing 支持 ESM 还是 CommonJS?

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

@xyo-network/event-kit-testing 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=26。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@xyo-network/event-kit-testing 可以商用吗?

@xyo-network/event-kit-testing 使用 LGPL-3.0-only 许可。弱 Copyleft:作为库被调用时通常不要求开源你自己的代码,但修改库本身需以 LGPL 开源;前端打包合并后的适用边界存在不同理解。以上为概括,不构成法律意见,请以许可原文为准。

@xyo-network/event-kit-testing 还在维护吗?

最新版本 2.3.4 发布于 2026/11/03(今天);至今共发布 22 个版本,其中过去 12 个月发布了 22 个;首次发布于 2026/08/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。