UNPKG

sedk-mysql

Version:
51 lines (50 loc) 1.79 kB
import { Artifacts } from '../steps/BaseStep'; import { INameGiver } from './INameGiver'; import { BuilderData } from '../builder'; import { BooleanColumn } from './BooleanColumn'; import { Column } from './Column'; import { DateColumn } from './DateColumn'; import { NumberColumn } from './NumberColumn'; import { Schema } from './Schema'; import { TextColumn } from './TextColumn'; import { IStatementGiver } from '../models'; import { TableAsterisk } from '../TableAsterisk'; type ColumnsObj = { [columnName: string]: BooleanColumn | NumberColumn | TextColumn | DateColumn; }; type TableObj<C extends ColumnsObj> = { name: string; columns: C; }; export declare class Table<C extends ColumnsObj = ColumnsObj> implements INameGiver, IStatementGiver { private readonly data; private mSchema?; private readonly mColumns; private readonly columnArray; constructor(data: TableObj<C>); set schema(schema: Schema); get schema(): Schema; get name(): string; get fqName(): string; as(alias: string): AliasedTable<typeof this>; get columns(): C; /** Alias to get columns() */ get c(): C; /** * Returns array of table's columns, this is different from * columns() property which returns an object with column name as key */ getColumns(): readonly Column[]; get ASTERISK(): TableAsterisk; isColumnExist(column: Column): boolean; getStmt(data: BuilderData, artifacts: Artifacts): string; } export declare class AliasedTable<T extends Table> implements INameGiver, IStatementGiver { readonly table: T; readonly alias: string; constructor(table: T, alias: string); getStmt(data: BuilderData, artifacts: Artifacts): string; get name(): string; get fqName(): string; } export {};