UNPKG

@sqb/connect

Version:

Multi-dialect database connection framework written with TypeScript

76 lines (75 loc) 2.08 kB
import { DataType } from '@sqb/builder'; import type { ColumnAutoGenerationStrategy, ColumnTransformFunction, DefaultValueGetter, EnumValue, FieldValue } from '../orm.type.js'; import type { EntityMetadata } from './entity-metadata.js'; import { FieldMetadata } from './field-metadata.js'; export type ColumnFieldOptions = Partial<Omit<ColumnFieldMetadata, 'entity' | 'name' | 'kind'>>; export interface ColumnFieldMetadata extends FieldMetadata { readonly kind: 'column'; /** Name of table field */ fieldName: string; /** JS type. String, Boolean, Person etc */ type?: Function; /** * Column data type */ dataType?: DataType; /** * Field comment */ comment?: string; /** * Column's default value */ default?: FieldValue | DefaultValueGetter; /** * Indicates if column data is an array */ isArray?: boolean; /** * Indicates enum values */ enum?: EnumValue; /** * Character or byte length of column */ length?: number; /** * The precision for a decimal field */ precision?: number; /** * The scale for a decimal field */ scale?: number; /** * Fields's collation. */ collation?: string; /** * Indicates auto generation strategy */ autoGenerated?: ColumnAutoGenerationStrategy; /** * Indicates if column value can be null */ notNull?: boolean; /** * Indicates if column value is used in update queries */ noUpdate?: boolean; /** * Indicates if column value is used in insert queries */ noInsert?: boolean; parse?: ColumnTransformFunction; serialize?: ColumnTransformFunction; } export declare namespace ColumnFieldMetadata { function create(entity: EntityMetadata, name: string, options?: ColumnFieldOptions): ColumnFieldMetadata; function assign(target: ColumnFieldMetadata, options: ColumnFieldOptions): void; function checkEnumValue(col: ColumnFieldMetadata, v: FieldValue): void; }