index.d.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Type definitions for node-pool 3.1
  2. // Derived from https://github.com/DefinitelyTyped/DefinitelyTyped
  3. // -> https://github.com/DefinitelyTyped/DefinitelyTyped/blob/454dcbcbe5e932010b128dca9793758dd28adb45/types/generic-pool/index.d.ts
  4. /// <reference types="node" />
  5. import { EventEmitter } from "events";
  6. export class Pool<T> extends EventEmitter {
  7. spareResourceCapacity: number;
  8. size: number;
  9. available: number;
  10. borrowed: number;
  11. pending: number;
  12. max: number;
  13. min: number;
  14. start(): void;
  15. acquire(priority?: number): Promise<T>;
  16. release(resource: T): Promise<void>;
  17. destroy(resource: T): Promise<void>;
  18. drain(): Promise<void>;
  19. clear(): Promise<void>;
  20. use<U>(cb: (resource: T) => U | Promise<U>): Promise<U>;
  21. isBorrowedResource(resource: T): boolean;
  22. ready(): Promise<void>;
  23. }
  24. export interface Factory<T> {
  25. create(): Promise<T>;
  26. destroy(client: T): Promise<void>;
  27. validate?(client: T): Promise<boolean>;
  28. }
  29. export interface Options {
  30. max?: number;
  31. min?: number;
  32. maxWaitingClients?: number;
  33. testOnBorrow?: boolean;
  34. testOnReturn?: boolean;
  35. acquireTimeoutMillis?: number;
  36. fifo?: boolean;
  37. priorityRange?: number;
  38. autostart?: boolean;
  39. evictionRunIntervalMillis?: number;
  40. numTestsPerEvictionRun?: number;
  41. softIdleTimeoutMillis?: number;
  42. idleTimeoutMillis?: number;
  43. }
  44. export function createPool<T>(factory: Factory<T>, opts?: Options): Pool<T>;