promise.d.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import { EventEmitter } from 'events';
  2. import {
  3. RowDataPacket,
  4. OkPacket,
  5. ResultSetHeader,
  6. FieldPacket,
  7. QueryOptions,
  8. ConnectionOptions,
  9. PoolOptions,
  10. PoolClusterOptions,
  11. Pool as CorePool,
  12. ConnectionState,
  13. } from './index.js';
  14. import { ExecutableBase as ExecutableBaseClass } from './typings/mysql/lib/protocol/sequences/promise/ExecutableBase.js';
  15. import { QueryableBase as QueryableBaseClass } from './typings/mysql/lib/protocol/sequences/promise/QueryableBase.js';
  16. export * from './index.js';
  17. // Expose class interfaces
  18. declare class QueryableAndExecutableBase extends QueryableBaseClass(
  19. ExecutableBaseClass(EventEmitter)
  20. ) {}
  21. export interface PreparedStatementInfo {
  22. close(): Promise<void>;
  23. execute(
  24. parameters: any | any[] | { [param: string]: any }
  25. ): Promise<
  26. [
  27. (
  28. | RowDataPacket[][]
  29. | RowDataPacket[]
  30. | OkPacket
  31. | OkPacket[]
  32. | ResultSetHeader
  33. ),
  34. FieldPacket[],
  35. ]
  36. >;
  37. }
  38. export declare class Connection extends QueryableAndExecutableBase {
  39. config: ConnectionOptions;
  40. threadId: number;
  41. readonly state: ConnectionState;
  42. connect(): Promise<void>;
  43. ping(): Promise<void>;
  44. reset(): Promise<void>;
  45. beginTransaction(): Promise<void>;
  46. commit(): Promise<void>;
  47. rollback(): Promise<void>;
  48. changeUser(options: ConnectionOptions): Promise<void>;
  49. prepare(options: string | QueryOptions): Promise<PreparedStatementInfo>;
  50. unprepare(sql: string | QueryOptions): void;
  51. end(options?: any): Promise<void>;
  52. [Symbol.asyncDispose](): Promise<void>;
  53. destroy(): void;
  54. pause(): void;
  55. resume(): void;
  56. escape(value: any): string;
  57. escapeId(value: string): string;
  58. escapeId(values: string[]): string;
  59. format(sql: string, values?: any | any[] | { [param: string]: any }): string;
  60. }
  61. export declare class PoolConnection extends Connection {
  62. release(): void;
  63. connection: Connection;
  64. [Symbol.asyncDispose](): Promise<void>;
  65. }
  66. export interface Pool extends Connection {
  67. getConnection(): Promise<PoolConnection>;
  68. releaseConnection(connection: PoolConnection): void;
  69. on(event: 'connection', listener: (connection: PoolConnection) => any): this;
  70. on(event: 'acquire', listener: (connection: PoolConnection) => any): this;
  71. on(event: 'release', listener: (connection: PoolConnection) => any): this;
  72. on(event: 'enqueue', listener: () => any): this;
  73. end(): Promise<void>;
  74. pool: CorePool;
  75. }
  76. export interface PoolNamespace extends QueryableAndExecutableBase {
  77. getConnection(): Promise<PoolConnection>;
  78. }
  79. export interface PoolCluster extends EventEmitter {
  80. config: PoolClusterOptions;
  81. add(config: PoolOptions): void;
  82. add(group: string, connectionUri: string): void;
  83. add(group: string, config: PoolOptions): void;
  84. end(): Promise<void>;
  85. [Symbol.asyncDispose](): Promise<void>;
  86. getConnection(): Promise<PoolConnection>;
  87. getConnection(group: string): Promise<PoolConnection>;
  88. getConnection(group: string, selector: string): Promise<PoolConnection>;
  89. of(pattern: string, selector?: string): PoolNamespace;
  90. on(event: string, listener: (...args: any[]) => void): this;
  91. on(event: 'remove', listener: (nodeId: number) => void): this;
  92. on(event: 'warn', listener: (err: Error) => void): this;
  93. }
  94. export function createConnection(connectionUri: string): Promise<Connection>;
  95. export function createConnection(
  96. config: ConnectionOptions
  97. ): Promise<Connection>;
  98. export function createPool(connectionUri: string): Pool;
  99. export function createPool(config: PoolOptions): Pool;
  100. export function createPoolCluster(config?: PoolClusterOptions): PoolCluster;