diff --git a/packages/db/src/types.ts b/packages/db/src/types.ts index 7d1ae78131..1185e28ef5 100644 --- a/packages/db/src/types.ts +++ b/packages/db/src/types.ts @@ -180,3 +180,26 @@ export type AstroId, 'tableName'>> = SQ >; export type MaybePromise = T | Promise; + +export type Table< + T extends DBFields, + TTable extends Pick, 'tableName'>, +> = { + [K in keyof T]: T[K]['type'] extends 'boolean' + ? AstroBoolean< + TTable & { + name: K; + hasDefault: T[K]['default']; + notNull: !T[K]['optional']; + } + > + : T[K]['type'] extends 'number' + ? AstroNumber + : T[K]['type'] extends 'text' + ? AstroText + : T[K]['type'] extends 'date' + ? AstroDate + : T[K]['type'] extends 'json' + ? AstroJson + : never; +};