| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, ColumnDataType, GeneratedColumnConfig, GeneratedIdentityConfig } from "./column-builder.cjs";
- import { entityKind } from "./entity.cjs";
- import type { DriverValueMapper, SQL, SQLWrapper } from "./sql/sql.cjs";
- import type { Table } from "./table.cjs";
- import type { Update } from "./utils.cjs";
- export interface ColumnBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> extends ColumnBuilderBaseConfig<TDataType, TColumnType> {
- tableName: string;
- notNull: boolean;
- hasDefault: boolean;
- isPrimaryKey: boolean;
- isAutoincrement: boolean;
- hasRuntimeDefault: boolean;
- }
- export type ColumnTypeConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TTypeConfig extends object> = T & {
- brand: 'Column';
- tableName: T['tableName'];
- name: T['name'];
- dataType: T['dataType'];
- columnType: T['columnType'];
- data: T['data'];
- driverParam: T['driverParam'];
- notNull: T['notNull'];
- hasDefault: T['hasDefault'];
- isPrimaryKey: T['isPrimaryKey'];
- isAutoincrement: T['isAutoincrement'];
- hasRuntimeDefault: T['hasRuntimeDefault'];
- enumValues: T['enumValues'];
- baseColumn: T extends {
- baseColumn: infer U;
- } ? U : unknown;
- generated: GeneratedColumnConfig<T['data']> | undefined;
- identity: undefined | 'always' | 'byDefault';
- } & TTypeConfig;
- export type ColumnRuntimeConfig<TData, TRuntimeConfig extends object> = ColumnBuilderRuntimeConfig<TData, TRuntimeConfig>;
- export 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 {
- }
- export 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 {
- readonly table: Table;
- static readonly [entityKind]: string;
- readonly _: ColumnTypeConfig<T, TTypeConfig>;
- readonly name: string;
- readonly keyAsName: boolean;
- readonly primary: boolean;
- readonly notNull: boolean;
- readonly default: T['data'] | SQL | undefined;
- readonly defaultFn: (() => T['data'] | SQL) | undefined;
- readonly onUpdateFn: (() => T['data'] | SQL) | undefined;
- readonly hasDefault: boolean;
- readonly isUnique: boolean;
- readonly uniqueName: string | undefined;
- readonly uniqueType: string | undefined;
- readonly dataType: T['dataType'];
- readonly columnType: T['columnType'];
- readonly enumValues: T['enumValues'];
- readonly generated: GeneratedColumnConfig<T['data']> | undefined;
- readonly generatedIdentity: GeneratedIdentityConfig | undefined;
- protected config: ColumnRuntimeConfig<T['data'], TRuntimeConfig>;
- constructor(table: Table, config: ColumnRuntimeConfig<T['data'], TRuntimeConfig>);
- abstract getSQLType(): string;
- mapFromDriverValue(value: unknown): unknown;
- mapToDriverValue(value: unknown): unknown;
- }
- export type UpdateColConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TUpdate extends Partial<ColumnBaseConfig<ColumnDataType, string>>> = Update<T, TUpdate>;
- export type AnyColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = Column<Required<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>>;
- export type GetColumnData<TColumn extends Column, TInferMode extends 'query' | 'raw' = 'query'> = TInferMode extends 'raw' ? TColumn['_']['data'] : TColumn['_']['notNull'] extends true ? TColumn['_']['data'] : TColumn['_']['data'] | null;
- export type InferColumnsDataTypes<TColumns extends Record<string, Column>> = {
- [Key in keyof TColumns]: GetColumnData<TColumns[Key], 'query'>;
- };
|