SuperAPI AI 工具集

migrate-better-result-3

编程与开发

查看项目

更新于 10-15 21:11

技能介绍

用途:把使用 better-result 2.x 的 TypeScript 项目升级到 3.0,按编译器报错逐项完成迁移。

主要能力与流程:

  1. 建立迁移面:读取仓库说明、包清单、锁文件、TS 配置与校验命令,确认源版本为 2.x,并用 rg 搜索 TaggedError、Result.serialize/deserialize/hydrate、matchError 等命中点,按 v3-api-diff.md 分类。
  2. 应用 TaggedError codemod:先列出安全改动,再写入并检查。 node <skill-dir>/scripts/migrate-tagged-error-v3.mjs . --list node <skill-dir>/scripts/migrate-tagged-error-v3.mjs . --write node <skill-dir>/scripts/migrate-tagged-error-v3.mjs . --check 该转换只改 v2 类继承写法,保留构造函数、属性与调用点;需手动把 TaggedErrorClass<Tag, Props> 改为 TaggedErrorClass<Tag>。
  3. 替换被移除的序列化辅助方法:按 result-codec-migration.md 为每个方法或边界建立 codec,处理新增的 ResultSerializationError、ResultDeserializationError 及同步/异步返回差异;可信内部边界可用 serializeUnsafe/deserializeUnsafe。
  4. 处理推断与可选 API 变化:tryRecover、matchError、matchErrorPartial、Result.partition、tryPromise 等签名变化,tagged error 在 Result.gen 中可迭代,需替换结构化深比较断言。
  5. 升级并验证:更新依赖与锁文件到指定 3.0 版本,先跑一个目标测试,再执行格式化、lint、类型检查、全量测试与构建,并复查搜索与 codemod。

适用场景:维护 better-result 2.x 代码库并计划升级到 3.0 的开发者。

限制:资料未提供具体版本号、平台支持、收费信息与效果数据;迁移细节以仓库内 references 文档和实际安装的 3.0 声明为准。