promise.d.ts 3.3 KB

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