Something went wrong. Try again.
because I got bored of customising my CV for every job
Something went wrong. Try again.
1.9 kB · 61 lines
TypeScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import { DatabaseModule, PrismaService } from "@cv/core";import { FileStorageModule } from "@cv/file-storage";import { HandlersModule, HtmlToPdfService, RenderPdfHandler,} from "@cv/handlers";import { Module } from "@nestjs/common";import { ConfigModule } from "@nestjs/config";import { EventEmitterModule } from "@nestjs/event-emitter";import { LoggerProvider, MessengerModule,} from "@riotbyte-com/project-q-nestjs";import { PrismaClientToken, PrismaTransportFactory,} from "@riotbyte-com/project-q-prisma";import type { WorkerConfig } from "./config";import { config } from "./config";import { HeartbeatModule } from "./heartbeat/heartbeat.module";import { NestProjectQLogger } from "./logger.provider";
export const WORKER_CONFIG = Symbol("WORKER_CONFIG");
@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, load: [() => ({ DATABASE_URL: config.databaseUrl })], }), DatabaseModule, EventEmitterModule.forRoot(), HandlersModule, HeartbeatModule.register(config), FileStorageModule.forRoot( config.fileStorageDriver === "r2" ? { driver: "r2", endpoint: config.r2Endpoint, accessKeyId: config.r2AccessKeyId, secretAccessKey: config.r2SecretAccessKey, bucket: config.r2Bucket, } : { driver: "disk", baseDir: config.pdfOutputDir }, ), MessengerModule.forRoot({ transports: { async: { dsn: `prisma://?queue=${config.queueName}`, retry: true }, }, routing: new Map<string, "async">([["render-pdf", "async"]]), }), ], providers: [ { provide: WORKER_CONFIG, useValue: config satisfies WorkerConfig }, { provide: PrismaClientToken, useExisting: PrismaService }, { provide: LoggerProvider, useClass: NestProjectQLogger }, PrismaTransportFactory, ],})export class WorkerModule {}