@rsdk/db.mikro-orm 6.0.0-next.2 → 6.0.0-next.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.
@@ -1,8 +1,10 @@
1
1
  import type { LogContext, Logger, LoggerNamespace } from '@mikro-orm/core';
2
2
  import { ILogger } from '@rsdk/logging';
3
+ import { MikroOrmPluginConfig } from './mikro-orm.config';
3
4
  export declare class MikroOrmAdapter implements Logger {
5
+ private readonly config;
4
6
  private platformLogger;
5
- constructor(platformLogger: ILogger);
7
+ constructor(config: MikroOrmPluginConfig, platformLogger: ILogger);
6
8
  setDebugMode(_debugMode: boolean | LoggerNamespace[]): void;
7
9
  isEnabled(_namespace: LoggerNamespace): boolean;
8
10
  logQuery(context: LogContext): any;
@@ -15,10 +15,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.MikroOrmAdapter = 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 mikro_orm_config_1 = require("./mikro-orm.config");
19
19
  let MikroOrmAdapter = class MikroOrmAdapter {
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
  setDebugMode(_debugMode) {
@@ -35,8 +37,12 @@ let MikroOrmAdapter = class MikroOrmAdapter {
35
37
  return true;
36
38
  }
37
39
  logQuery(context) {
40
+ if (!context.query) {
41
+ this.platformLogger.warn('Try to log MikroORM query, but not query string provided');
42
+ return;
43
+ }
38
44
  const message = this.formatParts(`query: ${context.query}`, context.params && `parameters: ${JSON.stringify(context.params)}`);
39
- if (context.query === db_1.HEALTH_CHECK_QUERY) {
45
+ if (this.config.traceOnlyQueriesPattern.test(context.query)) {
40
46
  this.platformLogger.trace(message);
41
47
  }
42
48
  else {
@@ -94,7 +100,7 @@ let MikroOrmAdapter = class MikroOrmAdapter {
94
100
  exports.MikroOrmAdapter = MikroOrmAdapter;
95
101
  exports.MikroOrmAdapter = MikroOrmAdapter = __decorate([
96
102
  (0, common_1.Injectable)(),
97
- __param(0, (0, core_1.InjectLogger)('MikroOrm')),
98
- __metadata("design:paramtypes", [Object])
103
+ __param(1, (0, core_1.InjectLogger)('MikroOrm')),
104
+ __metadata("design:paramtypes", [mikro_orm_config_1.MikroOrmPluginConfig, Object])
99
105
  ], MikroOrmAdapter);
100
106
  //# sourceMappingURL=mikro-orm-logger.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm-logger.adapter.js","sourceRoot":"","sources":["../../src/providers/mikro-orm-logger.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mikro-orm-logger.adapter.js","sourceRoot":"","sources":["../../src/providers/mikro-orm-logger.adapter.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export declare class MikroOrmPluginConfig extends Config {
6
6
  poolMax: number;
7
7
  keepAlive: boolean;
8
8
  keepAliveInitialDelay: number;
9
+ traceOnlyQueriesPattern: RegExp;
9
10
  }
@@ -19,16 +19,17 @@ let MikroOrmPluginConfig = class MikroOrmPluginConfig extends core_1.Config {
19
19
  poolMax;
20
20
  keepAlive;
21
21
  keepAliveInitialDelay;
22
+ traceOnlyQueriesPattern;
22
23
  };
23
24
  exports.MikroOrmPluginConfig = MikroOrmPluginConfig;
24
25
  __decorate([
25
- (0, core_1.Property)('URL', new core_1.UrlParser(), {
26
+ (0, core_1.Property)('URL', new common_1.UrlParser(), {
26
27
  description: 'Database server url',
27
28
  }),
28
29
  __metadata("design:type", URL)
29
30
  ], MikroOrmPluginConfig.prototype, "url", void 0);
30
31
  __decorate([
31
- (0, core_1.Property)('SCHEMA', new core_1.StringParser(), {
32
+ (0, core_1.Property)('SCHEMA', new common_1.StringParser(), {
32
33
  description: (0, common_1.text) `
33
34
  Use schema for all entities.
34
35
  **Only for postgres at the moment!**
@@ -38,7 +39,7 @@ __decorate([
38
39
  __metadata("design:type", String)
39
40
  ], MikroOrmPluginConfig.prototype, "schema", void 0);
40
41
  __decorate([
41
- (0, core_1.Property)('POOL_MIN', new core_1.IntParser(), {
42
+ (0, core_1.Property)('POOL_MIN', new common_1.IntParser(), {
42
43
  defaultValue: 1,
43
44
  description: (0, common_1.text) `
44
45
  Minimum connection pool size.
@@ -48,7 +49,7 @@ __decorate([
48
49
  __metadata("design:type", Number)
49
50
  ], MikroOrmPluginConfig.prototype, "poolMin", void 0);
50
51
  __decorate([
51
- (0, core_1.Property)('POOL_MAX', new core_1.IntParser(), {
52
+ (0, core_1.Property)('POOL_MAX', new common_1.IntParser(), {
52
53
  defaultValue: 10,
53
54
  description: (0, common_1.text) `
54
55
  Maximum connection pool size.
@@ -58,7 +59,7 @@ __decorate([
58
59
  __metadata("design:type", Number)
59
60
  ], MikroOrmPluginConfig.prototype, "poolMax", void 0);
60
61
  __decorate([
61
- (0, core_1.Property)('KEEP_ALIVE', new core_1.BoolParser(), {
62
+ (0, core_1.Property)('KEEP_ALIVE', new common_1.BoolParser(), {
62
63
  defaultValue: true,
63
64
  description: (0, common_1.text) `
64
65
  Enable/disable keep-alive functionality, and optionally set the initial delay before the first keepalive probe is sent on an idle socket.
@@ -69,7 +70,7 @@ __decorate([
69
70
  __metadata("design:type", Boolean)
70
71
  ], MikroOrmPluginConfig.prototype, "keepAlive", void 0);
71
72
  __decorate([
72
- (0, core_1.Property)('KEEP_ALIVE_INITIAL_DELAY', new core_1.IntParser(), {
73
+ (0, core_1.Property)('KEEP_ALIVE_INITIAL_DELAY', new common_1.IntParser(), {
73
74
  defaultValue: undefined,
74
75
  description: (0, common_1.text) `
75
76
  Set initialDelay (in milliseconds) to set the delay between the last data packet received and the first keepalive probe.
@@ -79,6 +80,22 @@ __decorate([
79
80
  }),
80
81
  __metadata("design:type", Number)
81
82
  ], MikroOrmPluginConfig.prototype, "keepAliveInitialDelay", void 0);
83
+ __decorate([
84
+ (0, core_1.Property)('TRACE_ONLY_QUERIES_PATTERN', new common_1.RegexParser(), {
85
+ defaultValue: /^SELECT 1$/,
86
+ description: (0, common_1.text) `
87
+ Regex pattern for SQL queries that should be logged with TRACE level instead of DEBUG.
88
+ This is useful to reduce log verbosity for health checks and transaction control queries.
89
+
90
+ Default pattern matches: SELECT 1 (health check query)
91
+
92
+ You can override this pattern via environment variable. Provide the regex pattern as a string.
93
+
94
+ Example: DB_TRACE_ONLY_QUERIES_PATTERN="^(START TRANSACTION|BEGIN|COMMIT|SAVEPOINT\\s+)$"
95
+ `,
96
+ }),
97
+ __metadata("design:type", RegExp)
98
+ ], MikroOrmPluginConfig.prototype, "traceOnlyQueriesPattern", void 0);
82
99
  exports.MikroOrmPluginConfig = MikroOrmPluginConfig = __decorate([
83
100
  (0, core_1.ConfigSection)({
84
101
  name: 'mikro-orm database config',
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm.config.js","sourceRoot":"","sources":["../../src/providers/mikro-orm.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoC;AACpC,qCASoB;AAOb,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,aAAM;IAI9C,GAAG,CAAO;IASV,MAAM,CAAU;IAShB,OAAO,CAAU;IASjB,OAAO,CAAU;IAUjB,SAAS,CAAW;IAUpB,qBAAqB,CAAU;CAChC,CAAA;AApDY,oDAAoB;AAI/B;IAHC,IAAA,eAAQ,EAAC,KAAK,EAAE,IAAI,gBAAS,EAAE,EAAE;QAChC,WAAW,EAAE,qBAAqB;KACnC,CAAC;8BACI,GAAG;iDAAC;AASV;IAPC,IAAA,eAAQ,EAAC,QAAQ,EAAE,IAAI,mBAAY,EAAE,EAAE;QACtC,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;QACD,YAAY,EAAE,SAAS;KACxB,CAAC;;oDACc;AAShB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;qDACe;AASjB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;qDACe;AAUjB;IARC,IAAA,eAAQ,EAAC,YAAY,EAAE,IAAI,iBAAU,EAAE,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;uDACkB;AAUpB;IARC,IAAA,eAAQ,EAAC,0BAA0B,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrD,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;mEAC6B;+BAnDpB,oBAAoB;IALhC,IAAA,oBAAa,EAAC;QACb,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,CAAC,gBAAS,CAAC,cAAc,EAAE,gBAAS,CAAC,OAAO,CAAC;QACnD,MAAM,EAAE,IAAI;KACb,CAAC;GACW,oBAAoB,CAoDhC"}
1
+ {"version":3,"file":"mikro-orm.config.js","sourceRoot":"","sources":["../../src/providers/mikro-orm.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAOsB;AACtB,qCAAwE;AAOjE,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,aAAM;IAI9C,GAAG,CAAO;IASV,MAAM,CAAU;IAShB,OAAO,CAAU;IASjB,OAAO,CAAU;IAUjB,SAAS,CAAW;IAUpB,qBAAqB,CAAU;IAe/B,uBAAuB,CAAU;CAClC,CAAA;AAnEY,oDAAoB;AAI/B;IAHC,IAAA,eAAQ,EAAC,KAAK,EAAE,IAAI,kBAAS,EAAE,EAAE;QAChC,WAAW,EAAE,qBAAqB;KACnC,CAAC;8BACI,GAAG;iDAAC;AASV;IAPC,IAAA,eAAQ,EAAC,QAAQ,EAAE,IAAI,qBAAY,EAAE,EAAE;QACtC,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;QACD,YAAY,EAAE,SAAS;KACxB,CAAC;;oDACc;AAShB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,kBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;qDACe;AASjB;IAPC,IAAA,eAAQ,EAAC,UAAU,EAAE,IAAI,kBAAS,EAAE,EAAE;QACrC,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;qDACe;AAUjB;IARC,IAAA,eAAQ,EAAC,YAAY,EAAE,IAAI,mBAAU,EAAE,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;uDACkB;AAUpB;IARC,IAAA,eAAQ,EAAC,0BAA0B,EAAE,IAAI,kBAAS,EAAE,EAAE;QACrD,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,IAAA,aAAI,EAAA;;;;KAIhB;KACF,CAAC;;mEAC6B;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;qEAAC;+BAlEtB,oBAAoB;IALhC,IAAA,oBAAa,EAAC;QACb,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,CAAC,gBAAS,CAAC,cAAc,EAAE,gBAAS,CAAC,OAAO,CAAC;QACnD,MAAM,EAAE,IAAI;KACb,CAAC;GACW,oBAAoB,CAmEhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/db.mikro-orm",
3
- "version": "6.0.0-next.2",
3
+ "version": "6.0.0-next.21",
4
4
  "description": "Mikro-orm module for platform",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -14,14 +14,14 @@
14
14
  "prepublishOnly": "npm run build"
15
15
  },
16
16
  "dependencies": {
17
- "@rsdk/common.node": "6.0.0-next.2",
17
+ "@rsdk/common.node": "6.0.0-next.21",
18
18
  "lodash": "^4.17.21"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "@mikro-orm/core": "^5.7.12",
22
22
  "@mikro-orm/nestjs": "^5.2.3",
23
- "@nestjs/common": "^10.0.0",
24
- "@nestjs/core": "^10.0.0",
23
+ "@nestjs/common": "<=10.4.8",
24
+ "@nestjs/core": "<=10.4.8",
25
25
  "@rsdk/common": "*",
26
26
  "@rsdk/common.nestjs": "*",
27
27
  "@rsdk/core": "*",
@@ -31,5 +31,5 @@
31
31
  "reflect-metadata": "^0.1.12 || ^0.2.0",
32
32
  "rxjs": "^7.8.1"
33
33
  },
34
- "gitHead": "d051ee5232602e26554ea95e39df20c8f77a5ac3"
34
+ "gitHead": "73d61da23df1dc930049cae7c4324fa66b7680b8"
35
35
  }
@@ -1,12 +1,16 @@
1
1
  import type { LogContext, Logger, LoggerNamespace } from '@mikro-orm/core';
2
2
  import { Injectable } from '@nestjs/common';
3
3
  import { InjectLogger } from '@rsdk/core';
4
- import { HEALTH_CHECK_QUERY } from '@rsdk/db';
5
4
  import { ILogger } from '@rsdk/logging';
6
5
 
6
+ import { MikroOrmPluginConfig } from './mikro-orm.config';
7
+
7
8
  @Injectable()
8
9
  export class MikroOrmAdapter implements Logger {
9
- constructor(@InjectLogger('MikroOrm') private platformLogger: ILogger) {}
10
+ constructor(
11
+ private readonly config: MikroOrmPluginConfig,
12
+ @InjectLogger('MikroOrm') private platformLogger: ILogger,
13
+ ) {}
10
14
 
11
15
  setDebugMode(_debugMode: boolean | LoggerNamespace[]): void {
12
16
  // Так как мы управляем логированием на уровне приложения,
@@ -24,12 +28,20 @@ export class MikroOrmAdapter implements Logger {
24
28
  }
25
29
 
26
30
  logQuery(context: LogContext): any {
31
+ if (!context.query) {
32
+ this.platformLogger.warn(
33
+ 'Try to log MikroORM query, but not query string provided',
34
+ );
35
+
36
+ return;
37
+ }
38
+
27
39
  const message = this.formatParts(
28
40
  `query: ${context.query}`,
29
41
  context.params && `parameters: ${JSON.stringify(context.params)}`,
30
42
  );
31
43
 
32
- if (context.query === HEALTH_CHECK_QUERY) {
44
+ if (this.config.traceOnlyQueriesPattern.test(context.query)) {
33
45
  this.platformLogger.trace(message);
34
46
  } else {
35
47
  this.platformLogger.debug(message);
@@ -1,14 +1,12 @@
1
- import { text } 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,
10
7
  UrlParser,
11
- } from '@rsdk/core';
8
+ } from '@rsdk/common';
9
+ import { Config, ConfigSection, ConfigTag, Property } from '@rsdk/core';
12
10
 
13
11
  @ConfigSection({
14
12
  name: 'mikro-orm database config',
@@ -67,4 +65,19 @@ export class MikroOrmPluginConfig extends Config {
67
65
  `,
68
66
  })
69
67
  keepAliveInitialDelay!: number;
68
+
69
+ @Property('TRACE_ONLY_QUERIES_PATTERN', new RegexParser(), {
70
+ defaultValue: /^SELECT 1$/,
71
+ description: text`
72
+ Regex pattern for SQL queries that should be logged with TRACE level instead of DEBUG.
73
+ This is useful to reduce log verbosity for health checks and transaction control queries.
74
+
75
+ Default pattern matches: SELECT 1 (health check query)
76
+
77
+ You can override this pattern via environment variable. Provide the regex pattern as a string.
78
+
79
+ Example: DB_TRACE_ONLY_QUERIES_PATTERN="^(START TRANSACTION|BEGIN|COMMIT|SAVEPOINT\\s+)$"
80
+ `,
81
+ })
82
+ traceOnlyQueriesPattern!: RegExp;
70
83
  }