image-config.module.ts 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import { Module } from '@nestjs/common';
  2. import { PrismaMongoModule } from '../../prisma/prisma-mongo.module';
  3. import { ImageConfigService } from './image-config.service';
  4. import { MediaManagerModule } from '@box/core/media-manager/media-manager.module';
  5. const mediaManagerModule = MediaManagerModule.registerAsync({
  6. imports: [PrismaMongoModule],
  7. useFactory: async (imageConfigService: ImageConfigService) => {
  8. const imageConfig = await imageConfigService.getImageConfig();
  9. return {
  10. localRoot: imageConfig.local?.rootPath,
  11. aws: imageConfig.s3
  12. ? {
  13. region: imageConfig.s3.region,
  14. endpoint: imageConfig.s3.endpointUrl,
  15. accessKeyId: imageConfig.s3.accessKeyId,
  16. secretAccessKey: imageConfig.s3.secretAccessKey,
  17. bucket: imageConfig.s3.bucket,
  18. }
  19. : undefined,
  20. };
  21. },
  22. inject: [ImageConfigService],
  23. });
  24. @Module({
  25. imports: [PrismaMongoModule, mediaManagerModule],
  26. providers: [ImageConfigService],
  27. exports: [MediaManagerModule],
  28. })
  29. export class ImageConfigModule {}