import type { EnumColumn, ExtractNonVirtualColumnNames, JSONColumn, Schema as PonderSchema, Table as PonderTable, ReferenceColumn, ScalarColumn, } from "@/schema/common.js"; import type { InferColumnType } from "@/schema/infer.js"; import type { BuildColumns, ColumnBuilderBase } from "drizzle-orm"; import type { TableWithColumns } from "./select.js"; /** * Performs type transformation between Ponder and Drizzle column representation. * * @returns TableWithColumns */ export type DrizzleTable< tableName extends string, table extends PonderTable, schema extends PonderSchema, > = TableWithColumns<{ name: tableName; schema: undefined; columns: BuildColumns< tableName, { [columnName in ExtractNonVirtualColumnNames