because I got bored of customising my CV for every job
at main 87 lines 2.9 kB view raw
1import { AuthModule, AuthorizationModule, UserModule } from "@cv/auth"; 2import { 3 BaseModule, 4 DatabaseModule, 5 ResendModule, 6 TemplateModule, 7} from "@cv/system"; 8import { ApolloDriver, type ApolloDriverConfig } from "@nestjs/apollo"; 9import { Module } from "@nestjs/common"; 10import { ConfigModule, ConfigService } from "@nestjs/config"; 11import { GraphQLModule } from "@nestjs/graphql"; 12import { JwtModule } from "@nestjs/jwt"; 13import type { Request, Response } from "express"; 14import { AppConfigModule } from "@/config/config.module"; 15import { envValidationSchema } from "@/config/env.validation"; 16import { AppModule as AppModuleComponent } from "./app/app.module"; 17import { ApplicationModule } from "./application/application.module"; 18import { AuthenticationModule } from "./authentication/authentication.module"; 19import { CurrentUserModule } from "./current-user/current-user.module"; 20import { CVTemplateModule } from "./cv-template/cv-template.module"; 21import { SeedModule } from "./database/seed/seed.module"; 22import { EducationModule } from "./education/education.module"; 23import { CompanyModule } from "./job-experience/company/company.module"; 24import { EmploymentModule } from "./job-experience/employment/employment.module"; 25import { LevelModule } from "./job-experience/level/level.module"; 26import { RoleModule } from "./job-experience/role/role.module"; 27import { SkillModule } from "./job-experience/skill/skill.module"; 28import { OrganizationModule } from "./organization/organization.module"; 29import { VacancyModule } from "./vacancies/vacancy.module"; 30 31@Module({ 32 imports: [ 33 ConfigModule.forRoot({ 34 isGlobal: true, 35 validationSchema: envValidationSchema, 36 validationOptions: { 37 abortEarly: false, // Show all validation errors at once 38 allowUnknown: true, // Allow unknown environment variables 39 }, 40 }), 41 JwtModule.registerAsync({ 42 global: true, 43 imports: [ConfigModule], 44 useFactory: async (configService: ConfigService) => { 45 const secret = configService.getOrThrow<string>("JWT_SECRET"); 46 return { 47 secret, 48 signOptions: { expiresIn: "24h" }, 49 }; 50 }, 51 inject: [ConfigService], 52 }), 53 GraphQLModule.forRoot<ApolloDriverConfig>({ 54 driver: ApolloDriver, 55 autoSchemaFile: true, 56 sortSchema: true, 57 context: ({ req, res }: { req: Request; res: Response }) => ({ 58 req, 59 res, 60 }), 61 }), 62 AppConfigModule, 63 BaseModule, 64 DatabaseModule, 65 ResendModule, 66 TemplateModule, 67 AuthModule, 68 AuthorizationModule, 69 AuthenticationModule, 70 CurrentUserModule, 71 UserModule, 72 AppModuleComponent, 73 SkillModule, 74 CompanyModule, 75 RoleModule, 76 LevelModule, 77 EmploymentModule, 78 OrganizationModule, 79 VacancyModule, 80 ApplicationModule, 81 CVTemplateModule, 82 EducationModule, 83 SeedModule, 84 ], 85 providers: [], 86}) 87export class AppModule {}