@rsdk/db.mikro-orm 5.9.0-next.1 → 5.9.0-next.3

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.
@@ -14,4 +14,5 @@ export declare class MikroOrmPlugin implements PlatformAppPlugin {
14
14
  modules(): (Constructor | DynamicModule | Promise<DynamicModule>)[];
15
15
  errorTransformers(): IErrorsTransformer[];
16
16
  private getMigrationsOption;
17
+ private mapTypeToDriver;
17
18
  }
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ /* eslint-disable import/no-extraneous-dependencies */
3
+ /* eslint-disable @typescript-eslint/no-var-requires */
2
4
  /* eslint-disable @typescript-eslint/ban-types */
3
5
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -47,7 +49,7 @@ class MikroOrmPlugin {
47
49
  inject: [mikro_orm_config_1.MikroOrmPluginConfig, mikro_orm_logger_adapter_1.MikroOrmAdapter, core_1.APP_NAME],
48
50
  useFactory: (config, logger, appName) => {
49
51
  return (0, lodash_1.default)({
50
- type: this.options.type,
52
+ driver: this.options.driver ?? this.mapTypeToDriver(this.options.type),
51
53
  clientUrl: config.url.toString(),
52
54
  ...(config.schema && {
53
55
  schema: config.schema,
@@ -88,6 +90,27 @@ class MikroOrmPlugin {
88
90
  getMigrationsOption() {
89
91
  return [node_path_1.default.resolve(process.cwd(), 'dist/mikro-orm/migrations')];
90
92
  }
93
+ mapTypeToDriver(type) {
94
+ try {
95
+ switch (type) {
96
+ case 'mongo':
97
+ return require('@mikro-orm/mongodb').MongoDriver;
98
+ case 'mysql':
99
+ return require('@mikro-orm/mysql').MySqlDriver;
100
+ case 'mariadb':
101
+ return require('@mikro-orm/mariadb').MariaDbDriver;
102
+ case 'sqlite':
103
+ return require('@mikro-orm/sqlite').SqliteDriver;
104
+ case 'better-sqlite':
105
+ return require('@mikro-orm/better-sqlite').BetterSqliteDriver;
106
+ default:
107
+ return require('@mikro-orm/postgresql').PostgreSqlDriver;
108
+ }
109
+ }
110
+ catch {
111
+ throw new core_1.NoInitException(MikroOrmPlugin.name, type, 'You probably should install package with driver for your DB');
112
+ }
113
+ }
91
114
  }
92
115
  exports.MikroOrmPlugin = MikroOrmPlugin;
93
116
  //# sourceMappingURL=mikro-orm.plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm.plugin.js","sourceRoot":"","sources":["../src/mikro-orm.plugin.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;;;;AAGjD,8CAAmD;AAQnD,qCAAsC;AACtC,iCAAmD;AACnD,2CAA8C;AAC9C,oDAAuB;AACvB,0DAA6B;AAE7B,mEAAoE;AACpE,mFAAuE;AACvE,iFAA0E;AAC1E,2CAAsD;AAGtD,MAAa,cAAc;IAMI;IALrB,MAAM,CAAU,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEtE;;OAEG;IACH,YAA6B,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAE/D,IAAI,QAAQ;QACV,OAAO,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;IACnC,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO;YACL,uBAAc,CAAC,YAAY,CAAC;gBAC1B,OAAO,EAAE;oBACP;wBACE,MAAM,EAAE,uBAAc;wBACtB,SAAS,EAAE,CAAC,mCAAuB,EAAE,0CAAe,CAAC;wBACrD,OAAO,EAAE,CAAC,0CAAe,CAAC;qBAC3B;iBACF;gBACD,MAAM,EAAE,CAAC,uCAAoB,EAAE,0CAAe,EAAE,eAAQ,CAAC;gBACzD,UAAU,EAAE,CACV,MAA4B,EAC5B,MAAuB,EACvB,OAAe,EACY,EAAE;oBAC7B,OAAO,IAAA,gBAAC,EAA4B;wBAClC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;wBACvB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAChC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI;4BACnB,MAAM,EAAE,MAAM,CAAC,MAAM;yBACtB,CAAC;wBACF,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ;wBAChC,IAAI,EAAE,OAAO,GAAG,YAAY;wBAC5B,IAAI,EAAE;4BACJ,GAAG,EAAE,MAAM,CAAC,OAAO;4BACnB,GAAG,EAAE,MAAM,CAAC,OAAO;yBACpB;wBACD,UAAU,EAAE;4BACV,SAAS,EAAE,sBAAsB;4BACjC,IAAI,EAAE,cAAc;4BACpB,IAAI,EAAE,gBAAgB;yBACvB;wBACD,kBAAkB,EAAE,IAAI;wBACxB,aAAa,EAAE;4BACb,UAAU,EAAE;gCACV,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gCACnD,GAAG,EAAE,IAAA,4BAAuB,EAAC,MAAM,CAAC;6BACrC;yBACF;wBACD,GAAI,IAAI,CAAC,OAAO,CAAC,cAAsB;qBACxC,CAAC;yBACC,MAAM,CAAC,gBAAC,CAAC,WAAW,CAAC;yBACrB,MAAM,CAAC,gBAAC,CAAC,MAAM,CAAC;yBAChB,KAAK,EAAE,CAAC;gBACb,CAAC;aACF,CAAC;SACH,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO,CAAC,IAAI,uDAAwB,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEO,mBAAmB;QACzB,OAAO,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACpE,CAAC;;AAhFH,wCAiFC"}
1
+ {"version":3,"file":"mikro-orm.plugin.js","sourceRoot":"","sources":["../src/mikro-orm.plugin.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,16 @@
1
1
  import type { MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';
2
2
  import type { Type } from '@nestjs/common';
3
- export interface MikroOrmPluginOptions {
4
- type: NonNullable<MikroOrmModuleSyncOptions['type']>;
3
+ export type DriverType = 'mongo' | 'mysql' | 'mariadb' | 'postgresql' | 'sqlite' | 'better-sqlite';
4
+ export type MikroOrmPluginOptions = {
5
5
  entitiesTs: NonNullable<MikroOrmModuleSyncOptions['entitiesTs'] | Type>[];
6
- overrideConfig?: Partial<Omit<MikroOrmModuleSyncOptions, 'type'>>;
7
- }
6
+ overrideConfig?: Partial<Omit<MikroOrmModuleSyncOptions, 'driver'>>;
7
+ } & ({
8
+ driver: NonNullable<MikroOrmModuleSyncOptions['driver']>;
9
+ type?: never;
10
+ } | {
11
+ driver?: never;
12
+ /**
13
+ * @deprecated use "driver" instead
14
+ */
15
+ type: DriverType;
16
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/db.mikro-orm",
3
- "version": "5.9.0-next.1",
3
+ "version": "5.9.0-next.3",
4
4
  "description": "Mikro-orm module for platform",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -17,8 +17,14 @@
17
17
  "lodash": "^4.17.21"
18
18
  },
19
19
  "peerDependencies": {
20
- "@mikro-orm/core": "^5.7.12",
21
- "@mikro-orm/nestjs": "^5.2.3",
20
+ "@mikro-orm/better-sqlite": "^5.7.12 || ^6.4.0",
21
+ "@mikro-orm/core": "^5.7.12 || ^6.4.0",
22
+ "@mikro-orm/mariadb": "^5.7.12 || ^6.4.0",
23
+ "@mikro-orm/mongodb": "^5.7.12 || ^6.4.0",
24
+ "@mikro-orm/mysql": "^5.7.12 || ^6.4.0",
25
+ "@mikro-orm/nestjs": "^5.2.3 || ^6.1.0",
26
+ "@mikro-orm/postgresql": "^5.7.12 || ^6.4.0",
27
+ "@mikro-orm/sqlite": "^5.7.12 || ^6.4.0",
22
28
  "@nestjs/common": "^10.0.0",
23
29
  "@nestjs/core": "^10.0.0",
24
30
  "@rsdk/common": "*",
@@ -30,5 +36,25 @@
30
36
  "reflect-metadata": "^0.1.12 || ^0.2.0",
31
37
  "rxjs": "^7.1.0"
32
38
  },
33
- "gitHead": "0ac1c409f8e5f7c79d5625a72950169d46e04b00"
39
+ "peerDependenciesMeta": {
40
+ "@mikro-orm/better-sqlite": {
41
+ "optional": true
42
+ },
43
+ "@mikro-orm/mariadb": {
44
+ "optional": true
45
+ },
46
+ "@mikro-orm/mongodb": {
47
+ "optional": true
48
+ },
49
+ "@mikro-orm/mysql": {
50
+ "optional": true
51
+ },
52
+ "@mikro-orm/postgresql": {
53
+ "optional": true
54
+ },
55
+ "@mikro-orm/sqlite": {
56
+ "optional": true
57
+ }
58
+ },
59
+ "gitHead": "12aa57867964cfb626c6e16c87aa3620643984ba"
34
60
  }
@@ -1,3 +1,5 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ /* eslint-disable @typescript-eslint/no-var-requires */
1
3
  /* eslint-disable @typescript-eslint/ban-types */
2
4
 
3
5
  import type { MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';
@@ -9,7 +11,7 @@ import type {
9
11
  IErrorsTransformer,
10
12
  PlatformAppPlugin,
11
13
  } from '@rsdk/core';
12
- import { APP_NAME } from '@rsdk/core';
14
+ import { APP_NAME, NoInitException } from '@rsdk/core';
13
15
  import { getSecureContextOptions } from '@rsdk/db';
14
16
  import { LoggerFactory } from '@rsdk/logging';
15
17
  import _ from 'lodash';
@@ -19,7 +21,7 @@ import { MikroOrmPluginConfig } from './providers/mikro-orm.config';
19
21
  import { MikroOrmAdapter } from './providers/mikro-orm-logger.adapter';
20
22
  import { MikroOrmErrorTransformer } from './mikro-orm.errors-transformer';
21
23
  import { MikroOrmHealthIndicator } from './providers';
22
- import type { MikroOrmPluginOptions } from './types';
24
+ import type { DriverType, MikroOrmPluginOptions } from './types';
23
25
 
24
26
  export class MikroOrmPlugin implements PlatformAppPlugin {
25
27
  private static readonly logger = LoggerFactory.create(MikroOrmPlugin);
@@ -59,7 +61,8 @@ export class MikroOrmPlugin implements PlatformAppPlugin {
59
61
  appName: string,
60
62
  ): MikroOrmModuleSyncOptions => {
61
63
  return _(<MikroOrmModuleSyncOptions>{
62
- type: this.options.type,
64
+ driver:
65
+ this.options.driver ?? this.mapTypeToDriver(this.options.type),
63
66
  clientUrl: config.url.toString(),
64
67
  ...(config.schema && {
65
68
  schema: config.schema,
@@ -102,4 +105,31 @@ export class MikroOrmPlugin implements PlatformAppPlugin {
102
105
  private getMigrationsOption(): string[] {
103
106
  return [path.resolve(process.cwd(), 'dist/mikro-orm/migrations')];
104
107
  }
108
+
109
+ private mapTypeToDriver(
110
+ type: DriverType,
111
+ ): MikroOrmModuleSyncOptions['driver'] {
112
+ try {
113
+ switch (type) {
114
+ case 'mongo':
115
+ return require('@mikro-orm/mongodb').MongoDriver;
116
+ case 'mysql':
117
+ return require('@mikro-orm/mysql').MySqlDriver;
118
+ case 'mariadb':
119
+ return require('@mikro-orm/mariadb').MariaDbDriver;
120
+ case 'sqlite':
121
+ return require('@mikro-orm/sqlite').SqliteDriver;
122
+ case 'better-sqlite':
123
+ return require('@mikro-orm/better-sqlite').BetterSqliteDriver;
124
+ default:
125
+ return require('@mikro-orm/postgresql').PostgreSqlDriver;
126
+ }
127
+ } catch {
128
+ throw new NoInitException(
129
+ MikroOrmPlugin.name,
130
+ type,
131
+ 'You probably should install package with driver for your DB',
132
+ );
133
+ }
134
+ }
105
135
  }
package/src/types.ts CHANGED
@@ -1,8 +1,28 @@
1
1
  import type { MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';
2
2
  import type { Type } from '@nestjs/common';
3
3
 
4
- export interface MikroOrmPluginOptions {
5
- type: NonNullable<MikroOrmModuleSyncOptions['type']>;
4
+ export type DriverType =
5
+ | 'mongo'
6
+ | 'mysql'
7
+ | 'mariadb'
8
+ | 'postgresql'
9
+ | 'sqlite'
10
+ | 'better-sqlite';
11
+
12
+ export type MikroOrmPluginOptions = {
6
13
  entitiesTs: NonNullable<MikroOrmModuleSyncOptions['entitiesTs'] | Type>[];
7
- overrideConfig?: Partial<Omit<MikroOrmModuleSyncOptions, 'type'>>;
8
- }
14
+ overrideConfig?: Partial<Omit<MikroOrmModuleSyncOptions, 'driver'>>;
15
+ } & (
16
+ | {
17
+ driver: NonNullable<MikroOrmModuleSyncOptions['driver']>;
18
+ type?: never;
19
+ }
20
+ | {
21
+ driver?: never;
22
+
23
+ /**
24
+ * @deprecated use "driver" instead
25
+ */
26
+ type: DriverType;
27
+ }
28
+ );