lupdo
Version:
Database Abstraction Layer for Node js
63 lines (62 loc) • 3.04 kB
TypeScript
import { PdoAffectingData } from '../types/pdo-affecting-data';
import { PdoAttributes } from '../types/pdo-attributes';
import { PdoColumnData } from '../types/pdo-column-data';
import { PoolConnection, PoolI } from '../types/pdo-pool';
import { Params, ValidBindings, ValidBindingsSingle } from '../types/pdo-prepared-statement';
import { PdoRawConnectionI } from '../types/pdo-raw-connection';
import { PdoRowData } from '../types/pdo-raw-data';
export declare abstract class PdoRawConnection implements PdoRawConnectionI {
protected readonly pool: PoolI<PoolConnection>;
protected attributes: PdoAttributes;
protected connection: PoolConnection | null;
protected inTransaction: boolean;
protected statements: Map<string, any>;
constructor(pool: PoolI<PoolConnection>);
protected abstract doBeginTransaction(connection: PoolConnection): Promise<void>;
protected abstract doCommit(connection: PoolConnection): Promise<void>;
protected abstract doRollback(connection: PoolConnection): Promise<void>;
protected abstract doQuery(connection: PoolConnection, sql: string): Promise<[
PdoAffectingData,
PdoRowData[][] | PdoRowData[],
PdoColumnData[][] | PdoColumnData[]
]>;
protected abstract doExec(connection: PoolConnection, sql: string): Promise<PdoAffectingData>;
protected abstract getStatement(sql: string, connection: PoolConnection): Promise<any>;
protected abstract executeStatement(statement: any, bindings: Params, connection: PoolConnection): Promise<[
string,
PdoAffectingData,
PdoRowData[][] | PdoRowData[],
PdoColumnData[][] | PdoColumnData[]
]>;
protected abstract closeStatement(statement: any, connection: PoolConnection): Promise<void>;
protected abstract adaptBindValue(value: ValidBindingsSingle): ValidBindingsSingle;
beginTransaction(): Promise<void>;
commit(): Promise<void>;
rollback(): Promise<void>;
prepare(sql: string): Promise<any>;
bindValue(value: ValidBindings): ValidBindings;
execute(sql: string, params: Params | null): Promise<[
string,
PdoAffectingData,
PdoRowData[][] | PdoRowData[],
PdoColumnData[][] | PdoColumnData[]
]>;
exec(sql: string): Promise<number>;
query(sql: string): Promise<[
PdoAffectingData,
PdoRowData[][] | PdoRowData[],
PdoColumnData[][] | PdoColumnData[]
]>;
lastInsertId({ affectingResults, }: {
affectingResults: PdoAffectingData;
}): Promise<string | number | null>;
close(): Promise<void>;
getAttribute(attribute: string): string | number;
setAttribute(attribute: string, value: number | string): boolean;
setAttributes(attributes: PdoAttributes): void;
protected release(): Promise<void>;
protected generateStatement(sql: string): Promise<[string, any]>;
protected generateOrReuseConnection(): Promise<PoolConnection>;
protected generateConnection(): Promise<PoolConnection>;
}
export default PdoRawConnection;