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.
49 lines (48 loc) • 1.8 kB
TypeScript
import { PromiseBasedQueryRunner } from "./PromiseBasedQueryRunner";
import type { DatabaseType } from "./QueryRunner";
export interface Connection {
query(sql: string, params?: any[], cb?: QueryCb): Query;
beginTransaction(cb?: StatusCb): void;
commit(cb?: StatusCb): void;
rollback(cb?: StatusCb): void;
}
export interface Query {
on(name: string, cb: SubmittedEventCb): void;
on(name: string, cb: EventCb): void;
on(name: string, cb: EventColumnCb): void;
}
export interface QueryCb {
(err?: Error, rows?: any[], more?: boolean): void;
}
export interface StatusCb {
(err?: Error): void;
}
export interface EventCb {
(data: any): void;
}
export interface SubmittedEventCb {
(sql: string, params: any[]): void;
}
export interface EventColumnCb {
(colIndex: number, data: any, more: boolean): void;
}
/**
* @deprecated Use mssql instead with MssqlPoolQueryRunner or MssqlPoolQueryRunner
*/
export declare class MsNodeSqlV8QueryRunner<CONNECTION extends Connection> extends PromiseBasedQueryRunner {
readonly database: DatabaseType;
readonly connection: CONNECTION;
private transactionLevel;
constructor(connection: CONNECTION);
useDatabase(database: DatabaseType): void;
getNativeRunner(): CONNECTION;
getCurrentNativeTransaction(): undefined;
execute<RESULT>(fn: (connection: unknown, transaction?: unknown) => Promise<RESULT>): Promise<RESULT>;
protected executeQueryReturning(query: string, params: any[]): Promise<any[]>;
protected executeMutation(query: string, params: any[]): Promise<number>;
executeBeginTransaction(): Promise<void>;
executeCommit(): Promise<void>;
executeRollback(): Promise<void>;
isTransactionActive(): boolean;
addParam(params: any[], value: any): string;
}