pool.d.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import Client from './client'
  2. import TPoolStats from './pool-stats'
  3. import { URL } from 'url'
  4. import Dispatcher from "./dispatcher";
  5. export default Pool
  6. type PoolConnectOptions = Omit<Dispatcher.ConnectOptions, "origin">;
  7. declare class Pool extends Dispatcher {
  8. constructor(url: string | URL, options?: Pool.Options)
  9. /** `true` after `pool.close()` has been called. */
  10. closed: boolean;
  11. /** `true` after `pool.destroyed()` has been called or `pool.close()` has been called and the pool shutdown has completed. */
  12. destroyed: boolean;
  13. /** Aggregate stats for a Pool. */
  14. readonly stats: TPoolStats;
  15. // Override dispatcher APIs.
  16. override connect(
  17. options: PoolConnectOptions
  18. ): Promise<Dispatcher.ConnectData>;
  19. override connect(
  20. options: PoolConnectOptions,
  21. callback: (err: Error | null, data: Dispatcher.ConnectData) => void
  22. ): void;
  23. }
  24. declare namespace Pool {
  25. export type PoolStats = TPoolStats;
  26. export interface Options extends Client.Options {
  27. /** Default: `(origin, opts) => new Client(origin, opts)`. */
  28. factory?(origin: URL, opts: object): Dispatcher;
  29. /** The max number of clients to create. `null` if no limit. Default `null`. */
  30. connections?: number | null;
  31. interceptors?: { Pool?: readonly Dispatcher.DispatchInterceptor[] } & Client.Options["interceptors"]
  32. }
  33. }