@zorionapp/gg-core 5.0.19 → 5.0.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zorionapp/gg-core",
3
- "version": "5.0.19",
3
+ "version": "5.0.21",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "cache-manager": "5.2.4",
@@ -3,6 +3,7 @@ import { RmqOptions } from '@nestjs/microservices/interfaces/microservice-config
3
3
  import { ServerRMQ } from '@nestjs/microservices/server/server-rmq';
4
4
  export type GgServerRmqOptions = RmqOptions['options'];
5
5
  export declare class GgServerRmq extends ServerRMQ {
6
+ private readonly eventDuration;
6
7
  constructor(options: GgServerRmqOptions);
7
8
  /**
8
9
  * CUSTOMIZED: Forces `noAck: false` regardless of options — we always ack/nack manually.
@@ -35,10 +35,20 @@ exports.GgServerRmq = void 0;
35
35
  const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
36
36
  const ctx_host_1 = require("@nestjs/microservices/ctx-host");
37
37
  const server_rmq_1 = require("@nestjs/microservices/server/server-rmq");
38
+ const prom_client_1 = require("prom-client");
38
39
  const rxjs_1 = require("rxjs");
40
+ const EVENT_DURATION_METRIC = 'gg_rmq_event_duration_seconds';
39
41
  class GgServerRmq extends server_rmq_1.ServerRMQ {
40
42
  constructor(options) {
41
43
  super(options);
44
+ this.eventDuration =
45
+ prom_client_1.register.getSingleMetric(EVENT_DURATION_METRIC) ??
46
+ new prom_client_1.Histogram({
47
+ name: EVENT_DURATION_METRIC,
48
+ help: 'Duration of RMQ event handler execution in seconds',
49
+ labelNames: ['pattern', 'status'],
50
+ buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
51
+ });
42
52
  }
43
53
  /**
44
54
  * CUSTOMIZED: Forces `noAck: false` regardless of options — we always ack/nack manually.
@@ -89,14 +99,17 @@ class GgServerRmq extends server_rmq_1.ServerRMQ {
89
99
  this.safeNack(channel, message, false); // requeue: false → immediate dead-letter
90
100
  return;
91
101
  }
102
+ const stopTimer = this.eventDuration.startTimer({ pattern });
92
103
  try {
93
104
  const resultOrStream = await handler(packet.data, context);
94
105
  if ((0, rxjs_1.isObservable)(resultOrStream)) {
95
106
  await (0, rxjs_1.lastValueFrom)(resultOrStream, { defaultValue: undefined });
96
107
  }
108
+ stopTimer({ status: 'success' });
97
109
  this.safeAck(channel, message);
98
110
  }
99
111
  catch (error) {
112
+ stopTimer({ status: 'error' });
100
113
  const deliveryCount = message.properties?.headers?.['x-delivery-count'] ?? 0;
101
114
  this.logger.error(`Event handler error [${pattern}] (delivery #${deliveryCount}): ${error?.message}`, error?.stack);
102
115
  this.safeNack(channel, message, true); // requeue: true → RMQ handles retry/DLQ
@@ -1 +1 @@
1
- {"version":3,"file":"gg-server-rmq.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-micro/gg-server-rmq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gg-server-rmq.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-micro/gg-server-rmq.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export { redisConfig, type RedisMode } from './redis.config';
2
- export { createRedisClient } from './redis-client.factory';
2
+ export { buildRedisClientOptions, createRedisClient, type RedisClientOptions } from './redis-client.factory';
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRedisClient = exports.redisConfig = void 0;
3
+ exports.createRedisClient = exports.buildRedisClientOptions = exports.redisConfig = void 0;
4
4
  var redis_config_1 = require("./redis.config");
5
5
  Object.defineProperty(exports, "redisConfig", { enumerable: true, get: function () { return redis_config_1.redisConfig; } });
6
6
  var redis_client_factory_1 = require("./redis-client.factory");
7
+ Object.defineProperty(exports, "buildRedisClientOptions", { enumerable: true, get: function () { return redis_client_factory_1.buildRedisClientOptions; } });
7
8
  Object.defineProperty(exports, "createRedisClient", { enumerable: true, get: function () { return redis_client_factory_1.createRedisClient; } });
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-redis/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6D;AAApD,2GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-redis/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6D;AAApD,2GAAA,WAAW,OAAA;AACpB,+DAA6G;AAApG,+HAAA,uBAAuB,OAAA;AAAE,yHAAA,iBAAiB,OAAA"}
@@ -2,5 +2,7 @@ import { ConfigType } from '@nestjs/config';
2
2
  import { default as Redis, RedisOptions } from 'ioredis';
3
3
  import { redisConfig } from './redis.config';
4
4
  type RedisConfigType = ConfigType<typeof redisConfig>;
5
+ export type RedisClientOptions = RedisOptions;
6
+ export declare function buildRedisClientOptions(config: RedisConfigType, options?: Partial<RedisOptions>): RedisClientOptions;
5
7
  export declare function createRedisClient(config: RedisConfigType, options?: Partial<RedisOptions>): Redis;
6
8
  export {};
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRedisClient = void 0;
3
+ exports.createRedisClient = exports.buildRedisClientOptions = void 0;
4
4
  const ioredis_1 = require("ioredis");
5
- function createRedisClient(config, options) {
5
+ function buildRedisClientOptions(config, options) {
6
6
  if (config.mode === 'sentinel') {
7
+ if (!config.sentinelHosts?.trim()) {
8
+ throw new Error('REDIS_SENTINEL_HOSTS is empty or invalid after parsing');
9
+ }
7
10
  const sentinels = config.sentinelHosts
8
11
  .split(';')
9
12
  .map((entry) => entry.trim())
@@ -15,17 +18,21 @@ function createRedisClient(config, options) {
15
18
  if (sentinels.length === 0) {
16
19
  throw new Error('REDIS_SENTINEL_HOSTS is empty or invalid after parsing');
17
20
  }
18
- return new ioredis_1.default({
21
+ return {
19
22
  sentinels,
20
23
  name: config.sentinelMaster,
21
24
  ...options,
22
- });
25
+ };
23
26
  }
24
- return new ioredis_1.default({
27
+ return {
25
28
  host: config.host,
26
29
  port: config.port,
27
30
  ...options,
28
- });
31
+ };
32
+ }
33
+ exports.buildRedisClientOptions = buildRedisClientOptions;
34
+ function createRedisClient(config, options) {
35
+ return new ioredis_1.default(buildRedisClientOptions(config, options));
29
36
  }
30
37
  exports.createRedisClient = createRedisClient;
31
38
  //# sourceMappingURL=redis-client.factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-client.factory.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-redis/redis-client.factory.ts"],"names":[],"mappings":";;;AACA,qCAAyD;AAKzD,SAAgB,iBAAiB,CAAC,MAAuB,EAAE,OAA+B;IACxF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa;aACnC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEL,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,IAAI,iBAAK,CAAC;YACf,SAAS;YACT,IAAI,EAAE,MAAM,CAAC,cAAc;YAC3B,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,iBAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AA3BD,8CA2BC"}
1
+ {"version":3,"file":"redis-client.factory.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-redis/redis-client.factory.ts"],"names":[],"mappings":";;;AACA,qCAAyD;AAMzD,SAAgB,uBAAuB,CACrC,MAAuB,EACvB,OAA+B;IAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa;aACnC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEL,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO;YACL,SAAS;YACT,IAAI,EAAE,MAAM,CAAC,cAAc;YAC3B,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAlCD,0DAkCC;AAED,SAAgB,iBAAiB,CAAC,MAAuB,EAAE,OAA+B;IACxF,OAAO,IAAI,iBAAK,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,8CAEC"}