mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 00:03:33 +10:00
34 lines
936 B
TypeScript
34 lines
936 B
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import { Kysely, PostgresAdapter, PostgresIntrospector, PostgresQueryCompiler } from 'kysely';
|
|
import kyselyExtension from 'prisma-extension-kysely';
|
|
|
|
import type { DB } from './generated/types';
|
|
import { getDatabaseUrl } from './helper';
|
|
import { remember } from './utils/remember';
|
|
|
|
export const prisma = remember(
|
|
'prisma',
|
|
() =>
|
|
new PrismaClient({
|
|
datasourceUrl: getDatabaseUrl(),
|
|
}),
|
|
);
|
|
|
|
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(),
|
|
},
|
|
}),
|
|
}),
|
|
),
|
|
);
|
|
|
|
export { sql } from 'kysely';
|