silvie
Version:
Typescript Back-end Framework
142 lines (141 loc) • 4.35 kB
TypeScript
import IDatabaseDriver, { IInsertionResult, IModificationResult } from "../..";
import Table from "../../../migration/table";
import QueryBuilder from "../../../builders/query";
import { TBaseValue, TColumn } from "../../../builders/condition";
interface MySQLOptions {
host: string;
port: number;
database: string;
username: string;
password: string;
connectionLimit?: number;
dateStrings?: boolean;
multipleStatements?: boolean;
charset?: string;
}
export declare const MySQLTypes: {
TinyInteger: string;
SmallInteger: string;
MediumInteger: string;
Integer: string;
BigInteger: string;
Bit: string;
Boolean: string;
Decimal: string;
Float: string;
Double: string;
Year: string;
Date: string;
Time: string;
DateTime: string;
Timestamp: string;
Character: string;
String: string;
Binary: string;
TinyBlob: string;
Blob: string;
MediumBlob: string;
LongBlob: string;
TinyText: string;
Text: string;
MediumText: string;
LongText: string;
Enum: string;
Set: string;
Geometry: string;
Point: string;
LineString: string;
Polygon: string;
GeometryCollection: string;
MultiPoint: string;
MultiLineString: string;
MultiPolygon: string;
JSON: string;
};
export declare const ReverseMySQLTypes: {
tinyint: string;
smallint: string;
mediumint: string;
int: string;
bigint: string;
bit: string;
boolean: string;
decimal: string;
float: string;
double: string;
year: string;
date: string;
time: string;
datetime: string;
timestamp: string;
char: string;
varchar: string;
binary: string;
tinyblob: string;
blob: string;
mediumblob: string;
longblob: string;
tinytext: string;
text: string;
mediumtext: string;
longtext: string;
enum: string;
set: string;
geometry: string;
point: string;
linestring: string;
polygon: string;
geometrycollection: string;
multipoint: string;
multilinestring: string;
multipolygon: string;
json: string;
};
export default class MySQLDriver implements IDatabaseDriver {
private pool;
constructor(config: MySQLOptions, instanceCallback?: any);
private static resolveType;
private static tbl;
private static col;
private static compileColumn;
private static compileCreateTable;
createTable(table: Table): Promise<any>;
fetchTable(tableName: string): Promise<Table>;
updateTable(table: Table): Promise<any>;
truncateTable(tableName: string): Promise<any>;
dropTableIfExists(tableName: string): Promise<any>;
dropTable(tableName: string): Promise<any>;
private static compileConditions;
private static compileSelectFields;
private static compileJoin;
private static compileUnion;
private static compileOrder;
private static compileGroup;
private static compileWhere;
private static compileLimit;
private static compileSelect;
select(queryBuilder: QueryBuilder): Promise<any>;
count(queryBuilder: QueryBuilder): Promise<number>;
average(queryBuilder: QueryBuilder, column: TColumn): Promise<number>;
sum(queryBuilder: QueryBuilder, column: TColumn): Promise<number>;
min(queryBuilder: QueryBuilder, column: TColumn): Promise<any>;
max(queryBuilder: QueryBuilder, column: TColumn): Promise<any>;
exists(queryBuilder: QueryBuilder): Promise<boolean>;
private static compileInsert;
insert(queryBuilder: QueryBuilder): Promise<IInsertionResult>;
private static compileUpdateFields;
private static compileUpdate;
update(queryBuilder: QueryBuilder): Promise<IModificationResult>;
private static compileBulkUpdate;
bulkUpdate(queryBuilder: QueryBuilder): Promise<IModificationResult>;
private static compileDelete;
delete(queryBuilder: QueryBuilder): Promise<IModificationResult>;
private static compileSoftDelete;
softDelete(queryBuilder: QueryBuilder): Promise<IModificationResult>;
private static compileUndelete;
restore(queryBuilder: QueryBuilder): Promise<IModificationResult>;
setForeignKeyChecks(state: boolean): Promise<any>;
execute(query: string, params?: TBaseValue[]): Promise<any>;
closeConnection(): void;
}
export {};