CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
table.d.cts87 linesDownload Raw Back to drizzle-orm
1import type { Column, GetColumnData } from "./column.cjs";2import { entityKind } from "./entity.cjs";3import type { OptionalKeyOnly, RequiredKeyOnly } from "./operations.cjs";4import type { SQLWrapper } from "./sql/sql.cjs";5import type { Simplify, Update } from "./utils.cjs";6export interface TableConfig<TColumn extends Column = Column<any>> {7    name: string;8    schema: string | undefined;9    columns: Record<string, TColumn>;10    dialect: string;11}12export type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<Update<T, TUpdate>>;13export interface Table<T extends TableConfig = TableConfig> extends SQLWrapper {14}15export declare class Table<T extends TableConfig = TableConfig> implements SQLWrapper {16    static readonly [entityKind]: string;17    readonly _: {18        readonly brand: 'Table';19        readonly config: T;20        readonly name: T['name'];21        readonly schema: T['schema'];22        readonly columns: T['columns'];23        readonly inferSelect: InferSelectModel<Table<T>>;24        readonly inferInsert: InferInsertModel<Table<T>>;25    };26    readonly $inferSelect: InferSelectModel<Table<T>>;27    readonly $inferInsert: InferInsertModel<Table<T>>;28    constructor(name: string, schema: string | undefined, baseName: string);29}30export declare function isTable(table: unknown): table is Table;31/**32 * Any table with a specified boundary.33 *34 * @example35    ```ts36    // Any table with a specific name37    type AnyUsersTable = AnyTable<{ name: 'users' }>;38    ```39 *40 * To describe any table with any config, simply use `Table` without any type arguments, like this:41 *42    ```ts43    function needsTable(table: Table) {44        ...45    }46    ```47 */48export type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;49export declare function getTableName<T extends Table>(table: T): T['_']['name'];50export declare function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}`;51export type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> = TDBColumNames extends true ? TColumn['_']['name'] : TName;52export type InferModelFromColumns<TColumns extends Record<string, Column>, TInferMode extends 'select' | 'insert' = 'select', TConfig extends {53    dbColumnNames: boolean;54    override?: boolean;55} = {56    dbColumnNames: false;57    override: false;58}> = Simplify<TInferMode extends 'insert' ? {59    [Key in keyof TColumns & string as RequiredKeyOnly<MapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>, TColumns[Key]>]: GetColumnData<TColumns[Key], 'query'>;60} & {61    [Key in keyof TColumns & string as OptionalKeyOnly<MapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>, TColumns[Key], TConfig['override']>]?: GetColumnData<TColumns[Key], 'query'> | undefined;62} : {63    [Key in keyof TColumns & string as MapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>]: GetColumnData<TColumns[Key], 'query'>;64}>;65/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`66 */67export type InferModel<TTable extends Table, TInferMode extends 'select' | 'insert' = 'select', TConfig extends {68    dbColumnNames: boolean;69} = {70    dbColumnNames: false;71}> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;72export type InferSelectModel<TTable extends Table, TConfig extends {73    dbColumnNames: boolean;74} = {75    dbColumnNames: false;76}> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;77export type InferInsertModel<TTable extends Table, TConfig extends {78    dbColumnNames: boolean;79    override?: boolean;80} = {81    dbColumnNames: false;82    override: false;83}> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;84export type InferEnum<T> = T extends {85    enumValues: readonly (infer U)[];86} ? U : never;87