connection_pool_events.js 6.2 KB

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