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.
53 lines (52 loc) • 4.1 kB
TypeScript
import type { QueryRunner } from "./QueryRunner";
import { ChainedQueryRunner } from "./ChainedQueryRunner";
import type { UnwrapPromiseTuple } from "../utils/PromiseProvider";
export type QueryType = 'selectOneRow' | 'selectManyRows' | 'selectOneColumnOneRow' | 'selectOneColumnManyRows' | 'insert' | 'insertReturningLastInsertedId' | 'insertReturningMultipleLastInsertedId' | 'insertReturningOneRow' | 'insertReturningManyRows' | 'insertReturningOneColumnOneRow' | 'insertReturningOneColumnManyRows' | 'update' | 'updateReturningOneRow' | 'updateReturningManyRows' | 'updateReturningOneColumnOneRow' | 'updateReturningOneColumnManyRows' | 'delete' | 'deleteReturningOneRow' | 'deleteReturningManyRows' | 'deleteReturningOneColumnOneRow' | 'deleteReturningOneColumnManyRows' | 'executeProcedure' | 'executeFunction' | 'beginTransaction' | 'commit' | 'rollback' | 'executeDatabaseSchemaModification' | 'executeConnectionConfiguration';
export interface QueryLogger {
onQuery?: (queryType: QueryType, query: string, params: any[], timestamps: {
startedAt: bigint;
}) => void;
onQueryResult?: (queryType: QueryType, query: string, params: any[], result: any, timestamps: {
startedAt: bigint;
endedAt: bigint;
}) => void;
onQueryError?: (queryType: QueryType, query: string, params: any[], error: any, timestamps: {
startedAt: bigint;
endedAt: bigint;
}) => void;
}
export declare class LoggingQueryRunner<T extends QueryRunner> extends ChainedQueryRunner<T> {
readonly logger: QueryLogger;
constructor(logger: QueryLogger, queryRunner: T);
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>;
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>;
executeBeginTransaction(): Promise<void>;
executeCommit(): Promise<void>;
executeRollback(): Promise<void>;
executeDatabaseSchemaModification(query: string, params?: any[]): Promise<void>;
executeConnectionConfiguration(query: string, params?: any[]): Promise<void>;
}