CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
column.d.ts69 linesDownload Raw Back to drizzle-orm
1import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, ColumnDataType, GeneratedColumnConfig, GeneratedIdentityConfig } from "./column-builder.js";2import { entityKind } from "./entity.js";3import type { DriverValueMapper, SQL, SQLWrapper } from "./sql/sql.js";4import type { Table } from "./table.js";5import type { Update } from "./utils.js";6export interface ColumnBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> extends ColumnBuilderBaseConfig<TDataType, TColumnType> {7    tableName: string;8    notNull: boolean;9    hasDefault: boolean;10    isPrimaryKey: boolean;11    isAutoincrement: boolean;12    hasRuntimeDefault: boolean;13}14export type ColumnTypeConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TTypeConfig extends object> = T & {15    brand: 'Column';16    tableName: T['tableName'];17    name: T['name'];18    dataType: T['dataType'];19    columnType: T['columnType'];20    data: T['data'];21    driverParam: T['driverParam'];22    notNull: T['notNull'];23    hasDefault: T['hasDefault'];24    isPrimaryKey: T['isPrimaryKey'];25    isAutoincrement: T['isAutoincrement'];26    hasRuntimeDefault: T['hasRuntimeDefault'];27    enumValues: T['enumValues'];28    baseColumn: T extends {29        baseColumn: infer U;30    } ? U : unknown;31    generated: GeneratedColumnConfig<T['data']> | undefined;32    identity: undefined | 'always' | 'byDefault';33} & TTypeConfig;34export type ColumnRuntimeConfig<TData, TRuntimeConfig extends object> = ColumnBuilderRuntimeConfig<TData, TRuntimeConfig>;35export interface Column<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object, TTypeConfig extends object = object> extends DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {36}37export declare abstract class Column<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object, TTypeConfig extends object = object> implements DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {38    readonly table: Table;39    static readonly [entityKind]: string;40    readonly _: ColumnTypeConfig<T, TTypeConfig>;41    readonly name: string;42    readonly keyAsName: boolean;43    readonly primary: boolean;44    readonly notNull: boolean;45    readonly default: T['data'] | SQL | undefined;46    readonly defaultFn: (() => T['data'] | SQL) | undefined;47    readonly onUpdateFn: (() => T['data'] | SQL) | undefined;48    readonly hasDefault: boolean;49    readonly isUnique: boolean;50    readonly uniqueName: string | undefined;51    readonly uniqueType: string | undefined;52    readonly dataType: T['dataType'];53    readonly columnType: T['columnType'];54    readonly enumValues: T['enumValues'];55    readonly generated: GeneratedColumnConfig<T['data']> | undefined;56    readonly generatedIdentity: GeneratedIdentityConfig | undefined;57    protected config: ColumnRuntimeConfig<T['data'], TRuntimeConfig>;58    constructor(table: Table, config: ColumnRuntimeConfig<T['data'], TRuntimeConfig>);59    abstract getSQLType(): string;60    mapFromDriverValue(value: unknown): unknown;61    mapToDriverValue(value: unknown): unknown;62}63export type UpdateColConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TUpdate extends Partial<ColumnBaseConfig<ColumnDataType, string>>> = Update<T, TUpdate>;64export type AnyColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = Column<Required<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>>;65export type GetColumnData<TColumn extends Column, TInferMode extends 'query' | 'raw' = 'query'> = TInferMode extends 'raw' ? TColumn['_']['data'] : TColumn['_']['notNull'] extends true ? TColumn['_']['data'] : TColumn['_']['data'] | null;66export type InferColumnsDataTypes<TColumns extends Record<string, Column>> = {67    [Key in keyof TColumns]: GetColumnData<TColumns[Key], 'query'>;68};69