Skip to content

Commit 216b496

Browse files
refactor(): adjust to the code style
1 parent e870e41 commit 216b496

File tree

4 files changed

+43
-36
lines changed

4 files changed

+43
-36
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import {
2+
AbstractRepository,
3+
getMetadataArgsStorage,
4+
Repository,
5+
} from 'typeorm';
6+
import { EntityClassOrSchema } from '../interfaces/entity-class-or-schema.type';
7+
8+
export function getCustomRepositoryEntity(
9+
entities: EntityClassOrSchema[],
10+
): Array<EntityClassOrSchema> {
11+
const customRepositoryEntities = new Array<EntityClassOrSchema>();
12+
const typeormEntityRepositories = getMetadataArgsStorage().entityRepositories;
13+
14+
for (const entity of entities) {
15+
const isCustomRepository =
16+
entity instanceof Function &&
17+
(entity.prototype instanceof Repository ||
18+
entity.prototype instanceof AbstractRepository);
19+
if (isCustomRepository) {
20+
const entityRepositoryMetadataArgs = typeormEntityRepositories.find(
21+
(repository) => {
22+
return (
23+
repository.target ===
24+
(entity instanceof Function ? entity : (entity as any)?.constructor)
25+
);
26+
},
27+
);
28+
if (entityRepositoryMetadataArgs) {
29+
const targetEntity = entityRepositoryMetadataArgs.entity as EntityClassOrSchema;
30+
const isEntityRegisteredAlready = entities.indexOf(targetEntity) !== -1;
31+
32+
if (!isEntityRegisteredAlready) {
33+
customRepositoryEntities.push(targetEntity);
34+
}
35+
}
36+
}
37+
}
38+
return customRepositoryEntities;
39+
}

lib/helpers/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './get-custom-repository-entity';

lib/typeorm.custom.repository.ts

-33
This file was deleted.

lib/typeorm.module.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { DynamicModule, Module } from '@nestjs/common';
2-
import { Connection, ConnectionOptions, EntitySchema } from 'typeorm';
2+
import { Connection, ConnectionOptions } from 'typeorm';
33
import { EntitiesMetadataStorage } from './entities-metadata.storage';
4+
import { getCustomRepositoryEntity } from './helpers/get-custom-repository-entity';
45
import { EntityClassOrSchema } from './interfaces/entity-class-or-schema.type';
56
import {
67
TypeOrmModuleAsyncOptions,
@@ -9,7 +10,6 @@ import {
910
import { TypeOrmCoreModule } from './typeorm-core.module';
1011
import { DEFAULT_CONNECTION_NAME } from './typeorm.constants';
1112
import { createTypeOrmProviders } from './typeorm.providers';
12-
import {getCustomRepositoryEntity} from "./typeorm.custom.repository";
1313

1414
@Module({})
1515
export class TypeOrmModule {
@@ -28,7 +28,7 @@ export class TypeOrmModule {
2828
| string = DEFAULT_CONNECTION_NAME,
2929
): DynamicModule {
3030
const providers = createTypeOrmProviders(entities, connection);
31-
let customRepositoryEntities = getCustomRepositoryEntity(entities);
31+
const customRepositoryEntities = getCustomRepositoryEntity(entities);
3232
EntitiesMetadataStorage.addEntitiesByConnection(connection, [
3333
...entities,
3434
...customRepositoryEntities,

0 commit comments

Comments
 (0)