nestapp/src/modules/user/user.module.ts
2025-07-01 12:39:20 +08:00

46 lines
1.6 KiB
TypeScript

import { DynamicModule, forwardRef, Module } from '@nestjs/common';
import { PassportModule } from '@nestjs/passport';
import { Configure } from '@/modules/config/configure';
import { DatabaseModule } from '@/modules/database/database.module';
import { addEntities, addSubscribers } from '@/modules/database/utils';
import { RbacModule } from '@/modules/rbac/rbac.module';
import * as entities from './entities';
import * as guards from './guards';
import * as interceptors from './interceptors';
import * as repositories from './repositories';
import * as services from './services';
import * as strategies from './strategies';
import * as subscribers from './subscribers';
@Module({})
export class UserModule {
static async forRoot(configure: Configure): Promise<DynamicModule> {
return {
module: UserModule,
imports: [
PassportModule,
forwardRef(() => RbacModule),
services.TokenService.JwtModuleFactory(configure),
await addEntities(configure, Object.values(entities)),
DatabaseModule.forRepository(Object.values(repositories)),
],
providers: [
...Object.values(interceptors),
...Object.values(services),
...Object.values(strategies),
...Object.values(guards),
...(await addSubscribers(configure, Object.values(subscribers))),
],
exports: [
...Object.values(services),
DatabaseModule.forRepository(Object.values(repositories)),
],
};
}
}