包边界
核心包没有内部运行依赖或 peer 依赖。按责任选择附加能力,再满足所选包的 peer 要求。“业务上可选”不意味着可以忽略已经声明的 peer。见 packages/fetcher/package.json:31。
声明的内部 peer
下图每条箭头表示起点包声明终点包为内部 peer 依赖。这是安装图,不是请求调用图。名称省略 @ahoo-wang/fetcher-* 前缀;fetcher 表示 @ahoo-wang/fetcher。OpenAPI 只提供类型,没有内部 peer。
flowchart LR
decorator --> fetcher
eventbus --> fetcher
eventstream --> fetcher
storage --> eventbus
cosec --> fetcher & eventbus & storage
openai --> fetcher & eventstream & decorator
react --> fetcher & eventbus & storage & cosec
openapi
classDef default fill:#2d333b,stroke:#6d5dfc,color:#e6edf3| 层 | 责任与成本 | 清单依据 |
|---|---|---|
| fetcher | HTTP 默认配置、拦截、结果提取;无内部依赖 | packages/fetcher/package.json:31 |
| decorator | 声明式服务;需要 metadata 配置及运行依赖 reflect-metadata | packages/decorator/package.json:54 |
| eventbus / eventstream | 事件分发 / SSE 处理;各自以核心包为 peer | packages/eventbus/package.json:52, packages/eventstream/package.json:53 |
| storage / cosec | 存储事件 / 认证协议;需要额外管理状态生命周期 | packages/storage/package.json:56, packages/cosec/package.json:54 |
| openai | 基于核心、装饰器与流的服务专用运行客户端 | packages/openai/package.json:59 |
| react | 请求与集成 Hook;React/ReactDOM peer,直接依赖 dequal 与 immer;提供 /core、/fetcher 子路径 | packages/react/package.json:74 |
| openapi | OpenAPI 3 类型词汇;既不发送请求,也不验证输入 | packages/openapi/src/index.ts:19 |
安装不等于执行
React 对 CoSec 的 peer 边不表示每个 Hook 都通过 CoSec 认证。导入 @ahoo-wang/fetcher-react/core 只加载 React,导入 @ahoo-wang/fetcher-react/fetcher 只加载 @ahoo-wang/fetcher,但声明的 peer 仍是安装前提,见 React 子路径入口。执行路径见请求生命周期。
OpenAPI 类型本身既不发送请求,也不验证输入。作为开发依赖列出的 React Compiler 工具链,并不会把仓库的编译管线强加给每个消费者。服务声明见声明式服务;选择消费者版本前先阅读运行环境。
迁往 Wow 仓库的包
与 Wow 耦合的包在 6.0 之前已离开本仓库。它们在这里的最后版本是 5.x 线(npm 5.1.x,分支 5.x);介绍它们的页面只适用于 5.x。
| 5.x 包 | 从 6.0 起 | 阅读 |
|---|---|---|
@ahoo-wang/fetcher-wow | Wow 仓库 typescript/ 中的 @ahoo-wang/wow-client | 5.x:Wow 指南、Wow 参考;6.0 起:wow.ahoo.me |
@ahoo-wang/fetcher-react 中的 Wow 查询 Hook | Wow 仓库中的 @ahoo-wang/wow-react | wow.ahoo.me |
@ahoo-wang/fetcher-generator | Wow 仓库中的 @ahoo-wang/wow-generator(CLI wow-generator;fetcher-generator 别名保留到 Wow v10) | 5.x:生成客户端、生成器参考;6.0 起:wow.ahoo.me |
@ahoo-wang/fetcher-viewer、数据监控 Hook | 已在 npm 弃用,冻结在 5.x;由 @ahoo-wang/wow-view-engine(Wow 9.2+)替代 | 5.x:Viewer 指南、Viewer 参考 |
Wow 的 npm 包自首个稳定版 Wow 9.2.0 起发布,自 Wow 9.2.1 起兼容 fetcher 6(peer 范围 ^5.1.5 || ^6.0.0)。把 5.x 应用迁到 6.0 时,先切换到 Wow 包(9.2.1 及以上),再升级 fetcher;@ahoo-wang/fetcher-viewer 的使用者在迁移到 @ahoo-wang/wow-view-engine 之前继续使用上述 5.1.x 版本。
