import type { DrizzleDb } from "@/drizzle/db.js"; import type { DrizzleTable } from "@/drizzle/table.js"; import type { HandlerInterface, MiddlewareHandlerInterface, } from "@/hono/handler.js"; import type { ExtractTableNames, Schema } from "@/schema/common.js"; import type { Hono } from "hono"; export type ApiContext = { db: DrizzleDb; tables: { [tableName in ExtractTableNames]: DrizzleTable< tableName, // @ts-ignore schema[tableName]["table"], schema >; }; }; export type ApiRegistry = { get: HandlerInterface; post: HandlerInterface; use: MiddlewareHandlerInterface; hono: Hono<{ Variables: ApiContext }>; };