UNPKG

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.

59 lines (58 loc) 4 kB
import { UnwrapPromiseTuple } from "../utils/PromiseProvider"; export interface QueryRunner { readonly database: DatabaseType; useDatabase(database: DatabaseType): void; getNativeRunner(): unknown; getCurrentNativeTransaction(): unknown; 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>; executeBeginTransaction(): Promise<void>; executeCommit(): Promise<void>; executeRollback(): Promise<void>; executeInTransaction<P extends Promise<any>[]>(fn: () => [...P], outermostQueryRunner: QueryRunner): Promise<UnwrapPromiseTuple<P>>; executeInTransaction<T>(fn: () => Promise<T>, outermostQueryRunner: QueryRunner): Promise<T>; executeInTransaction(fn: () => Promise<any>[] | Promise<any>, outermostQueryRunner: QueryRunner): Promise<any>; isTransactionActive(): boolean; executeDatabaseSchemaModification(query: string, params?: any[]): Promise<void>; executeConnectionConfiguration(query: string, params?: any[]): Promise<void>; addParam(params: any[], value: any): string; addOutParam(params: any[], name: string): string; createResolvedPromise<RESULT>(result: RESULT): Promise<RESULT>; executeCombined<R1, R2>(fn1: () => Promise<R1>, fn2: () => Promise<R2>): Promise<[R1, R2]>; isMocked(): boolean; lowLevelTransactionManagementSupported(): boolean; } export type DatabaseType = 'mariaDB' | 'mySql' | 'noopDB' | 'oracle' | 'postgreSql' | 'sqlite' | 'sqlServer'; export declare function getQueryExecutionName(query: string, params: any[]): string | undefined; export declare function getQueryExecutionMetadata(query: string, params: any[]): unknown; export declare function getQueryExecutionStack(query: string, params: any[]): string | undefined; export interface FunctionExecutingQueryInformation { functionName?: string; fileName?: string; lineNumber?: string; positionNumber?: string; } export declare function getFunctionExecutingQuery(query: string, params: any[]): FunctionExecutingQueryInformation | undefined; export declare function isSelectPageCountQuery(query: string, params: any[]): boolean;