@@ -6,24 +6,29 @@ import {
66 Module,
77 OnApplicationShutdown,
88 Provider,
9- Type
9+ Type,
1010} from '@nestjs/common';
1111import { ModuleRef } from '@nestjs/core';
1212import { defer, lastValueFrom } from 'rxjs';
13- import { Connection, DataSource, DataSourceOptions } from 'typeorm';
13+ import {
14+ Connection,
15+ createConnection,
16+ DataSource,
17+ DataSourceOptions,
18+ } from 'typeorm';
1419import {
1520 generateString,
1621 getDataSourceName,
1722 getDataSourceToken,
1823 getEntityManagerToken,
19- handleRetry
24+ handleRetry,
2025} from './common/typeorm.utils';
2126import { EntitiesMetadataStorage } from './entities-metadata.storage';
2227import {
2328 TypeOrmDataSourceFactory,
2429 TypeOrmModuleAsyncOptions,
2530 TypeOrmModuleOptions,
26- TypeOrmOptionsFactory
31+ TypeOrmOptionsFactory,
2732} from './interfaces/typeorm-options.interface';
2833import { TYPEORM_MODULE_ID, TYPEORM_MODULE_OPTIONS } from './typeorm.constants';
2934
@@ -201,14 +206,18 @@ export class TypeOrmCoreModule implements OnApplicationShutdown {
201206 const dataSourceToken = getDataSourceName(options as DataSourceOptions);
202207 const createTypeormDataSource =
203208 dataSourceFactory ??
204- ((options: DataSourceOptions) => new DataSource(options));
209+ ((options: DataSourceOptions) => {
210+ return DataSource === undefined
211+ ? createConnection(options)
212+ : new DataSource(options);
213+ });
205214 return await lastValueFrom(
206215 defer(async () => {
207216 if (!options.autoLoadEntities) {
208217 const dataSource = await createTypeormDataSource(
209218 options as DataSourceOptions,
210219 );
211- return dataSource.initialize() ;
220+ return dataSource.initialize ? dataSource.initialize() : dataSource ;
212221 }
213222
214223 let entities = options.entities;
@@ -224,7 +233,7 @@ export class TypeOrmCoreModule implements OnApplicationShutdown {
224233 ...options,
225234 entities,
226235 } as DataSourceOptions);
227- return dataSource.initialize() ;
236+ return dataSource.initialize ? dataSource.initialize() : dataSource ;
228237 }).pipe(
229238 handleRetry(
230239 options.retryAttempts,
0 commit comments