UNPKG

miniorm

Version:

A lightweight, minimal TypeScript ORM & query‑builder for MySQL, PostgreSQL and SQLite

30 lines (29 loc) 1.59 kB
import type { FindsType } from '../types/model.types'; import { type WhereObject } from '../types/query.types'; import { BaseEntityClass, QueryBuilder } from './query.builder'; export declare class Model<T = any> { private dbName; private tableName; private entity; private queryBuilder; constructor(dbName: string, table: string | (new () => T) | typeof BaseEntityClass<T>, opt?: any); find<K extends keyof T>(opt?: FindsType<T, K>): Promise<T[]>; findAll<K extends keyof T>(fields?: K[]): Promise<T[]>; findOne<K extends keyof T>(opt?: FindsType<T, K>): Promise<T>; first<K extends keyof T>(opt?: FindsType<T, K>): Promise<T>; create(data: Partial<T>): Promise<boolean>; update(data: Partial<T>, ...whereConditions: (string | WhereObject<Partial<T>>)[]): Promise<any>; delete(...whereConditions: (string | WhereObject<Partial<T>>)[]): Promise<any>; count<K extends keyof T>(field?: K): Promise<number>; max<K extends keyof T>(field: any): 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>; exists(...whereConditions: (string | WhereObject<Partial<T>>)[]): Promise<boolean>; pluck<K extends keyof T>(field: K): Promise<Array<T[K]>>; raw(query: string, values?: (string | number | boolean | null)[]): Promise<any>; query(): QueryBuilder<T>; disconnect(): Promise<void>; reconnect(): Promise<this>; debug(type?: 'now' | 'final', func?: (sql: string, data: any) => void): this; }