132 lines
3.3 KiB
TypeScript
132 lines
3.3 KiB
TypeScript
|
import { EventEmitter } from 'events';
|
||
|
|
||
|
import {
|
||
|
RowDataPacket,
|
||
|
OkPacket,
|
||
|
ResultSetHeader,
|
||
|
FieldPacket,
|
||
|
QueryOptions,
|
||
|
ConnectionOptions,
|
||
|
PoolOptions,
|
||
|
PoolClusterOptions,
|
||
|
Pool as CorePool,
|
||
|
} from './index.js';
|
||
|
import { ExecutableBase as ExecutableBaseClass } from './typings/mysql/lib/protocol/sequences/promise/ExecutableBase.js';
|
||
|
import { QueryableBase as QueryableBaseClass } from './typings/mysql/lib/protocol/sequences/promise/QueryableBase.js';
|
||
|
|
||
|
export * from './index.js';
|
||
|
|
||
|
// Expose class interfaces
|
||
|
declare class QueryableAndExecutableBase extends QueryableBaseClass(
|
||
|
ExecutableBaseClass(EventEmitter),
|
||
|
) {}
|
||
|
|
||
|
export interface PreparedStatementInfo {
|
||
|
close(): Promise<void>;
|
||
|
execute(
|
||
|
parameters: any | any[] | { [param: string]: any },
|
||
|
): Promise<
|
||
|
[
|
||
|
(
|
||
|
| RowDataPacket[][]
|
||
|
| RowDataPacket[]
|
||
|
| OkPacket
|
||
|
| OkPacket[]
|
||
|
| ResultSetHeader
|
||
|
),
|
||
|
FieldPacket[],
|
||
|
]
|
||
|
>;
|
||
|
}
|
||
|
|
||
|
export interface Connection extends QueryableAndExecutableBase {
|
||
|
config: ConnectionOptions;
|
||
|
|
||
|
threadId: number;
|
||
|
|
||
|
connect(): Promise<void>;
|
||
|
|
||
|
ping(): Promise<void>;
|
||
|
|
||
|
beginTransaction(): Promise<void>;
|
||
|
|
||
|
commit(): Promise<void>;
|
||
|
|
||
|
rollback(): Promise<void>;
|
||
|
|
||
|
changeUser(options: ConnectionOptions): Promise<void>;
|
||
|
|
||
|
prepare(options: string | QueryOptions): Promise<PreparedStatementInfo>;
|
||
|
|
||
|
unprepare(sql: string | QueryOptions): void;
|
||
|
|
||
|
end(options?: any): Promise<void>;
|
||
|
|
||
|
destroy(): void;
|
||
|
|
||
|
pause(): void;
|
||
|
|
||
|
resume(): void;
|
||
|
|
||
|
escape(value: any): string;
|
||
|
|
||
|
escapeId(value: string): string;
|
||
|
escapeId(values: string[]): string;
|
||
|
|
||
|
format(sql: string, values?: any | any[] | { [param: string]: any }): string;
|
||
|
}
|
||
|
|
||
|
export interface PoolConnection extends Connection {
|
||
|
release(): void;
|
||
|
connection: Connection;
|
||
|
}
|
||
|
|
||
|
export interface Pool extends Connection {
|
||
|
getConnection(): Promise<PoolConnection>;
|
||
|
|
||
|
releaseConnection(connection: PoolConnection): void;
|
||
|
|
||
|
on(event: 'connection', listener: (connection: PoolConnection) => any): this;
|
||
|
on(event: 'acquire', listener: (connection: PoolConnection) => any): this;
|
||
|
on(event: 'release', listener: (connection: PoolConnection) => any): this;
|
||
|
on(event: 'enqueue', listener: () => any): this;
|
||
|
|
||
|
end(): Promise<void>;
|
||
|
|
||
|
pool: CorePool;
|
||
|
}
|
||
|
|
||
|
export interface PoolNamespace extends QueryableAndExecutableBase {
|
||
|
getConnection(): Promise<PoolConnection>;
|
||
|
}
|
||
|
|
||
|
export interface PoolCluster extends EventEmitter {
|
||
|
config: PoolClusterOptions;
|
||
|
|
||
|
add(config: PoolOptions): void;
|
||
|
add(group: string, connectionUri: string): void;
|
||
|
add(group: string, config: PoolOptions): void;
|
||
|
|
||
|
end(): Promise<void>;
|
||
|
|
||
|
getConnection(): Promise<PoolConnection>;
|
||
|
getConnection(group: string): Promise<PoolConnection>;
|
||
|
getConnection(group: string, selector: string): Promise<PoolConnection>;
|
||
|
|
||
|
of(pattern: string, selector?: string): PoolNamespace;
|
||
|
|
||
|
on(event: string, listener: (...args: any[]) => void): this;
|
||
|
on(event: 'remove', listener: (nodeId: number) => void): this;
|
||
|
on(event: 'warn', listener: (err: Error) => void): this;
|
||
|
}
|
||
|
|
||
|
export function createConnection(connectionUri: string): Promise<Connection>;
|
||
|
export function createConnection(
|
||
|
config: ConnectionOptions,
|
||
|
): Promise<Connection>;
|
||
|
|
||
|
export function createPool(connectionUri: string): Pool;
|
||
|
export function createPool(config: PoolOptions): Pool;
|
||
|
|
||
|
export function createPoolCluster(config?: PoolClusterOptions): PoolCluster;
|