UNPKG

@junkawasaki/kawadb-orm

Version:

TypeScript ORM for KawaDB with KSQL support - works in Web and Electron environments

69 lines (68 loc) 1.52 kB
/** * 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; }