pool.d.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. /** The amount of time before a client is removed from the pool and closed. `null` if no time limit. Default `null` */
  32. clientTtl?: number | null;
  33. interceptors?: { Pool?: readonly Dispatcher.DispatchInterceptor[] } & Client.Options['interceptors']
  34. }
  35. }