import type { Column, SQLWrapper, SelectedFields, Table } from "drizzle-orm"; import type { InsertBuilder } from "./insert.js"; import type { SelectBuilder } from "./select.js"; export type DrizzleDb = { insert( table: TTable, ): InsertBuilder; select(): SelectBuilder; select>( fields: TSelection, ): SelectBuilder; select( fields?: SelectedFields, ): SelectBuilder | undefined, "async", void>; /** * Execute a raw read-only SQL query.. * * @example * import { ponder } from "@/generated"; * import { sql } from "@ponder/core"; * * ponder.get("/", async (c) => { * const result = await c.db.execute(sql`SELECT * from "Accounts"`); * return c.json(result); * }); * * @see https://orm.drizzle.team/docs/sql */ execute: >( query: SQLWrapper, ) => Promise; };