From 026a1830ef673920c46399a4212a2083f7464167 Mon Sep 17 00:00:00 2001 From: Ed Mitchell Date: Mon, 27 Nov 2023 14:39:17 -0500 Subject: [PATCH] refactor(typeorm): Update getRepositoryToken provider generation This change will make Repository generation use getEntityManagerToken instead of getConnectionToken closes #1819 --- lib/typeorm.providers.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/typeorm.providers.ts b/lib/typeorm.providers.ts index 6876bb02e..ac38852ac 100644 --- a/lib/typeorm.providers.ts +++ b/lib/typeorm.providers.ts @@ -1,6 +1,6 @@ import { Provider } from '@nestjs/common'; -import { DataSource, DataSourceOptions, getMetadataArgsStorage } from 'typeorm'; -import { getDataSourceToken, getRepositoryToken } from './common/typeorm.utils'; +import { DataSource, DataSourceOptions, EntityManager, getMetadataArgsStorage } from 'typeorm'; +import { getDataSourceToken, getEntityManagerToken, getRepositoryToken } from './common/typeorm.utils'; import { EntityClassOrSchema } from './interfaces/entity-class-or-schema.type'; export function createTypeOrmProviders( @@ -9,16 +9,16 @@ export function createTypeOrmProviders( ): Provider[] { return (entities || []).map((entity) => ({ provide: getRepositoryToken(entity, dataSource), - useFactory: (dataSource: DataSource) => { - const enitityMetadata = dataSource.entityMetadatas.find((meta) => meta.target === entity) + useFactory: (entityManager: EntityManager) => { + const enitityMetadata = entityManager.connection.entityMetadatas.find((meta) => meta.target === entity) const isTreeEntity = typeof enitityMetadata?.treeType !== 'undefined' - return isTreeEntity - ? dataSource.getTreeRepository(entity) - : dataSource.options.type === 'mongodb' - ? dataSource.getMongoRepository(entity) - : dataSource.getRepository(entity); + return isTreeEntity + ? entityManager.getTreeRepository(entity) + : entityManager.connection.options.type === 'mongodb' + ? entityManager.getMongoRepository(entity) + : entityManager.getRepository(entity); }, - inject: [getDataSourceToken(dataSource)], + inject: [getEntityManagerToken(dataSource)], /** * Extra property to workaround dynamic modules serialisation issue * that occurs when "TypeOrm#forFeature()" method is called with the same number