Pool.d.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /// <reference types="node" />
  2. import { PendingOperation } from './PendingOperation';
  3. import { Resource } from './Resource';
  4. export interface PoolOptions<T> {
  5. create: CallbackOrPromise<T>;
  6. destroy: (resource: T) => any;
  7. min: number;
  8. max: number;
  9. acquireTimeoutMillis?: number;
  10. createTimeoutMillis?: number;
  11. destroyTimeoutMillis?: number;
  12. idleTimeoutMillis?: number;
  13. createRetryIntervalMillis?: number;
  14. reapIntervalMillis?: number;
  15. log?: (msg: string) => any;
  16. validate?: (resource: T) => boolean;
  17. propagateCreateError?: boolean;
  18. }
  19. export declare class Pool<T> {
  20. protected min: number;
  21. protected max: number;
  22. protected used: Resource<T>[];
  23. protected free: Resource<T>[];
  24. protected pendingCreates: PendingOperation<T>[];
  25. protected pendingAcquires: PendingOperation<T>[];
  26. protected interval: NodeJS.Timer | null;
  27. protected destroyed: boolean;
  28. protected propagateCreateError: boolean;
  29. protected idleTimeoutMillis: number;
  30. protected createRetryIntervalMillis: number;
  31. protected reapIntervalMillis: number;
  32. protected createTimeoutMillis: number;
  33. protected destroyTimeoutMillis: number;
  34. protected acquireTimeoutMillis: number;
  35. protected log: (msg: string, level: 'warn') => any;
  36. protected creator: CallbackOrPromise<T>;
  37. protected destroyer: (resource: T) => any;
  38. protected validate: (resource: T) => boolean;
  39. constructor(opt: PoolOptions<T>);
  40. numUsed(): number;
  41. numFree(): number;
  42. numPendingAcquires(): number;
  43. numPendingCreates(): number;
  44. acquire(): PendingOperation<T>;
  45. release(resource: T): boolean;
  46. isEmpty(): boolean;
  47. check(): void;
  48. destroy(): Promise<import("./PromiseInspection").PromiseInspection<{}> | import("./PromiseInspection").PromiseInspection<void>>;
  49. _tryAcquireOrCreate(): void;
  50. _hasFreeResources(): boolean;
  51. _doAcquire(): void;
  52. _canAcquire(): boolean;
  53. _validateResource(resource: T): boolean;
  54. _shouldCreateMoreResources(): boolean;
  55. _doCreate(): void;
  56. _create(): PendingOperation<T>;
  57. _destroy(resource: T): Promise<any>;
  58. _logError(err: Error): void;
  59. _startReaping(): void;
  60. _stopReaping(): void;
  61. }
  62. export declare type Callback<T> = (err: Error | null, resource: T) => any;
  63. export declare type CallbackOrPromise<T> = (cb: Callback<T>) => any | (() => Promise<T>);