import { Module } from '@nestjs/common'; import { PrismaMongoModule } from '../../prisma/prisma-mongo.module'; import { ImageConfigService } from './image-config.service'; import { MediaManagerModule } from '@box/core/media-manager/media-manager.module'; const mediaManagerModule = MediaManagerModule.registerAsync({ imports: [PrismaMongoModule], useFactory: async (imageConfigService: ImageConfigService) => { const imageConfig = await imageConfigService.getImageConfig(); return { localRoot: imageConfig.local?.rootPath, aws: imageConfig.s3 ? { region: imageConfig.s3.region, endpoint: imageConfig.s3.endpointUrl, accessKeyId: imageConfig.s3.accessKeyId, secretAccessKey: imageConfig.s3.secretAccessKey, bucket: imageConfig.s3.bucket, } : undefined, }; }, inject: [ImageConfigService], }); @Module({ imports: [PrismaMongoModule, mediaManagerModule], providers: [ImageConfigService], exports: [MediaManagerModule], }) export class ImageConfigModule {}