Files
backend/src/prisma/prisma.service.ts
T

32 lines
865 B
TypeScript

import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3';
import { PrismaClient } from '../../generated/prisma/client';
import { Environment } from '../config/env.validation';
function getDatabaseUrl(config: ConfigService<Environment, true>): string {
return config.getOrThrow<string>('DATABASE_URL');
}
@Injectable()
export class PrismaService
extends PrismaClient
implements OnModuleInit, OnModuleDestroy
{
constructor(config: ConfigService<Environment, true>) {
super({
adapter: new PrismaBetterSqlite3({
url: getDatabaseUrl(config),
}),
});
}
onModuleInit(): Promise<void> {
return this.$connect();
}
onModuleDestroy(): Promise<void> {
return this.$disconnect();
}
}