feat(httpapi): bridge tui routes (#24548)

This commit is contained in:
Kit Langton
2026-04-27 01:17:48 +00:00
committed by GitHub
parent 60ebd074ac
commit 418a1cf5f3
6 changed files with 415 additions and 20 deletions
@@ -12,15 +12,23 @@ import { errors } from "../../error"
import { lazy } from "@/util/lazy"
import { runRequest } from "./trace"
const TuiRequest = z.object({
export const TuiRequest = z.object({
path: z.string(),
body: z.any(),
})
type TuiRequest = z.infer<typeof TuiRequest>
export type TuiRequest = z.infer<typeof TuiRequest>
const request = new AsyncQueue<TuiRequest>()
const response = new AsyncQueue<any>()
const response = new AsyncQueue<unknown>()
export function nextTuiRequest() {
return request.next()
}
export function submitTuiResponse(body: unknown) {
response.push(body)
}
export async function callTui(ctx: Context) {
const body = await ctx.req.json()
@@ -50,7 +58,7 @@ const TuiControlRoutes = new Hono()
},
}),
async (c) => {
const req = await request.next()
const req = await nextTuiRequest()
return c.json(req)
},
)
@@ -74,7 +82,7 @@ const TuiControlRoutes = new Hono()
validator("json", z.any()),
async (c) => {
const body = c.req.valid("json")
response.push(body)
submitTuiResponse(body)
return c.json(true)
},
)