Parcourir la source

fix(sdk): unbreak typecheck on dev after v2 error widening (#28503)

Kit Langton il y a 3 mois
Parent
commit
ba803dd89a

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/dialog-workspace-create.tsx

@@ -108,7 +108,7 @@ export async function warpWorkspaceSession(input: {
     })
     .catch(() => undefined)
   if (!result?.data) {
-    if (result?.error?.name === "VcsApplyError") {
+    if (result?.error && "name" in result.error && result.error.name === "VcsApplyError") {
       await DialogAlert.show(
         input.dialog,
         "Unable to Warp Session",

+ 18 - 0
packages/sdk/js/script/build.ts

@@ -40,6 +40,24 @@ await createClient({
   ],
 })
 
+// Patch a @hey-api/openapi-ts codegen bug: SseFn incorrectly passes the
+// endpoint's TError into the second generic of ServerSentEventsResult, which
+// is the AsyncGenerator's TReturn slot. Iterator return values have nothing
+// to do with HTTP errors, and any consumer that calls `.return()` or returns
+// from a mock generator gets type-checked against the wrong shape. Drop the
+// arg so TReturn defaults to void.
+const sseTypesPath = "./src/v2/gen/client/types.gen.ts"
+const sseTypesFile = Bun.file(sseTypesPath)
+const sseTypesSource = await sseTypesFile.text()
+const sseTypesPatched = sseTypesSource.replace(
+  "=> Promise<ServerSentEventsResult<TData, TError>>",
+  "=> Promise<ServerSentEventsResult<TData>>",
+)
+if (sseTypesPatched === sseTypesSource) {
+  throw new Error(`SseFn patch did not apply; @hey-api/openapi-ts output may have changed (${sseTypesPath})`)
+}
+await Bun.write(sseTypesPath, sseTypesPatched)
+
 await $`bun prettier --write src/gen`
 await $`bun prettier --write src/v2`
 await $`rm -rf dist`

+ 1 - 1
packages/sdk/js/src/v2/gen/client/types.gen.ts

@@ -144,7 +144,7 @@ type SseFn = <
   TResponseStyle extends ResponseStyle = "fields",
 >(
   options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method">,
-) => Promise<ServerSentEventsResult<TData, TError>>
+) => Promise<ServerSentEventsResult<TData>>
 
 type RequestFn = <
   TData = unknown,