import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from "kysely"; import SqliteDatabase from "better-sqlite3"; import type { DB } from "dbtype/types"; export function createSqliteDialect() { const url = process.env.DATABASE_URL; if (!url) { throw new Error("DATABASE_URL is not set"); } const db = new SqliteDatabase(url); return new SqliteDialect({ database: db, }); } // Create a new Kysely instance with a new SqliteDatabase instance let kysely: Kysely | null = null; export function getKysely() { if (!kysely) { kysely = new Kysely({ dialect: createSqliteDialect(), // plugins: [new ParseJSONResultsPlugin()], }); } return kysely; }