契约、类型与转换器
生成 TypeScript 客户端并验证兼容旧版本适配的契约变更。
需要 WU CLI 1.2.0,应用 API 需要 WU Framework 4.0.0。请检查 wu --version 和项目依赖。
wu contracts types counter-v1.json --out client.d.ts
wu contracts types counter-v1.json counter-v2.json --out clients.d.ts
wu contracts check counter-v1.json counter-v2.json --json
wu contracts check counter-v1.json counter-v2.json --translators translators.mjs --json
JSON 文件使用 defineService 接受的描述格式。CLI 从项目加载 wu-framework/services,而不是全局副本。每个文件必须是有效 JSON,且不超过 1 MiB。types 将 TypeScript 声明写入标准输出,或使用 --out 写入独立 .d.ts 文件。
多个契约生成 ServiceClientV1、ServiceClientV2 等名称;若主版本相同,则使用完整版本,例如 ServiceClient_1_2_0。check 恰好接受旧、新两个契约,不接受 --out。types 不接受 --json 或 --translators。
转换器兼容性
--translators 模块以 default 或 translators 导出数组。每项包含 definition 和 methods,与 provideService 接受的格式相同。检查将已覆盖变更移入 translated,未覆盖变更保留在 changes。实现与测试转换器见版本化服务。
| 退出码 | 含义 |
|---|---|
0 |
契约兼容或类型生成成功。 |
1 |
存在未覆盖的不兼容变更。 |
2 |
文件、描述、依赖或选项无效。 |
兼容结果验证的是契约结构,不证明转换函数对所有值都正确。更换提供方前,应在运行时测试输入输出示例、验证失败和权限。