task-managment / src / helpers / types.ts
types.ts
Raw
import type {
    BuildQueryResult,
    DBQueryConfig,
    ExtractTablesWithRelations,
  } from "drizzle-orm";
  
  import type  * as schema  from "../database/schema"
  

type TSchema = ExtractTablesWithRelations<typeof schema>;
type QueryConfig<TableName extends keyof TSchema> = DBQueryConfig<"one" | "many", boolean, TSchema, TSchema[TableName]>;

export type InferQueryModel<
    TableName extends keyof TSchema,
    QBConfig extends QueryConfig<TableName> = {}
> = BuildQueryResult<TSchema, TSchema[TableName], QBConfig>;