chore: tidy code

This commit is contained in:
Mythie
2024-05-29 14:47:33 +10:00
parent 27fe8c7f8f
commit 3d81b15d71
10 changed files with 497 additions and 75 deletions

View File

@ -1,38 +1,31 @@
import { remember } from '@epic-web/remember';
import { PrismaClient } from '@prisma/client';
import { Kysely, PostgresAdapter, PostgresIntrospector, PostgresQueryCompiler } from 'kysely';
import kyselyExtension from 'prisma-extension-kysely';
import type { DB } from './generated/types.js';
import type { DB } from './generated/types';
import { getDatabaseUrl } from './helper';
declare global {
// We need `var` to declare a global variable in TypeScript
// eslint-disable-next-line no-var
var prisma: PrismaClient | undefined;
}
if (!globalThis.prisma) {
globalThis.prisma = new PrismaClient({ datasourceUrl: getDatabaseUrl() });
}
const _prisma =
globalThis.prisma ||
new PrismaClient({
datasourceUrl: getDatabaseUrl(),
});
export const prisma = _prisma.$extends(
kyselyExtension({
kysely: (driver) =>
new Kysely<DB>({
dialect: {
createAdapter: () => new PostgresAdapter(),
createDriver: () => driver,
createIntrospector: (db) => new PostgresIntrospector(db),
createQueryCompiler: () => new PostgresQueryCompiler(),
},
}),
}),
export const prisma = remember(
'prisma',
() =>
new PrismaClient({
datasourceUrl: getDatabaseUrl(),
}),
);
export const getPrismaClient = () => prisma;
export const kyselyPrisma = remember('kyselyPrisma', () =>
prisma.$extends(
kyselyExtension({
kysely: (driver) =>
new Kysely<DB>({
dialect: {
createAdapter: () => new PostgresAdapter(),
createDriver: () => driver,
createIntrospector: (db) => new PostgresIntrospector(db),
createQueryCompiler: () => new PostgresQueryCompiler(),
},
}),
}),
),
);