connection_pool_events.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.ConnectionPoolClearedEvent = exports.ConnectionCheckedInEvent = exports.ConnectionCheckedOutEvent = exports.ConnectionCheckOutFailedEvent = exports.ConnectionCheckOutStartedEvent = exports.ConnectionClosedEvent = exports.ConnectionReadyEvent = exports.ConnectionCreatedEvent = exports.ConnectionPoolClosedEvent = exports.ConnectionPoolReadyEvent = exports.ConnectionPoolCreatedEvent = exports.ConnectionPoolMonitoringEvent = void 0;
  4. const constants_1 = require("../constants");
  5. /**
  6. * The base export class for all monitoring events published from the connection pool
  7. * @public
  8. * @category Event
  9. */
  10. class ConnectionPoolMonitoringEvent {
  11. /** @internal */
  12. constructor(pool) {
  13. this.time = new Date();
  14. this.address = pool.address;
  15. }
  16. }
  17. exports.ConnectionPoolMonitoringEvent = ConnectionPoolMonitoringEvent;
  18. /**
  19. * An event published when a connection pool is created
  20. * @public
  21. * @category Event
  22. */
  23. class ConnectionPoolCreatedEvent extends ConnectionPoolMonitoringEvent {
  24. /** @internal */
  25. constructor(pool) {
  26. super(pool);
  27. /** @internal */
  28. this.name = constants_1.CONNECTION_POOL_CREATED;
  29. const { maxConnecting, maxPoolSize, minPoolSize, maxIdleTimeMS, waitQueueTimeoutMS } = pool.options;
  30. this.options = { maxConnecting, maxPoolSize, minPoolSize, maxIdleTimeMS, waitQueueTimeoutMS };
  31. }
  32. }
  33. exports.ConnectionPoolCreatedEvent = ConnectionPoolCreatedEvent;
  34. /**
  35. * An event published when a connection pool is ready
  36. * @public
  37. * @category Event
  38. */
  39. class ConnectionPoolReadyEvent extends ConnectionPoolMonitoringEvent {
  40. /** @internal */
  41. constructor(pool) {
  42. super(pool);
  43. /** @internal */
  44. this.name = constants_1.CONNECTION_POOL_READY;
  45. }
  46. }
  47. exports.ConnectionPoolReadyEvent = ConnectionPoolReadyEvent;
  48. /**
  49. * An event published when a connection pool is closed
  50. * @public
  51. * @category Event
  52. */
  53. class ConnectionPoolClosedEvent extends ConnectionPoolMonitoringEvent {
  54. /** @internal */
  55. constructor(pool) {
  56. super(pool);
  57. /** @internal */
  58. this.name = constants_1.CONNECTION_POOL_CLOSED;
  59. }
  60. }
  61. exports.ConnectionPoolClosedEvent = ConnectionPoolClosedEvent;
  62. /**
  63. * An event published when a connection pool creates a new connection
  64. * @public
  65. * @category Event
  66. */
  67. class ConnectionCreatedEvent extends ConnectionPoolMonitoringEvent {
  68. /** @internal */
  69. constructor(pool, connection) {
  70. super(pool);
  71. /** @internal */
  72. this.name = constants_1.CONNECTION_CREATED;
  73. this.connectionId = connection.id;
  74. }
  75. }
  76. exports.ConnectionCreatedEvent = ConnectionCreatedEvent;
  77. /**
  78. * An event published when a connection is ready for use
  79. * @public
  80. * @category Event
  81. */
  82. class ConnectionReadyEvent extends ConnectionPoolMonitoringEvent {
  83. /** @internal */
  84. constructor(pool, connection) {
  85. super(pool);
  86. /** @internal */
  87. this.name = constants_1.CONNECTION_READY;
  88. this.connectionId = connection.id;
  89. }
  90. }
  91. exports.ConnectionReadyEvent = ConnectionReadyEvent;
  92. /**
  93. * An event published when a connection is closed
  94. * @public
  95. * @category Event
  96. */
  97. class ConnectionClosedEvent extends ConnectionPoolMonitoringEvent {
  98. /** @internal */
  99. constructor(pool, connection, reason, error) {
  100. super(pool);
  101. /** @internal */
  102. this.name = constants_1.CONNECTION_CLOSED;
  103. this.connectionId = connection.id;
  104. this.reason = reason;
  105. this.serviceId = connection.serviceId;
  106. this.error = error ?? null;
  107. }
  108. }
  109. exports.ConnectionClosedEvent = ConnectionClosedEvent;
  110. /**
  111. * An event published when a request to check a connection out begins
  112. * @public
  113. * @category Event
  114. */
  115. class ConnectionCheckOutStartedEvent extends ConnectionPoolMonitoringEvent {
  116. /** @internal */
  117. constructor(pool) {
  118. super(pool);
  119. /** @internal */
  120. this.name = constants_1.CONNECTION_CHECK_OUT_STARTED;
  121. }
  122. }
  123. exports.ConnectionCheckOutStartedEvent = ConnectionCheckOutStartedEvent;
  124. /**
  125. * An event published when a request to check a connection out fails
  126. * @public
  127. * @category Event
  128. */
  129. class ConnectionCheckOutFailedEvent extends ConnectionPoolMonitoringEvent {
  130. /** @internal */
  131. constructor(pool, reason, error) {
  132. super(pool);
  133. /** @internal */
  134. this.name = constants_1.CONNECTION_CHECK_OUT_FAILED;
  135. this.reason = reason;
  136. this.error = error;
  137. }
  138. }
  139. exports.ConnectionCheckOutFailedEvent = ConnectionCheckOutFailedEvent;
  140. /**
  141. * An event published when a connection is checked out of the connection pool
  142. * @public
  143. * @category Event
  144. */
  145. class ConnectionCheckedOutEvent extends ConnectionPoolMonitoringEvent {
  146. /** @internal */
  147. constructor(pool, connection) {
  148. super(pool);
  149. /** @internal */
  150. this.name = constants_1.CONNECTION_CHECKED_OUT;
  151. this.connectionId = connection.id;
  152. }
  153. }
  154. exports.ConnectionCheckedOutEvent = ConnectionCheckedOutEvent;
  155. /**
  156. * An event published when a connection is checked into the connection pool
  157. * @public
  158. * @category Event
  159. */
  160. class ConnectionCheckedInEvent extends ConnectionPoolMonitoringEvent {
  161. /** @internal */
  162. constructor(pool, connection) {
  163. super(pool);
  164. /** @internal */
  165. this.name = constants_1.CONNECTION_CHECKED_IN;
  166. this.connectionId = connection.id;
  167. }
  168. }
  169. exports.ConnectionCheckedInEvent = ConnectionCheckedInEvent;
  170. /**
  171. * An event published when a connection pool is cleared
  172. * @public
  173. * @category Event
  174. */
  175. class ConnectionPoolClearedEvent extends ConnectionPoolMonitoringEvent {
  176. /** @internal */
  177. constructor(pool, options = {}) {
  178. super(pool);
  179. /** @internal */
  180. this.name = constants_1.CONNECTION_POOL_CLEARED;
  181. this.serviceId = options.serviceId;
  182. this.interruptInUseConnections = options.interruptInUseConnections;
  183. }
  184. }
  185. exports.ConnectionPoolClearedEvent = ConnectionPoolClearedEvent;
  186. //# sourceMappingURL=connection_pool_events.js.map