@junkawasaki/kawadb-orm
Version:
TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments
69 lines (68 loc) • 1.52 kB
TypeScript
/**
* SQLクエリビルダー
*/
export interface QueryCondition {
field: string;
operator: 'eq' | 'ne' | 'gt' | 'lt' | 'gte' | 'lte' | 'like' | 'in' | 'between';
value: any;
}
export interface QueryOrder {
field: string;
direction: 'ASC' | 'DESC';
}
export declare class QueryBuilder {
private conditions;
private orders;
private limitValue?;
private offsetValue?;
private selectFields;
private tableName?;
/**
* テーブルを指定
*/
from(table: string): QueryBuilder;
/**
* 選択フィールドを指定
*/
select(...fields: string[]): QueryBuilder;
/**
* 条件を追加
*/
where(field: string, operator: QueryCondition['operator'], value: any): QueryBuilder;
/**
* 等価条件を追加
*/
whereEquals(field: string, value: any): QueryBuilder;
/**
* ソート条件を追加
*/
orderBy(field: string, direction?: 'ASC' | 'DESC'): QueryBuilder;
/**
* 取得数制限
*/
limit(count: number): QueryBuilder;
/**
* オフセット
*/
offset(count: number): QueryBuilder;
/**
* SQLクエリを構築
*/
toSQL(): string;
/**
* 条件を構築
*/
private buildCondition;
/**
* 値をエスケープ
*/
private escapeValue;
/**
* クエリビルダーをリセット
*/
reset(): QueryBuilder;
/**
* クエリビルダーを複製
*/
clone(): QueryBuilder;
}