lupdo
Version:
Database Abstraction Layer for Node js
51 lines (50 loc) • 2.65 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'node:events';
import { PdoAttributes } from '../types/pdo-attributes';
import { PdoConnectionI } from '../types/pdo-connection';
import { DriverInstances, PdoDriverI } from '../types/pdo-driver';
import { InternalPdoPoolOptions, PdoPoolOptions, PoolConnection, PoolI, RawPoolConnection } from '../types/pdo-pool';
import { PdoPreparedStatementI } from '../types/pdo-prepared-statement';
import { PdoRawConnectionI } from '../types/pdo-raw-connection';
import { PdoStatementI } from '../types/pdo-statement';
import { PdoTransactionI } from '../types/pdo-transaction';
export declare abstract class PdoDriver extends EventEmitter implements PdoDriverI {
protected version: string | undefined;
protected instances: DriverInstances;
protected defaultAttributes: PdoAttributes;
protected driverAttributes: PdoAttributes;
private userAttributes;
private processedAttributes;
private userPoolOptions;
private processedPoolOptions;
private poolEvents;
protected hasDebug: boolean;
private initializedPool;
protected disconnected: boolean;
protected forceReconnect: boolean;
constructor(driver: string, userPoolOptions: PdoPoolOptions, userAttributes: PdoAttributes);
reconnect(): void;
disconnect(): Promise<void>;
protected get poolOptions(): InternalPdoPoolOptions<PoolConnection>;
protected get attributes(): PdoAttributes;
protected get pool(): PoolI<PoolConnection>;
beginTransaction(): Promise<PdoTransactionI>;
prepare(sql: string): Promise<PdoPreparedStatementI>;
exec(sql: string): Promise<number>;
query(sql: string): Promise<PdoStatementI>;
getAttribute(attribute: string): string | number;
setAttribute(attribute: string, value: number | string): boolean;
getVersion(): Promise<string>;
getRawPoolConnection(): Promise<RawPoolConnection>;
getRawDriverConnection<T>(): Promise<T>;
protected assignPoolEvents(): void;
protected abstract createConnection(unsecure?: boolean): Promise<PoolConnection>;
protected abstract getRawConnection(): PdoRawConnectionI;
protected abstract closeConnection(connection: PoolConnection): Promise<void>;
protected abstract destroyConnection(connection: PoolConnection): Promise<void>;
protected abstract createPdoConnection(connection: PoolConnection): PdoConnectionI;
protected abstract validateRawConnection(connection: PoolConnection): boolean;
protected abstract getVersionFromConnection(connection: PoolConnection): Promise<string>;
protected throwIfDisconnected(): void;
}
export default PdoDriver;