miniorm
Version:
A lightweight, minimal TypeScript ORM & query‑builder for MySQL, PostgreSQL and SQLite
53 lines (52 loc) • 2.03 kB
TypeScript
import { type WhereObject } from '../types/query.types';
export declare abstract class BaseEntityClass<T = any> {
static $table: string;
}
export declare class QueryBuilder<T = any> {
private sql;
private extra;
private dbName;
private dbType;
private tableName;
private entity;
private data;
private is_typeorm;
private where_values;
private isDebug;
private debugFunc;
constructor(dbName: string, table: string | (new () => T) | typeof BaseEntityClass<T>, opt?: any);
select<K extends keyof T>(fields?: K[]): this;
private fields;
order<K extends keyof T>(orderby: K[], type?: 'ASC' | 'DESC'): this;
limit(limit: number): this;
offset(offset: number): this;
first(): Promise<T>;
end(): Promise<T>;
private selectMethods;
count<K extends keyof T>(fields?: K): Promise<number>;
max<K extends keyof T>(field: K): Promise<number>;
min<K extends keyof T>(field: K): Promise<number>;
avg<K extends keyof T>(field: K): Promise<number>;
sum<K extends keyof T>(field: K): Promise<number>;
update(set_values: Partial<T> | Partial<T>): this;
private set;
delete(): this;
where(...where_values: (string | WhereObject<Partial<T> | Partial<T>>)[]): this;
insert(into_values: Partial<T>): Promise<boolean>;
private values;
isIgnoreValue(value: any): boolean;
isIgnoreField(fields: any[]): boolean;
debug(type?: 'now' | 'final', func?: (sql: string, data: any) => void): this;
exists(): Promise<boolean>;
clone<C = T>(opt?: {
db?: string;
table?: string | (new () => C) | typeof BaseEntityClass<C>;
}): QueryBuilder<C>;
raw(query: string, values?: (string | number | boolean | null)[]): Promise<any>;
toSQL(): [string, any[]];
pluck<K extends keyof T>(field: K): Promise<Array<any>>;
between<K extends keyof T>(field: K, start: number, end: number): Promise<any>;
disconnect(): Promise<void>;
reconnect(): Promise<this>;
run<R = any>(): Promise<R>;
}