sedk-mysql
Version:
Simple SQL builder and validator for MySQL
51 lines (50 loc) • 1.79 kB
TypeScript
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 {};