ts-sql-query
Version:
Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.
52 lines (51 loc) • 3.83 kB
TypeScript
import { UnwrapPromiseTuple } from "../utils/PromiseProvider";
import type { QueryRunner, DatabaseType } from "./QueryRunner";
export declare abstract class AbstractQueryRunner implements QueryRunner {
abstract readonly database: DatabaseType;
abstract useDatabase(database: DatabaseType): void;
abstract getNativeRunner(): unknown;
abstract getCurrentNativeTransaction(): unknown;
abstract execute<RESULT>(fn: (connection: unknown, transaction?: unknown) => Promise<RESULT>): Promise<RESULT>;
executeSelectOneRow(query: string, params?: any[]): Promise<any>;
executeSelectManyRows(query: string, params?: any[]): Promise<any[]>;
executeSelectOneColumnOneRow(query: string, params?: any[]): Promise<any>;
executeSelectOneColumnManyRows(query: string, params?: any[]): Promise<any[]>;
executeInsert(query: string, params?: any[]): Promise<number>;
executeInsertReturningLastInsertedId(query: string, params?: any[]): Promise<any>;
executeInsertReturningMultipleLastInsertedId(query: string, params?: any[]): Promise<any>;
executeInsertReturningOneRow(query: string, params?: any[]): Promise<any>;
executeInsertReturningManyRows(query: string, params?: any[]): Promise<any[]>;
executeInsertReturningOneColumnOneRow(query: string, params?: any[]): Promise<any>;
executeInsertReturningOneColumnManyRows(query: string, params?: any[]): Promise<any[]>;
executeUpdate(query: string, params?: any[]): Promise<number>;
executeUpdateReturningOneRow(query: string, params?: any[]): Promise<any>;
executeUpdateReturningManyRows(query: string, params?: any[]): Promise<any[]>;
executeUpdateReturningOneColumnOneRow(query: string, params?: any[]): Promise<any>;
executeUpdateReturningOneColumnManyRows(query: string, params?: any[]): Promise<any[]>;
executeDelete(query: string, params?: any[]): Promise<number>;
executeDeleteReturningOneRow(query: string, params?: any[]): Promise<any>;
executeDeleteReturningManyRows(query: string, params?: any[]): Promise<any[]>;
executeDeleteReturningOneColumnOneRow(query: string, params?: any[]): Promise<any>;
executeDeleteReturningOneColumnManyRows(query: string, params?: any[]): Promise<any[]>;
executeProcedure(query: string, params?: any[]): Promise<void>;
executeFunction(query: string, params?: any[]): Promise<any>;
executeDatabaseSchemaModification(query: string, params?: any[]): Promise<void>;
executeConnectionConfiguration(query: string, params?: any[]): Promise<void>;
protected abstract executeQueryReturning(query: string, params: any[]): Promise<any[]>;
protected abstract executeMutation(query: string, params: any[]): Promise<number>;
protected containsInsertReturningClause(query: string, params: any[]): boolean;
protected executeMutationReturning(query: string, params: any[]): Promise<any[]>;
abstract executeBeginTransaction(): Promise<void>;
abstract executeCommit(): Promise<void>;
abstract executeRollback(): Promise<void>;
abstract isTransactionActive(): boolean;
abstract addParam(params: any[], value: any): string;
addOutParam(_params: any[], _name: string): string;
abstract createResolvedPromise<RESULT>(result: RESULT): Promise<RESULT>;
abstract executeInTransaction<P extends Promise<any>[]>(fn: () => [...P], outermostQueryRunner: QueryRunner): Promise<UnwrapPromiseTuple<P>>;
abstract executeInTransaction<T>(fn: () => Promise<T>, outermostQueryRunner: QueryRunner): Promise<T>;
abstract executeInTransaction(fn: () => Promise<any>[] | Promise<any>, outermostQueryRunner: QueryRunner): Promise<any>;
abstract executeCombined<R1, R2>(fn1: () => Promise<R1>, fn2: () => Promise<R2>): Promise<[R1, R2]>;
isMocked(): boolean;
lowLevelTransactionManagementSupported(): boolean;
}