Skip to content

Commit a71c354

Browse files
committed
fix: improve support for driver specific imports
Related: #123
1 parent 3656eaf commit a71c354

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

src/mikro-orm-core.module.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,15 +152,25 @@ export class MikroOrmCoreModule implements OnApplicationShutdown {
152152
}
153153

154154
try {
155+
let config;
156+
155157
if (!options || Object.keys(options).length === 0) {
156-
const config = await ConfigurationLoader.getConfiguration(false);
157-
return config.getDriver().createEntityManager();
158+
config = await ConfigurationLoader.getConfiguration(false);
159+
}
160+
161+
if (!config && 'useFactory' in options!) {
162+
config = new Configuration(await options.useFactory!(), false);
158163
}
159164

160-
if ('useFactory' in options) {
161-
const config = new Configuration(await options.useFactory!(), false);
162-
return config.getDriver().createEntityManager();
165+
if (!config && options instanceof Configuration) {
166+
config = options;
163167
}
168+
169+
if (!config && typeof options === 'object' && options && 'driver' in options) {
170+
config = new Configuration(options, false);
171+
}
172+
173+
return config?.getDriver().createEntityManager();
164174
} catch {
165175
// ignore
166176
}

tests/mikro-orm.module.test.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
import type { EntityRepository, Options } from '@mikro-orm/core';
2-
import { EntityManager, MikroORM } from '@mikro-orm/core';
1+
import { EntityRepository, Options, EntityManager, MikroORM } from '@mikro-orm/core';
32
import { SqliteDriver } from '@mikro-orm/sqlite';
43
import { Inject, Logger, Module, Scope } from '@nestjs/common';
54
import { ContextIdFactory } from '@nestjs/core';
6-
import type { TestingModule } from '@nestjs/testing';
7-
import { Test } from '@nestjs/testing';
8-
import type { MikroOrmOptionsFactory } from '../src';
9-
import { CONTEXT_NAMES, MikroOrmModule, getEntityManagerToken, getMikroORMToken, getRepositoryToken } from '../src';
5+
import { TestingModule, Test } from '@nestjs/testing';
6+
import { MikroOrmOptionsFactory, CONTEXT_NAMES, MikroOrmModule, getEntityManagerToken, getMikroORMToken, getRepositoryToken } from '../src';
107
import { Bar } from './entities/bar.entity';
118
import { Foo } from './entities/foo.entity';
129

0 commit comments

Comments
 (0)