26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm';
|
|
import type { DataSource } from 'typeorm';
|
|
|
|
import { AdminUserOrmEntity } from '@adapters/admin/persistence/typeorm/entities/AdminUserOrmEntity';
|
|
import { AdminUserOrmMapper } from '@adapters/admin/persistence/typeorm/mappers/AdminUserOrmMapper';
|
|
import { TypeOrmAdminUserRepository } from '@adapters/admin/persistence/typeorm/repositories/TypeOrmAdminUserRepository';
|
|
|
|
import { ADMIN_USER_REPOSITORY_TOKEN } from '../admin/AdminPersistenceTokens';
|
|
|
|
const typeOrmFeatureImports = [TypeOrmModule.forFeature([AdminUserOrmEntity])];
|
|
|
|
@Module({
|
|
imports: [...typeOrmFeatureImports],
|
|
providers: [
|
|
{ provide: AdminUserOrmMapper, useFactory: () => new AdminUserOrmMapper() },
|
|
{
|
|
provide: ADMIN_USER_REPOSITORY_TOKEN,
|
|
useFactory: (dataSource: DataSource, mapper: AdminUserOrmMapper) =>
|
|
new TypeOrmAdminUserRepository(dataSource, mapper),
|
|
inject: [getDataSourceToken(), AdminUserOrmMapper],
|
|
},
|
|
],
|
|
exports: [ADMIN_USER_REPOSITORY_TOKEN],
|
|
})
|
|
export class PostgresAdminPersistenceModule {} |