@rsdk/db.typeorm 6.0.0-next.16 → 6.0.0-next.18

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.
@@ -1,8 +1,10 @@
1
1
  import { ILogger } from '@rsdk/logging';
2
2
  import type { Logger } from 'typeorm';
3
+ import { TypeOrmPluginConfig } from './typeorm.config';
3
4
  export declare class TypeOrmLoggerAdapter implements Logger {
5
+ private readonly config;
4
6
  private platformLogger;
5
- constructor(platformLogger: ILogger);
7
+ constructor(config: TypeOrmPluginConfig, platformLogger: ILogger);
6
8
  logQuery(query: string, parameters?: any[]): any;
7
9
  logMigration(message: string): any;
8
10
  formatParts(...parts: (string | boolean | undefined)[]): string;
@@ -15,15 +15,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TypeOrmLoggerAdapter = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const core_1 = require("@rsdk/core");
18
- const db_1 = require("@rsdk/db");
18
+ const typeorm_config_1 = require("./typeorm.config");
19
19
  let TypeOrmLoggerAdapter = class TypeOrmLoggerAdapter {
20
+ config;
20
21
  platformLogger;
21
- constructor(platformLogger) {
22
+ constructor(config, platformLogger) {
23
+ this.config = config;
22
24
  this.platformLogger = platformLogger;
23
25
  }
24
26
  logQuery(query, parameters) {
25
27
  const message = this.formatParts(`query: ${query}`, parameters && `parameters: ${JSON.stringify(parameters)}`);
26
- if (query === db_1.HEALTH_CHECK_QUERY) {
28
+ if (this.config.traceOnlyQueriesPattern.test(query)) {
27
29
  this.platformLogger.trace(message);
28
30
  }
29
31
  else {
@@ -62,7 +64,7 @@ let TypeOrmLoggerAdapter = class TypeOrmLoggerAdapter {
62
64
  exports.TypeOrmLoggerAdapter = TypeOrmLoggerAdapter;
63
65
  exports.TypeOrmLoggerAdapter = TypeOrmLoggerAdapter = __decorate([
64
66
  (0, common_1.Injectable)(),
65
- __param(0, (0, core_1.InjectLogger)('TypeOrm')),
66
- __metadata("design:paramtypes", [Object])
67
+ __param(1, (0, core_1.InjectLogger)('TypeOrm')),
68
+ __metadata("design:paramtypes", [typeorm_config_1.TypeOrmPluginConfig, Object])
67
69
  ], TypeOrmLoggerAdapter);
68
70
  //# sourceMappingURL=typeorm-logger.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeorm-logger.adapter.js","sourceRoot":"","sources":["../../src/providers/typeorm-logger.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAA0C;AAC1C,iCAA8C;AAKvC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACc;IAA7C,YAA6C,cAAuB;QAAvB,mBAAc,GAAd,cAAc,CAAS;IAAG,CAAC;IAExE,QAAQ,CAAC,KAAa,EAAE,UAAkB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAC9B,UAAU,KAAK,EAAE,EACjB,UAAU,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAC1D,CAAC;QAEF,IAAI,KAAK,KAAK,uBAAkB,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,WAAW,CAAC,GAAG,KAAuC;QACpD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,UAAkB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAC9B,UAAU,KAAK,EAAE,EACjB,UAAU,IAAI,cAAc,GAAG,UAAU,EACzC,SAAS,IAAI,EAAE,CAChB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,KAAqB,EAAE,KAAa,EAAE,UAAkB;QACpE,MAAM,KAAK,GAAG;YACZ,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjC,UAAU,KAAK,EAAE;YACjB,UAAU,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;SAC1D,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,KAA8B,EAAE,OAAY;QAC9C,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAxDY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,mBAAY,EAAC,SAAS,CAAC,CAAA;;GADzB,oBAAoB,CAwDhC"}
1
+ {"version":3,"file":"typeorm-logger.adapter.js","sourceRoot":"","sources":["../../src/providers/typeorm-logger.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAA0C;AAI1C,qDAAuD;AAGhD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAEZ;IACgB;IAFnC,YACmB,MAA2B,EACX,cAAuB;QADvC,WAAM,GAAN,MAAM,CAAqB;QACX,mBAAc,GAAd,cAAc,CAAS;IACvD,CAAC;IAEJ,QAAQ,CAAC,KAAa,EAAE,UAAkB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAC9B,UAAU,KAAK,EAAE,EACjB,UAAU,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAC1D,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,WAAW,CAAC,GAAG,KAAuC;QACpD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,UAAkB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAC9B,UAAU,KAAK,EAAE,EACjB,UAAU,IAAI,cAAc,GAAG,UAAU,EACzC,SAAS,IAAI,EAAE,CAChB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,KAAqB,EAAE,KAAa,EAAE,UAAkB;QACpE,MAAM,KAAK,GAAG;YACZ,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjC,UAAU,KAAK,EAAE;YACjB,UAAU,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;SAC1D,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,KAA8B,EAAE,OAAY;QAC9C,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AA3DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,mBAAY,EAAC,SAAS,CAAC,CAAA;qCADC,oCAAmB;GAFnC,oBAAoB,CA2DhC"}
@@ -9,4 +9,5 @@ export declare class TypeOrmPluginConfig extends Config {
9
9
  reconnectInterval: Timespan;
10
10
  keepAlive: boolean;
11
11
  keepAliveInitialDelay: number;
12
+ traceOnlyQueriesPattern: RegExp;
12
13
  }
@@ -21,16 +21,17 @@ let TypeOrmPluginConfig = class TypeOrmPluginConfig extends core_1.Config {
21
21
  reconnectInterval;
22
22
  keepAlive;
23
23
  keepAliveInitialDelay;
24
+ traceOnlyQueriesPattern;
24
25
  };
25
26
  exports.TypeOrmPluginConfig = TypeOrmPluginConfig;
26
27
  __decorate([
27
- (0, core_1.Property)('URL', new core_1.UrlParser(), {
28
+ (0, core_1.Property)('URL', new common_1.UrlParser(), {
28
29
  description: 'Database server url',
29
30
  }),
30
31
  __metadata("design:type", URL)
31
32
  ], TypeOrmPluginConfig.prototype, "url", void 0);
32
33
  __decorate([
33
- (0, core_1.Property)('SCHEMA', new core_1.StringParser(), {
34
+ (0, core_1.Property)('SCHEMA', new common_1.StringParser(), {
34
35
  description: (0, common_1.text) `
35
36
  Use schema for all entities.
36
37
  **Only for postgres at the moment!**
@@ -40,7 +41,7 @@ __decorate([
40
41
  __metadata("design:type", String)
41
42
  ], TypeOrmPluginConfig.prototype, "schema", void 0);
42
43
  __decorate([
43
- (0, core_1.Property)('POOL_MIN', new core_1.IntParser(), {
44
+ (0, core_1.Property)('POOL_MIN', new common_1.IntParser(), {
44
45
  defaultValue: 1,
45
46
  description: (0, common_1.text) `
46
47
  Minimum connection pool size.
@@ -50,7 +51,7 @@ __decorate([
50
51
  __metadata("design:type", Number)
51
52
  ], TypeOrmPluginConfig.prototype, "poolMin", void 0);
52
53
  __decorate([
53
- (0, core_1.Property)('POOL_MAX', new core_1.IntParser(), {
54
+ (0, core_1.Property)('POOL_MAX', new common_1.IntParser(), {
54
55
  defaultValue: 10,
55
56
  description: (0, common_1.text) `
56
57
  Maximum connection pool size.
@@ -60,21 +61,21 @@ __decorate([
60
61
  __metadata("design:type", Number)
61
62
  ], TypeOrmPluginConfig.prototype, "poolMax", void 0);
62
63
  __decorate([
63
- (0, core_1.Property)('RECONNECT_ATTEMPTS', new core_1.IntParser(), {
64
+ (0, core_1.Property)('RECONNECT_ATTEMPTS', new common_1.IntParser(), {
64
65
  defaultValue: Number.POSITIVE_INFINITY,
65
66
  description: 'Retry attempt count before give up',
66
67
  }),
67
68
  __metadata("design:type", Number)
68
69
  ], TypeOrmPluginConfig.prototype, "reconnectAttempts", void 0);
69
70
  __decorate([
70
- (0, core_1.Property)('RECONNECT_INTERVAL', new core_1.TimespanParser(), {
71
+ (0, core_1.Property)('RECONNECT_INTERVAL', new common_1.TimespanParser(), {
71
72
  defaultValue: new common_1.Timespan(1, 's'),
72
73
  description: 'Delay between retries',
73
74
  }),
74
75
  __metadata("design:type", common_1.Timespan)
75
76
  ], TypeOrmPluginConfig.prototype, "reconnectInterval", void 0);
76
77
  __decorate([
77
- (0, core_1.Property)('KEEP_ALIVE', new core_1.BoolParser(), {
78
+ (0, core_1.Property)('KEEP_ALIVE', new common_1.BoolParser(), {
78
79
  defaultValue: true,
79
80
  description: (0, common_1.text) `
80
81
  Enable/disable keep-alive functionality, and optionally set the initial delay before the first keepalive probe is sent on an idle socket.
@@ -85,7 +86,7 @@ __decorate([
85
86
  __metadata("design:type", Boolean)
86
87
  ], TypeOrmPluginConfig.prototype, "keepAlive", void 0);
87
88
  __decorate([
88
- (0, core_1.Property)('KEEP_ALIVE_INITIAL_DELAY', new core_1.IntParser(), {
89
+ (0, core_1.Property)('KEEP_ALIVE_INITIAL_DELAY', new common_1.IntParser(), {
89
90
  defaultValue: undefined,
90
91
  description: (0, common_1.text) `
91
92
  Set initialDelay (in milliseconds) to set the delay between the last data packet received and the first keepalive probe.
@@ -95,6 +96,22 @@ __decorate([
95
96
  }),
96
97
  __metadata("design:type", Number)
97
98
  ], TypeOrmPluginConfig.prototype, "keepAliveInitialDelay", void 0);
99
+ __decorate([
100
+ (0, core_1.Property)('TRACE_ONLY_QUERIES_PATTERN', new common_1.RegexParser(), {
101
+ defaultValue: /^SELECT 1$/,
102
+ description: (0, common_1.text) `
103
+ Regex pattern for SQL queries that should be logged with TRACE level instead of DEBUG.
104
+ This is useful to reduce log verbosity for health checks and transaction control queries.
105
+
106
+ Default pattern matches: SELECT 1 (health check query)
107
+
108
+ You can override this pattern via environment variable. Provide the regex pattern as a string.
109
+
110
+ Example: DB_TRACE_ONLY_QUERIES_PATTERN="^(START TRANSACTION|BEGIN|COMMIT|SAVEPOINT\\s+)$"
111
+ `,
112
+ }),
113
+ __metadata("design:type", RegExp)
114
+ ], TypeOrmPluginConfig.prototype, "traceOnlyQueriesPattern", void 0);
98
115
  exports.TypeOrmPluginConfig = TypeOrmPluginConfig = __decorate([
99
116
  (0, core_1.ConfigSection)({
100
117
  name: 'typeorm database config',
@@ -1 +1 @@
1
- {"version":3,"file":"typeorm.config.js","sourceRoot":"","sources":["../../src/providers/typeorm.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAA8C;AAC9C,qCAUoB;AAOb,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAM;IAI7C,GAAG,CAAO;IASV,MAAM,CAAU;IAShB,OAAO,CAAU;IASjB,OAAO,CAAU;IAMjB,iBAAiB,CAAU;IAM3B,iBAAiB,CAAY;IAU7B,SAAS,CAAW;IAUpB,qBAAqB,CAAU;CAChC,CAAA;AAhEY,kDAAmB;AAI9B;IAHC,IAAA,eAAQ,EAAC,KAAK,EAAE,IAAI,gBAAS,EAAE,EAAE;QAChC,WAAW,EAAE,qBAAqB;KACnC,CAAC;8BACI,GAAG;gDAAC;AASV;IAPC,IAAA,eAAQ,EAAC,QAAQ,EAAE,IAAI,mBAAY,EAAE,EAAE;QACtC,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;QACD,YAAY,EAAE,SAAS;KACxB,CAAC;;mDACc;AAShB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;oDACe;AASjB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;oDACe;AAMjB;IAJC,IAAA,eAAQ,EAAC,oBAAoB,EAAE,IAAI,gBAAS,EAAE,EAAE;QAC/C,YAAY,EAAE,MAAM,CAAC,iBAAiB;QACtC,WAAW,EAAE,oCAAoC;KAClD,CAAC;;8DACyB;AAM3B;IAJC,IAAA,eAAQ,EAAC,oBAAoB,EAAE,IAAI,qBAAc,EAAE,EAAE;QACpD,YAAY,EAAE,IAAI,iBAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAClC,WAAW,EAAE,uBAAuB;KACrC,CAAC;8BACkB,iBAAQ;8DAAC;AAU7B;IARC,IAAA,eAAQ,EAAC,YAAY,EAAE,IAAI,iBAAU,EAAE,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;sDACkB;AAUpB;IARC,IAAA,eAAQ,EAAC,0BAA0B,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrD,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;kEAC6B;8BA/DpB,mBAAmB;IAL/B,IAAA,oBAAa,EAAC;QACb,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,CAAC,gBAAS,CAAC,cAAc,EAAE,gBAAS,CAAC,OAAO,CAAC;QACnD,MAAM,EAAE,IAAI;KACb,CAAC;GACW,mBAAmB,CAgE/B"}
1
+ {"version":3,"file":"typeorm.config.js","sourceRoot":"","sources":["../../src/providers/typeorm.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCASsB;AACtB,qCAAwE;AAOjE,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAM;IAI7C,GAAG,CAAO;IASV,MAAM,CAAU;IAShB,OAAO,CAAU;IASjB,OAAO,CAAU;IAMjB,iBAAiB,CAAU;IAM3B,iBAAiB,CAAY;IAU7B,SAAS,CAAW;IAUpB,qBAAqB,CAAU;IAe/B,uBAAuB,CAAU;CAClC,CAAA;AA/EY,kDAAmB;AAI9B;IAHC,IAAA,eAAQ,EAAC,KAAK,EAAE,IAAI,kBAAS,EAAE,EAAE;QAChC,WAAW,EAAE,qBAAqB;KACnC,CAAC;8BACI,GAAG;gDAAC;AASV;IAPC,IAAA,eAAQ,EAAC,QAAQ,EAAE,IAAI,qBAAY,EAAE,EAAE;QACtC,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;QACD,YAAY,EAAE,SAAS;KACxB,CAAC;;mDACc;AAShB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,kBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;oDACe;AASjB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,kBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;oDACe;AAMjB;IAJC,IAAA,eAAQ,EAAC,oBAAoB,EAAE,IAAI,kBAAS,EAAE,EAAE;QAC/C,YAAY,EAAE,MAAM,CAAC,iBAAiB;QACtC,WAAW,EAAE,oCAAoC;KAClD,CAAC;;8DACyB;AAM3B;IAJC,IAAA,eAAQ,EAAC,oBAAoB,EAAE,IAAI,uBAAc,EAAE,EAAE;QACpD,YAAY,EAAE,IAAI,iBAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAClC,WAAW,EAAE,uBAAuB;KACrC,CAAC;8BACkB,iBAAQ;8DAAC;AAU7B;IARC,IAAA,eAAQ,EAAC,YAAY,EAAE,IAAI,mBAAU,EAAE,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;sDACkB;AAUpB;IARC,IAAA,eAAQ,EAAC,0BAA0B,EAAE,IAAI,kBAAS,EAAE,EAAE;QACrD,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;kEAC6B;AAe/B;IAbC,IAAA,eAAQ,EAAC,4BAA4B,EAAE,IAAI,oBAAW,EAAE,EAAE;QACzD,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,IAAA,aAAI,EAAA;;;;;;;;;KAShB;KACF,CAAC;8BACwB,MAAM;oEAAC;8BA9EtB,mBAAmB;IAL/B,IAAA,oBAAa,EAAC;QACb,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,CAAC,gBAAS,CAAC,cAAc,EAAE,gBAAS,CAAC,OAAO,CAAC;QACnD,MAAM,EAAE,IAAI;KACb,CAAC;GACW,mBAAmB,CA+E/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/db.typeorm",
3
- "version": "6.0.0-next.16",
3
+ "version": "6.0.0-next.18",
4
4
  "description": "TypeOrm module for platform",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -29,5 +29,5 @@
29
29
  "rxjs": "^7.8.1",
30
30
  "typeorm": "^0.3.12"
31
31
  },
32
- "gitHead": "0b90b6ade9d631495f7d4a9d2f7739f0ca4cd9f8"
32
+ "gitHead": "0a880d25cbd3d4e40ff1be80802a02836bf3e1cc"
33
33
  }
@@ -1,12 +1,16 @@
1
1
  import { Injectable } from '@nestjs/common';
2
2
  import { InjectLogger } from '@rsdk/core';
3
- import { HEALTH_CHECK_QUERY } from '@rsdk/db';
4
3
  import { ILogger } from '@rsdk/logging';
5
4
  import type { Logger } from 'typeorm';
6
5
 
6
+ import { TypeOrmPluginConfig } from './typeorm.config';
7
+
7
8
  @Injectable()
8
9
  export class TypeOrmLoggerAdapter implements Logger {
9
- constructor(@InjectLogger('TypeOrm') private platformLogger: ILogger) {}
10
+ constructor(
11
+ private readonly config: TypeOrmPluginConfig,
12
+ @InjectLogger('TypeOrm') private platformLogger: ILogger,
13
+ ) {}
10
14
 
11
15
  logQuery(query: string, parameters?: any[]): any {
12
16
  const message = this.formatParts(
@@ -14,7 +18,7 @@ export class TypeOrmLoggerAdapter implements Logger {
14
18
  parameters && `parameters: ${JSON.stringify(parameters)}`,
15
19
  );
16
20
 
17
- if (query === HEALTH_CHECK_QUERY) {
21
+ if (this.config.traceOnlyQueriesPattern.test(query)) {
18
22
  this.platformLogger.trace(message);
19
23
  } else {
20
24
  this.platformLogger.debug(message);
@@ -1,15 +1,14 @@
1
- import { text, Timespan } from '@rsdk/common';
2
1
  import {
3
2
  BoolParser,
4
- Config,
5
- ConfigSection,
6
- ConfigTag,
7
3
  IntParser,
8
- Property,
4
+ RegexParser,
9
5
  StringParser,
6
+ text,
7
+ Timespan,
10
8
  TimespanParser,
11
9
  UrlParser,
12
- } from '@rsdk/core';
10
+ } from '@rsdk/common';
11
+ import { Config, ConfigSection, ConfigTag, Property } from '@rsdk/core';
13
12
 
14
13
  @ConfigSection({
15
14
  name: 'typeorm database config',
@@ -80,4 +79,19 @@ export class TypeOrmPluginConfig extends Config {
80
79
  `,
81
80
  })
82
81
  keepAliveInitialDelay!: number;
82
+
83
+ @Property('TRACE_ONLY_QUERIES_PATTERN', new RegexParser(), {
84
+ defaultValue: /^SELECT 1$/,
85
+ description: text`
86
+ Regex pattern for SQL queries that should be logged with TRACE level instead of DEBUG.
87
+ This is useful to reduce log verbosity for health checks and transaction control queries.
88
+
89
+ Default pattern matches: SELECT 1 (health check query)
90
+
91
+ You can override this pattern via environment variable. Provide the regex pattern as a string.
92
+
93
+ Example: DB_TRACE_ONLY_QUERIES_PATTERN="^(START TRANSACTION|BEGIN|COMMIT|SAVEPOINT\\s+)$"
94
+ `,
95
+ })
96
+ traceOnlyQueriesPattern!: RegExp;
83
97
  }