Files
memegoat/backend/src/app.module.ts
Mathis HERRIOT cc2823db7d
Some checks failed
Backend Tests / test (push) Successful in 9m38s
Lint / lint (push) Failing after 4m59s
refactor: organize imports and enhance formatting across backend files
Optimized import order, applied consistent formatting, and improved readability in various modules, including `contents`, `media`, and `auth` services.
2026-01-08 15:33:55 +01:00

75 lines
2.3 KiB
TypeScript

import { CacheModule } from "@nestjs/cache-manager";
import { Module } from "@nestjs/common";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { ScheduleModule } from "@nestjs/schedule";
import { ThrottlerModule } from "@nestjs/throttler";
import { redisStore } from "cache-manager-redis-yet";
import { ApiKeysModule } from "./api-keys/api-keys.module";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { AuthModule } from "./auth/auth.module";
import { CategoriesModule } from "./categories/categories.module";
import { CommonModule } from "./common/common.module";
import { validateEnv } from "./config/env.schema";
import { ContentsModule } from "./contents/contents.module";
import { CryptoModule } from "./crypto/crypto.module";
import { DatabaseModule } from "./database/database.module";
import { FavoritesModule } from "./favorites/favorites.module";
import { HealthController } from "./health.controller";
import { MailModule } from "./mail/mail.module";
import { MediaModule } from "./media/media.module";
import { ReportsModule } from "./reports/reports.module";
import { S3Module } from "./s3/s3.module";
import { SessionsModule } from "./sessions/sessions.module";
import { TagsModule } from "./tags/tags.module";
import { UsersModule } from "./users/users.module";
@Module({
imports: [
DatabaseModule,
CryptoModule,
CommonModule,
S3Module,
MailModule,
UsersModule,
AuthModule,
CategoriesModule,
ContentsModule,
FavoritesModule,
TagsModule,
MediaModule,
SessionsModule,
ReportsModule,
ApiKeysModule,
ScheduleModule.forRoot(),
ThrottlerModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => [
{
ttl: 60000,
limit: config.get("NODE_ENV") === "production" ? 100 : 1000,
},
],
}),
ConfigModule.forRoot({
isGlobal: true,
validate: validateEnv,
}),
CacheModule.registerAsync({
isGlobal: true,
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (config: ConfigService) => ({
store: await redisStore({
url: `redis://${config.get("REDIS_HOST")}:${config.get("REDIS_PORT")}`,
}),
ttl: 600, // 10 minutes
}),
}),
],
controllers: [AppController, HealthController],
providers: [AppService],
})
export class AppModule {}