silvie
Version:
Typescript Back-end Framework
83 lines (82 loc) • 2.98 kB
TypeScript
import Column from "./column";
export interface IRelation {
foreignKey: string;
primaryKey: string;
table: string;
}
export interface IConstraintCollection {
indices: Column[];
fullTextIndices: Column[];
spatialIndices: Column[];
primaries: Column[];
uniques: Column[];
}
export default class Table {
name: string;
columns: Column[];
relations: IRelation[];
constructor(name: string);
private createColumn;
getConstraints(): IConstraintCollection;
id(): void;
tinyIncrements(name: string): Column;
smallIncrements(name: string): Column;
mediumIncrements(name: string): Column;
increments(name: string): Column;
bigIncrements(name: string): Column;
tinyInteger(name: string): Column;
unsignedTinyInteger(name: string): Column;
smallInteger(name: string): Column;
unsignedSmallInteger(name: string): Column;
mediumInteger(name: string): Column;
unsignedMediumInteger(name: string): Column;
integer(name: string): Column;
unsignedInteger(name: string): Column;
bigInteger(name: string): Column;
unsignedBigInteger(name: string): Column;
bit(name: string): Column;
boolean(name: string): Column;
decimal(name: string, precision: number, scale: number): Column;
unsignedDecimal(name: string, precision: number, scale: number): Column;
float(name: string): Column;
double(name: string): Column;
year(name: string): Column;
date(name: string): Column;
time(name: string): Column;
datetime(name: string): Column;
timestamp(name: string): Column;
timestamps(): void;
character(name: string, length?: number): Column;
string(name: string, length?: number): Column;
binary(name: string, length?: number): Column;
tinyBlob(name: string): Column;
blob(name: string): Column;
mediumBlob(name: string): Column;
longBlob(name: string): Column;
tinyText(name: string): Column;
text(name: string): Column;
mediumText(name: string): Column;
longText(name: string): Column;
enum(name: string, values: string[]): Column;
set(name: string, values: string[]): Column;
geometry(name: string): Column;
point(name: string): Column;
lineString(name: string): Column;
polygon(name: string): Column;
geometryCollection(name: string): Column;
multiPoint(name: string): Column;
multiLineString(name: string): Column;
multiPolygon(name: string): Column;
softDelete(): Column;
json(name: string): Column;
ipAddress(name: string): Column;
macAddress(name: string): Column;
uuid(name: string): Column;
foreign(foreignKey: string, primaryKey: string, table: string): void;
private modifyColumns;
primary(...columnNames: string[]): void;
unique(...columnNames: string[]): void;
index(...columnNames: string[]): void;
fullTextIndex(...columnNames: string[]): void;
spatialIndex(...columnNames: string[]): void;
}