SuperAPI AI 工具集

eventa

编程与开发

查看项目

更新于 10-16 06:48

技能介绍

用途:@moeru/eventa 是一个传输感知(transport-aware)的事件库,用于以统一的事件原语构建 RPC 与流式数据流。核心思路是事件优先定义一次、处处复用;传输层可替换;RPC 由事件组合而成。

主要能力:支持类型化事件定义(defineEventa)、内存上下文(createContext)、一元 RPC(defineInvokeEventa、defineInvokeHandler、defineInvoke)、服务端流式 RPC(defineStreamInvoke、defineStreamInvokeHandler、toStreamHandler)、客户端流式输入、双向流式、AbortController 取消与错误传播,以及批量注册(defineInvokeHandlers、defineInvokes)。还提供方向性事件、matchBy 匹配表达式和 WebSocket 生命周期事件。

使用方式:从 @moeru/eventa 导入核心 API,事件定义放在共享模块供两端引用;适配器按 import { createContext } from '@moeru/eventa/adapters/<adapter-name>' 引入,再 createContext(transportInstance) 得到 context。可用适配器包括 Electron 主进程/渲染进程、Web Worker、Worker Threads、WebSocket 客户端与 H3 服务端、BroadcastChannel、EventTarget、EventEmitter。注意 defineInvokeEventa<Res, Req>() 中响应类型在前、请求类型在后。

适用场景:Electron 应用的主进程与渲染进程通信、跨 Worker 通信、WebSocket 客户端/服务端 RPC、需要进度推送或双向流式的任务。

限制:eventa 会原样转发 payload,需在边界自行校验数据;仅安装所需的 peer 依赖(electron、h3、web-worker 均为可选)。最新 API 参考可通过 context7 查询 @moeru/eventa 文档。