import SqliteDb from 'better-sqlite3' import { Kysely, Migrator, SqliteDialect } from 'kysely' import { migrationProvider } from './migrations' import type { DatabaseSchema } from './schema' export const createDb = (location: string): Database => { return new Kysely({ dialect: new SqliteDialect({ database: new SqliteDb(location), }), }) } export const migrateToLatest = async (db: Database) => { const migrator = new Migrator({ db, provider: migrationProvider }) const { error } = await migrator.migrateToLatest() if (error) throw error } export type Database = Kysely