@cryptexlabs/codex-nodejs-common 0.3.1 → 0.4.0

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.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -15,10 +15,10 @@
15
15
  "@cryptexlabs/codex-data-model": "^0.1.3"
16
16
  },
17
17
  "dependencies": {
18
- "@elastic/elasticsearch": "^7.10.0",
18
+ "@elastic/elasticsearch": "^8.0.0",
19
19
  "@nestjs/common": "^8.0.6",
20
20
  "@nestjs/core": "^8.0.6",
21
- "@nestjs/elasticsearch": "^8.0.0",
21
+ "@nestjs/elasticsearch": "^8.1.0",
22
22
  "@nestjs/platform-socket.io": "^8.0.6",
23
23
  "@nestjs/platform-ws": "^8.0.6",
24
24
  "@nestjs/swagger": "^5.0.9",
@@ -51,12 +51,12 @@
51
51
  "@types/supertest": "^2.0.10",
52
52
  "@types/uuid": "^8.3.1",
53
53
  "husky": "^4.3.6",
54
- "jest": "^27.0.6",
54
+ "jest": "^28.1.0",
55
55
  "nodemon": "^2.0.6",
56
56
  "prettier": "^2.2.1",
57
57
  "rimraf": "^3.0.2",
58
58
  "supertest": "^6.0.1",
59
- "ts-jest": "^27.0.4",
59
+ "ts-jest": "^28.0.2",
60
60
  "ts-loader": "^8.0.12",
61
61
  "ts-mockito": "^2.6.1",
62
62
  "ts-node": "^9.1.1",
@@ -27,7 +27,7 @@ let ElasticsearchHealthzService = class ElasticsearchHealthzService {
27
27
  }
28
28
  async start() {
29
29
  await this.healthzService.makeUnhealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
30
- this._ping();
30
+ this._ping().then();
31
31
  setInterval(() => {
32
32
  this._ping();
33
33
  }, this.config.elasticsearch.pingIntervalSeconds * 1000);
@@ -36,17 +36,12 @@ let ElasticsearchHealthzService = class ElasticsearchHealthzService {
36
36
  this.logger.log("Waiting for elasticsearch connection", "info");
37
37
  while (true) {
38
38
  try {
39
- await new Promise((resolve, reject) => {
40
- this.elasticsearchService.ping({}, async (error) => {
41
- if (!error) {
42
- resolve(undefined);
43
- }
44
- else {
45
- await util_1.TimeUtil.sleep(1000);
46
- reject();
47
- }
48
- });
49
- });
39
+ const pingResponse = await this.elasticsearchService.ping();
40
+ if (!pingResponse) {
41
+ this.logger.debug("Elasticsearch not available", "debug");
42
+ await util_1.TimeUtil.sleep(1000);
43
+ return;
44
+ }
50
45
  this.logger.log("Elasticsearch service connected", "info");
51
46
  await this.healthzService.makeHealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
52
47
  return;
@@ -57,17 +52,16 @@ let ElasticsearchHealthzService = class ElasticsearchHealthzService {
57
52
  }
58
53
  }
59
54
  }
60
- _ping() {
61
- this.elasticsearchService.ping({}, async (error) => {
62
- if (error) {
63
- this.logger.error("Elasticsearch service could not be reached", "");
64
- await this.healthzService.makeUnhealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
65
- }
66
- else {
67
- this.logger.debug("Elasticsearch service was successfully pinged");
68
- await this.healthzService.makeHealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
69
- }
70
- });
55
+ async _ping() {
56
+ const success = await this.elasticsearchService.ping();
57
+ if (success) {
58
+ this.logger.debug("Elasticsearch service was successfully pinged");
59
+ await this.healthzService.makeHealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
60
+ }
61
+ else {
62
+ this.logger.error("Elasticsearch service could not be reached", "");
63
+ await this.healthzService.makeUnhealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
64
+ }
71
65
  }
72
66
  };
73
67
  ElasticsearchHealthzService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"elasticsearch-healthz.service.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch-healthz.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,yCAA6C;AAC7C,yDAA6D;AAC7D,wCAAkE;AAClE,qCAAsC;AAGtC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,YACqC,MAAqB,EACrB,MAAqB,EAEvC,oBAA0C,EACf,cAA8B;QAJvC,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,yBAAoB,GAApB,oBAAoB,CAAsB;QACf,mBAAc,GAAd,cAAc,CAAgB;IACzE,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACpC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBACjD,IAAI,CAAC,KAAK,EAAE;4BACV,OAAO,CAAC,SAAS,CAAC,CAAC;yBACpB;6BAAM;4BACL,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC3B,MAAM,EAAE,CAAC;yBACV;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;gBACF,OAAO;aACR;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA7DY,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;IAE/B,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;qCAJiB,sBAAa,UAGjB,oCAAoB;QACC,wBAAc;GANjE,2BAA2B,CA6DvC;AA7DY,kEAA2B"}
1
+ {"version":3,"file":"elasticsearch-healthz.service.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch-healthz.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,yCAA6C;AAC7C,yDAA6D;AAC7D,wCAAkE;AAClE,qCAAsC;AAGtC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,YACqC,MAAqB,EACrB,MAAqB,EAEvC,oBAA0C,EACf,cAA8B;QAJvC,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,yBAAoB,GAApB,oBAAoB,CAAsB;QACf,mBAAc,GAAd,cAAc,CAAgB;IACzE,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACpB,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,CAAC,YAAY,EAAE;oBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;oBAC1D,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO;iBACR;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;gBACF,OAAO;aACR;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;SACH;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;SACH;IACH,CAAC;CACF,CAAA;AAxDY,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;IAE/B,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;qCAJiB,sBAAa,UAGjB,oCAAoB;QACC,wBAAc;GANjE,2BAA2B,CAwDvC;AAxDY,kEAA2B"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ElasticsearchInitializer = void 0;
4
- const common_1 = require("@nestjs/common");
5
4
  class ElasticsearchInitializer {
6
5
  constructor(logger, index, elasticsearchService, indexProperties, type) {
7
6
  this.logger = logger;
@@ -17,10 +16,9 @@ class ElasticsearchInitializer {
17
16
  });
18
17
  }
19
18
  async _getIndexExists() {
20
- const { body } = await this.elasticsearchService.indices.exists({
19
+ return await this.elasticsearchService.indices.exists({
21
20
  index: this.index,
22
21
  });
23
- return body;
24
22
  }
25
23
  async initializeIndex() {
26
24
  await this._waitForReady();
@@ -48,11 +46,10 @@ class ElasticsearchInitializer {
48
46
  }
49
47
  }
50
48
  async _isReady() {
51
- return new Promise((resolve) => {
49
+ return new Promise(async (resolve) => {
52
50
  try {
53
- this.elasticsearchService.ping((err, response) => {
54
- resolve(!err && response.statusCode === common_1.HttpStatus.OK);
55
- });
51
+ const result = await this.elasticsearchService.ping();
52
+ resolve(result);
56
53
  }
57
54
  catch (e) {
58
55
  resolve(false);
@@ -1 +1 @@
1
- {"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAE5C,MAAa,wBAAwB;IACnC,YACmB,MAAoB,EACpB,KAAa,EACb,oBAA0C,EAC1C,eAAoB,EACpB,IAAa;QAJb,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAQ;QACb,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,oBAAe,GAAf,eAAe,CAAK;QACpB,SAAI,GAAJ,IAAI,CAAS;IAC7B,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;QAED,IAAI,MAAM,GAAQ;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI,CAAC,eAAe;aACjC;SACF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,mCACD,MAAM,KACT,IAAI,EAAE,IAAI,CAAC,IAAI,GAChB,CAAC;SACH;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI;gBACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAC/C,OAAO,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAU,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAjED,4DAiEC"}
1
+ {"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;AAIA,MAAa,wBAAwB;IACnC,YACmB,MAAoB,EACpB,KAAa,EACb,oBAA0C,EAC1C,eAAoB,EACpB,IAAa;QAJb,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAQ;QACb,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,oBAAe,GAAf,eAAe,CAAK;QACpB,SAAI,GAAJ,IAAI,CAAS;IAC7B,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;QAED,IAAI,MAAM,GAAQ;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI,CAAC,eAAe;aACjC;SACF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,mCACD,MAAM,KACT,IAAI,EAAE,IAAI,CAAC,IAAI,GAChB,CAAC;SACH;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,CAAC;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA/DD,4DA+DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -15,10 +15,10 @@
15
15
  "@cryptexlabs/codex-data-model": "^0.1.3"
16
16
  },
17
17
  "dependencies": {
18
- "@elastic/elasticsearch": "^7.10.0",
18
+ "@elastic/elasticsearch": "^8.0.0",
19
19
  "@nestjs/common": "^8.0.6",
20
20
  "@nestjs/core": "^8.0.6",
21
- "@nestjs/elasticsearch": "^8.0.0",
21
+ "@nestjs/elasticsearch": "^8.1.0",
22
22
  "@nestjs/platform-socket.io": "^8.0.6",
23
23
  "@nestjs/platform-ws": "^8.0.6",
24
24
  "@nestjs/swagger": "^5.0.9",
@@ -51,12 +51,12 @@
51
51
  "@types/supertest": "^2.0.10",
52
52
  "@types/uuid": "^8.3.1",
53
53
  "husky": "^4.3.6",
54
- "jest": "^27.0.6",
54
+ "jest": "^28.1.0",
55
55
  "nodemon": "^2.0.6",
56
56
  "prettier": "^2.2.1",
57
57
  "rimraf": "^3.0.2",
58
58
  "supertest": "^6.0.1",
59
- "ts-jest": "^27.0.4",
59
+ "ts-jest": "^28.0.2",
60
60
  "ts-loader": "^8.0.12",
61
61
  "ts-mockito": "^2.6.1",
62
62
  "ts-node": "^9.1.1",
@@ -18,7 +18,7 @@ export class ElasticsearchHealthzService {
18
18
  await this.healthzService.makeUnhealthy(
19
19
  HealthzComponentEnum.DATABASE_ELASTICSEARCH
20
20
  );
21
- this._ping();
21
+ this._ping().then();
22
22
  setInterval(() => {
23
23
  this._ping();
24
24
  }, this.config.elasticsearch.pingIntervalSeconds * 1000);
@@ -28,16 +28,12 @@ export class ElasticsearchHealthzService {
28
28
  this.logger.log("Waiting for elasticsearch connection", "info");
29
29
  while (true) {
30
30
  try {
31
- await new Promise((resolve, reject) => {
32
- this.elasticsearchService.ping({}, async (error) => {
33
- if (!error) {
34
- resolve(undefined);
35
- } else {
36
- await TimeUtil.sleep(1000);
37
- reject();
38
- }
39
- });
40
- });
31
+ const pingResponse = await this.elasticsearchService.ping();
32
+ if (!pingResponse) {
33
+ this.logger.debug("Elasticsearch not available", "debug");
34
+ await TimeUtil.sleep(1000);
35
+ return;
36
+ }
41
37
 
42
38
  this.logger.log("Elasticsearch service connected", "info");
43
39
  await this.healthzService.makeHealthy(
@@ -51,19 +47,18 @@ export class ElasticsearchHealthzService {
51
47
  }
52
48
  }
53
49
 
54
- private _ping() {
55
- this.elasticsearchService.ping({}, async (error) => {
56
- if (error) {
57
- this.logger.error("Elasticsearch service could not be reached", "");
58
- await this.healthzService.makeUnhealthy(
59
- HealthzComponentEnum.DATABASE_ELASTICSEARCH
60
- );
61
- } else {
62
- this.logger.debug("Elasticsearch service was successfully pinged");
63
- await this.healthzService.makeHealthy(
64
- HealthzComponentEnum.DATABASE_ELASTICSEARCH
65
- );
66
- }
67
- });
50
+ private async _ping() {
51
+ const success = await this.elasticsearchService.ping();
52
+ if (success) {
53
+ this.logger.debug("Elasticsearch service was successfully pinged");
54
+ await this.healthzService.makeHealthy(
55
+ HealthzComponentEnum.DATABASE_ELASTICSEARCH
56
+ );
57
+ } else {
58
+ this.logger.error("Elasticsearch service could not be reached", "");
59
+ await this.healthzService.makeUnhealthy(
60
+ HealthzComponentEnum.DATABASE_ELASTICSEARCH
61
+ );
62
+ }
68
63
  }
69
64
  }
@@ -19,10 +19,9 @@ export class ElasticsearchInitializer {
19
19
  }
20
20
 
21
21
  private async _getIndexExists() {
22
- const { body } = await this.elasticsearchService.indices.exists({
22
+ return await this.elasticsearchService.indices.exists({
23
23
  index: this.index,
24
24
  });
25
- return body;
26
25
  }
27
26
 
28
27
  async initializeIndex() {
@@ -57,11 +56,10 @@ export class ElasticsearchInitializer {
57
56
  }
58
57
  }
59
58
  async _isReady(): Promise<boolean> {
60
- return new Promise((resolve) => {
59
+ return new Promise(async (resolve) => {
61
60
  try {
62
- this.elasticsearchService.ping((err, response) => {
63
- resolve(!err && response.statusCode === HttpStatus.OK);
64
- });
61
+ const result = await this.elasticsearchService.ping();
62
+ resolve(result);
65
63
  } catch (e) {
66
64
  resolve(false);
67
65
  }
@@ -20,7 +20,7 @@ import { HealthzService } from "./healthz.service";
20
20
  import { DefaultConfig } from "../../config";
21
21
  import { instance, mock, when } from "ts-mockito";
22
22
  import { unlink, writeFile } from "fs";
23
- import { mocked } from "ts-jest/utils";
23
+ import { mocked } from "jest-mock";
24
24
 
25
25
  describe("HealthzService", () => {
26
26
  let service: HealthzService;
@@ -61,7 +61,7 @@ describe("HealthzService", () => {
61
61
 
62
62
  it("Should delete healthz file when made unhealthy and file exists", async () => {
63
63
  await service.makeHealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
64
- const mockedUnlink = mocked(unlink, true);
64
+ const mockedUnlink = await mocked(unlink, true);
65
65
  when(MockedConfig.healthzFilePath).thenReturn("/tmp/noexist");
66
66
  expect(mockedUnlink.mock.calls.length).toBe(0);
67
67
  await service.makeUnhealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
@@ -70,14 +70,14 @@ describe("HealthzService", () => {
70
70
 
71
71
  it("Should delete healthz file when made unhealthy and file does not exist", async () => {
72
72
  await service.makeHealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
73
- const mockedUnlink = mocked(unlink, true);
73
+ const mockedUnlink = await mocked(unlink, true);
74
74
  expect(mockedUnlink.mock.calls.length).toBe(0);
75
75
  await service.makeUnhealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
76
76
  expect(mockedUnlink.mock.calls.length).toBe(0);
77
77
  });
78
78
 
79
79
  it("Should create healthz file when all components are made healthy", async () => {
80
- const mockedWriteFile = mocked(writeFile, true);
80
+ const mockedWriteFile = await mocked(writeFile, true);
81
81
 
82
82
  // Make both components unhealthy
83
83
  await service.makeUnhealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
@@ -95,7 +95,7 @@ describe("HealthzService", () => {
95
95
  });
96
96
 
97
97
  it("Should not create healthz file when file already is created", async () => {
98
- const mockedWriteFile = mocked(writeFile, true);
98
+ const mockedWriteFile = await mocked(writeFile, true);
99
99
 
100
100
  await service.makeHealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
101
101