nukak
Version:
flexible and efficient ORM, with declarative JSON syntax and smart type-safety
29 lines (28 loc) • 1.58 kB
TypeScript
import type { AbstractSqlDialect } from '../dialect/index.js';
import type { Query, QueryConflictPaths, QueryOptions, QuerySearch, QueryUpdateResult, SqlQuerier, Type } from '../type/index.js';
import { AbstractQuerier } from './abstractQuerier.js';
export declare abstract class AbstractSqlQuerier extends AbstractQuerier implements SqlQuerier {
readonly dialect: AbstractSqlDialect;
private hasPendingTransaction?;
constructor(dialect: AbstractSqlDialect);
/**
* internal read query.
*/
protected abstract internalAll<T>(query: string, values?: unknown[]): Promise<T[]>;
/**
* internal insert/update/delete/ddl query.
*/
protected abstract internalRun(query: string, values?: unknown[]): Promise<QueryUpdateResult>;
all<T>(query: string, values?: unknown[]): Promise<T[]>;
run(query: string, values?: unknown[]): Promise<QueryUpdateResult>;
findMany<E>(entity: Type<E>, q: Query<E>): Promise<E[]>;
count<E>(entity: Type<E>, q?: QuerySearch<E>): Promise<number>;
insertMany<E>(entity: Type<E>, payload: E[]): Promise<E[import("../type/entity.js").IdKey<E>][]>;
updateMany<E>(entity: Type<E>, q: QuerySearch<E>, payload: E): Promise<number>;
upsertOne<E>(entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E): Promise<QueryUpdateResult>;
deleteMany<E>(entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): Promise<number>;
get hasOpenTransaction(): boolean;
beginTransaction(): Promise<void>;
commitTransaction(): Promise<void>;
rollbackTransaction(): Promise<void>;
}