@nimee/initialize-ms 1.0.73 → 1.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,6 +56,7 @@ class ServerInitializerFastify {
56
56
  /\.articket\.co.il$/,
57
57
  "https://articket.co.il",
58
58
  "https://app.flex.coach",
59
+ /\.flex\.coach$/,
59
60
  ],
60
61
  methods: ["GET", "PUT", "PATCH", "POST", "DELETE", "OPTIONS"],
61
62
  allowedHeaders: [
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/fastify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/fastify.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -69,7 +69,12 @@ class AppInitializer {
69
69
  // await redisService.initRedisConnection(this.serviceName, `${this.serviceName}_`);
70
70
  }
71
71
  error_handler_1.errorHandler.registerAndHandleAllErrors(this.server);
72
- yield new health_1.default(this.server, undefined).start(this.serviceName);
72
+ // Initialize health service with MongoDB health checker
73
+ const healthService = new health_1.default(this.server, undefined);
74
+ if (dbConnection && !blackFeatureList.includes("mongo")) {
75
+ healthService.setMongoHealthChecker(() => dbConnection.isHealthy());
76
+ }
77
+ yield healthService.start(this.serviceName);
73
78
  metrics_1.defaultMetricsExporter.collectDefaultMetricsAndExport(this.server, "/metrics", 2000, process.env.logLevel);
74
79
  if (entryPointsInitializer) {
75
80
  const allEntryPointInitializers = [entryPointsInitializer];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wEAAgD;AAmFvC,0BAnFF,yBAAe,CAmFE;AAlFxB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACrC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;KAClC,CAAC,CAAC;AACL,CAAC;AACD,iCAAiC;AACjC,qDAAqD;AACrD,0CAA0C;AAC1C,gCAAgC;AAChC,4CAA4C;AAC5C,kDAAkD;AAClD,yCAAyC;AACzC,oBAAoB;AACpB,gEAAgE;AAChE,wEAAwE;AACxE,QAAQ;AACR,kBAAkB;AAClB,6CAA6C;AAC7C,kDAAkD;AAClD,yCAAyC;AACzC,uEAAuE;AACvE,cAAc;AACd,QAAQ;AACR,IAAI;AACJ,wDAAiD;AACjD,2DAAmC;AACnC,wDAAoD;AACpD,2DAA0C;AAC1C,4CAAwD;AAExD,MAAM,cAAc;IAKZ,UAAU,CACd,MAAW,EACX,UAAkB,EAClB,WAAmB,EACnB,sBAA2B,EAC3B,gBAAwB,EACxB,YAAiB,EACjB,gBAA+B,EAC/B,IAAY;;YAEZ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,OAAO,CAAC;YACZ,QAAQ,UAAU,EAAE,CAAC;gBACnB,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,gBAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBACzC,OAAO,GAAG,IAAI,iBAAwB,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9D,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,8EAA8E;oBAC9E,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,YAAY,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,MAAM,YAAY,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;YACvH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,oFAAoF;YACtF,CAAC;YACD,4BAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,gBAAa,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxE,gCAAsB,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE3G,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,MAAM,yBAAyB,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAC3D,yBAAyB,CAAC,OAAO,CAAC,CAAC,qBAAqB,EAAE,EAAE;oBAC1D,gBAAM,CAAC,IAAI,CAAC,mDAAmD,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;oBACtF,IAAI,qBAAqB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;gBACH,gBAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,UAAU;gBAAE,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;KAAA;CACF;AAED,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ const mongoose_1 = __importDefault(require("mongoose"));
17
17
  const logger_1 = __importDefault(require("@nimee/logger"));
18
18
  let connectionIntance;
19
19
  class MongooseConnection {
20
+ constructor() {
21
+ this.disconnectionTime = null;
22
+ }
20
23
  static getDefaultInstance() {
21
24
  if (!connectionIntance) {
22
25
  connectionIntance = new MongooseConnection();
@@ -26,6 +29,8 @@ class MongooseConnection {
26
29
  connectToDB(connectionString, serviceName) {
27
30
  return __awaiter(this, void 0, void 0, function* () {
28
31
  try {
32
+ this.serviceName = serviceName;
33
+ this.connectionString = connectionString;
29
34
  if (this.db) {
30
35
  logger_1.default.info("Mongo already Connected");
31
36
  return this.db;
@@ -35,12 +40,59 @@ class MongooseConnection {
35
40
  });
36
41
  logger_1.default.info(`Connected successfully to mongo server from ${serviceName}`);
37
42
  this.db = mongoose_1.default.connection;
43
+ this.setupConnectionEventListeners();
38
44
  }
39
45
  catch (error) {
40
46
  throw new error_handler_1.CustomError(`${serviceName}_mongoose_connection_failed`, 400, `connectToDb from ${serviceName} with error ${error.message}`, error);
41
47
  }
42
48
  });
43
49
  }
50
+ setupConnectionEventListeners() {
51
+ if (!this.db)
52
+ return;
53
+ this.db.on("connected", () => {
54
+ logger_1.default.info(`MongoDB connected for ${this.serviceName}`);
55
+ this.disconnectionTime = null;
56
+ });
57
+ this.db.on("disconnected", () => {
58
+ logger_1.default.warn(`MongoDB disconnected for ${this.serviceName}`);
59
+ this.disconnectionTime = new Date();
60
+ });
61
+ this.db.on("error", (error) => {
62
+ logger_1.default.error(`MongoDB connection error for ${this.serviceName}:`, error);
63
+ this.disconnectionTime = new Date();
64
+ });
65
+ this.db.on("reconnected", () => {
66
+ logger_1.default.info(`MongoDB reconnected for ${this.serviceName}`);
67
+ this.disconnectionTime = null;
68
+ });
69
+ }
70
+ isHealthy() {
71
+ if (!this.db)
72
+ return false;
73
+ // Check if connected
74
+ if (this.db.readyState === 1)
75
+ return true;
76
+ // If disconnected, check if it's been less than the grace period
77
+ if (this.db.readyState === 0 && this.disconnectionTime) {
78
+ const timeSinceDisconnection = Date.now() - this.disconnectionTime.getTime();
79
+ const gracePeriodMinutes = parseInt(process.env.MONGO_GRACE_PERIOD_MINUTES || "5", 10);
80
+ const gracePeriodMs = gracePeriodMinutes * 60 * 1000;
81
+ return timeSinceDisconnection < gracePeriodMs;
82
+ }
83
+ return false;
84
+ }
85
+ getConnectionStatus() {
86
+ if (!this.db) {
87
+ return { connected: false };
88
+ }
89
+ const connected = this.db.readyState === 1;
90
+ if (!connected && this.disconnectionTime) {
91
+ const timeSinceDisconnection = Date.now() - this.disconnectionTime.getTime();
92
+ return { connected, timeSinceDisconnection };
93
+ }
94
+ return { connected };
95
+ }
44
96
  }
45
97
  exports.default = MongooseConnection.getDefaultInstance();
46
98
  //# sourceMappingURL=mongooseConnection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongooseConnection.js","sourceRoot":"","sources":["../../src/mongooseConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wDAAiE;AACjE,wDAAgD;AAChD,2DAAmC;AACnC,IAAI,iBAAsB,CAAC;AAE3B,MAAM,kBAAkB;IAEtB,MAAM,CAAC,kBAAkB;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,iBAAiB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC/C,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACK,WAAW,CAAC,gBAAwB,EAAE,WAAmB;;YAC7D,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;oBACZ,gBAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBACvC,OAAO,IAAI,CAAC,EAAE,CAAC;gBACjB,CAAC;gBAED,MAAM,kBAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK;oBACnG,4BAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,gBAAM,CAAC,IAAI,CAAC,+CAA+C,WAAW,EAAE,CAAC,CAAC;gBAE1E,IAAI,CAAC,EAAE,GAAG,kBAAQ,CAAC,UAAU,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,2BAAW,CACnB,GAAG,WAAW,6BAA6B,EAC3C,GAAG,EACH,oBAAoB,WAAW,eAAe,KAAK,CAAC,OAAO,EAAE,EAC7D,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF;AACD,kBAAe,kBAAkB,CAAC,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"mongooseConnection.js","sourceRoot":"","sources":["../../src/mongooseConnection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimee/initialize-ms",
3
- "version": "1.0.73",
3
+ "version": "1.0.75",
4
4
  "description": "init behavior for each ms",
5
5
  "main": "dist/src/index.js",
6
6
  "author": "dan goldberg",
package/src/fastify.ts CHANGED
@@ -44,6 +44,7 @@ class ServerInitializerFastify {
44
44
  /\.articket\.co.il$/,
45
45
  "https://articket.co.il",
46
46
  "https://app.flex.coach",
47
+ /\.flex\.coach$/,
47
48
  ],
48
49
  methods: ["GET", "PUT", "PATCH", "POST", "DELETE", "OPTIONS"],
49
50
  allowedHeaders: [
package/src/index.ts CHANGED
@@ -65,7 +65,14 @@ class AppInitializer {
65
65
  // await redisService.initRedisConnection(this.serviceName, `${this.serviceName}_`);
66
66
  }
67
67
  errorHandler.registerAndHandleAllErrors(this.server);
68
- await new HealthService(this.server, undefined).start(this.serviceName);
68
+
69
+ // Initialize health service with MongoDB health checker
70
+ const healthService = new HealthService(this.server, undefined);
71
+ if (dbConnection && !blackFeatureList.includes("mongo")) {
72
+ healthService.setMongoHealthChecker(() => dbConnection.isHealthy());
73
+ }
74
+ await healthService.start(this.serviceName);
75
+
69
76
  defaultMetricsExporter.collectDefaultMetricsAndExport(this.server, "/metrics", 2000, process.env.logLevel);
70
77
 
71
78
  if (entryPointsInitializer) {
@@ -5,6 +5,10 @@ let connectionIntance: any;
5
5
 
6
6
  class MongooseConnection {
7
7
  db: Connection;
8
+ private serviceName: string;
9
+ private disconnectionTime: Date | null = null;
10
+ private connectionString: string;
11
+
8
12
  static getDefaultInstance() {
9
13
  if (!connectionIntance) {
10
14
  connectionIntance = new MongooseConnection();
@@ -12,8 +16,12 @@ class MongooseConnection {
12
16
 
13
17
  return connectionIntance;
14
18
  }
19
+
15
20
  async connectToDB(connectionString: string, serviceName: string) {
16
21
  try {
22
+ this.serviceName = serviceName;
23
+ this.connectionString = connectionString;
24
+
17
25
  if (this.db) {
18
26
  logger.info("Mongo already Connected");
19
27
  return this.db;
@@ -25,6 +33,7 @@ class MongooseConnection {
25
33
  logger.info(`Connected successfully to mongo server from ${serviceName}`);
26
34
 
27
35
  this.db = mongoose.connection;
36
+ this.setupConnectionEventListeners();
28
37
  } catch (error) {
29
38
  throw new CustomError(
30
39
  `${serviceName}_mongoose_connection_failed`,
@@ -34,5 +43,61 @@ class MongooseConnection {
34
43
  );
35
44
  }
36
45
  }
46
+
47
+ private setupConnectionEventListeners() {
48
+ if (!this.db) return;
49
+
50
+ this.db.on("connected", () => {
51
+ logger.info(`MongoDB connected for ${this.serviceName}`);
52
+ this.disconnectionTime = null;
53
+ });
54
+
55
+ this.db.on("disconnected", () => {
56
+ logger.warn(`MongoDB disconnected for ${this.serviceName}`);
57
+ this.disconnectionTime = new Date();
58
+ });
59
+
60
+ this.db.on("error", (error) => {
61
+ logger.error(`MongoDB connection error for ${this.serviceName}:`, error);
62
+ this.disconnectionTime = new Date();
63
+ });
64
+
65
+ this.db.on("reconnected", () => {
66
+ logger.info(`MongoDB reconnected for ${this.serviceName}`);
67
+ this.disconnectionTime = null;
68
+ });
69
+ }
70
+
71
+ isHealthy(): boolean {
72
+ if (!this.db) return false;
73
+
74
+ // Check if connected
75
+ if (this.db.readyState === 1) return true;
76
+
77
+ // If disconnected, check if it's been less than the grace period
78
+ if (this.db.readyState === 0 && this.disconnectionTime) {
79
+ const timeSinceDisconnection = Date.now() - this.disconnectionTime.getTime();
80
+ const gracePeriodMinutes = parseInt(process.env.MONGO_GRACE_PERIOD_MINUTES || "5", 10);
81
+ const gracePeriodMs = gracePeriodMinutes * 60 * 1000;
82
+ return timeSinceDisconnection < gracePeriodMs;
83
+ }
84
+
85
+ return false;
86
+ }
87
+
88
+ getConnectionStatus(): { connected: boolean; timeSinceDisconnection?: number } {
89
+ if (!this.db) {
90
+ return { connected: false };
91
+ }
92
+
93
+ const connected = this.db.readyState === 1;
94
+
95
+ if (!connected && this.disconnectionTime) {
96
+ const timeSinceDisconnection = Date.now() - this.disconnectionTime.getTime();
97
+ return { connected, timeSinceDisconnection };
98
+ }
99
+
100
+ return { connected };
101
+ }
37
102
  }
38
103
  export default MongooseConnection.getDefaultInstance();