because I got bored of customising my CV for every job
at main 41 lines 1.5 kB view raw
1import { Module } from "@nestjs/common"; 2import { ConfigModule } from "@nestjs/config"; 3import { EventEmitterModule } from "@nestjs/event-emitter"; 4import { DatabaseModule, PrismaService } from "@cv/system"; 5import { LoggerProvider, MessengerModule } from "@riotbyte/project-q-nestjs"; 6import { PrismaClientToken, PrismaTransportFactory } from "@riotbyte/project-q-prisma"; 7import type { WorkerConfig } from "./config"; 8import { config } from "./config"; 9import { RenderPdfHandler } from "./handlers/render-pdf.handler"; 10import { HeartbeatModule } from "./heartbeat/heartbeat.module"; 11import { NestProjectQLogger } from "./logger.provider"; 12import { HtmlToPdfService } from "./pdf/html-to-pdf.service"; 13 14export const WORKER_CONFIG = Symbol("WORKER_CONFIG"); 15 16@Module({ 17 imports: [ 18 ConfigModule.forRoot({ 19 isGlobal: true, 20 load: [() => ({ DATABASE_URL: config.databaseUrl })], 21 }), 22 DatabaseModule, 23 EventEmitterModule.forRoot(), 24 HeartbeatModule.register(config), 25 MessengerModule.forRoot({ 26 transports: { 27 async: { dsn: `prisma://?queue=${config.queueName}`, retry: true }, 28 }, 29 routing: new Map<string, "async">([["render-pdf", "async"]]), 30 }), 31 ], 32 providers: [ 33 { provide: WORKER_CONFIG, useValue: config satisfies WorkerConfig }, 34 { provide: PrismaClientToken, useExisting: PrismaService }, 35 { provide: LoggerProvider, useClass: NestProjectQLogger }, 36 PrismaTransportFactory, 37 RenderPdfHandler, 38 HtmlToPdfService, 39 ], 40}) 41export class WorkerModule {}