用途:当用户要求升级 Inngest、修复 v3/v4 迁移错误、迁移 realtime,或清理混用 SDK 模式的代码库时使用。主要参考 https://www.inngest.com/docs/reference/typescript/v4/migrations/v3-to-v4。
主要能力:先扫描仓库中的 Inngest 使用面(客户端、serve/connect 入口、旧触发器、EventSchemas、realtime、step.invoke 字符串 ID 等),把仓库归为未使用、纯 v3、v3/v4 混用或基本完成 v4,再按顺序改造。
必要用法与顺序:安装最新 v4(npm install inngest@latest)。本地开发用 INNGEST_DEV=1,生产用 INNGEST_SIGNING_KEY。把 signingKey、baseUrl 等选项从 serve() 移到 new Inngest();serveHost 改 serveOrigin;streaming: "force"/"allow" 改 streaming: true;logLevel 改用 new ConsoleLogger({ level });触发器移入 createFunction 第一个参数(triggers: [{ event: ... }] 或 cron);EventSchemas 改为 eventType()/staticSchema()(staticSchema 需用 type 而非 interface);step.invoke 不再接受字符串 ID,改用导入的函数引用或 referenceFunction({ appId, functionId });realtime 改用 inngest 内建 inngest/realtime 等,移除 @inngest/realtime 与 realtimeMiddleware;Connect 的 rewriteGatewayEndpoint 改 gatewayUrl。
限制:v4 默认 Cloud 模式,勿在源码硬编码 isDev: true。启用优化并行后 Promise.race 会等全部完成,需要首个完成时用 group.parallel()。无服务端运行验证时,应说明哪些静态检查通过、哪些运行时验证未做。不要在 step.run 内调用 step.realtime.publish。具体错误信息、v4 realtime 详细模式与部分完整步骤以官方文档为准,本文未展开。