48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import { QueryResult } from "./MysqlConnectionManager";
|
|
import { Connection } from "mysql";
|
|
export default class Query {
|
|
static select(table: string, ...fields: string[]): Query;
|
|
static update(table: string, data: {
|
|
[key: string]: any;
|
|
}): Query;
|
|
static delete(table: string): Query;
|
|
private readonly type;
|
|
private readonly table;
|
|
private readonly fields;
|
|
private _where;
|
|
private _limit?;
|
|
private _offset?;
|
|
private _sortBy?;
|
|
private _sortDirection?;
|
|
private _foundRows;
|
|
private constructor();
|
|
where(field: string, value: string | Date | Query | any, operator?: WhereOperator, test?: WhereTest): Query;
|
|
whereNot(field: string, value: string | Date | Query | any, operator?: WhereOperator): Query;
|
|
orWhere(field: string, value: string | Date | Query | any): Query;
|
|
whereIn(field: string, value: any[]): Query;
|
|
limit(limit: number, offset?: number): Query;
|
|
first(): Query;
|
|
sortBy(field: string, direction?: 'ASC' | 'DESC'): Query;
|
|
withTotalRowCount(): Query;
|
|
toString(final?: boolean): string;
|
|
build(): string;
|
|
get variables(): any[];
|
|
isCacheable(): boolean;
|
|
execute(connection?: Connection): Promise<QueryResult>;
|
|
}
|
|
export declare enum QueryType {
|
|
SELECT = 0,
|
|
UPDATE = 1,
|
|
DELETE = 2
|
|
}
|
|
declare enum WhereOperator {
|
|
AND = "AND",
|
|
OR = "OR"
|
|
}
|
|
declare enum WhereTest {
|
|
EQUALS = "=",
|
|
DIFFERENT = "!=",
|
|
IN = " IN "
|
|
}
|
|
export {};
|