sendou.ink/app/db/sql.ts
Kalle 9a126f543d
Plus Voting to 60% criteria + leaderboard access (#1537)
* Update PlusVotingResult

* Logic

* Replace plus tiers

* Testing initial

* Test progress

* Working one test

* Tests

* Schema different file

* Dynamic test

* Fix test util
2023-11-11 12:19:57 +02:00

26 lines
798 B
TypeScript

import Database from "better-sqlite3";
import invariant from "tiny-invariant";
import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from "kysely";
import type { DB } from "./tables";
const migratedEmptyDb = new Database("db-test.sqlite3").serialize();
invariant(process.env["DB_PATH"], "DB_PATH env variable must be set");
const isInMemoryDB = process.env["DB_PATH"] === ":memory:";
export const sql = new Database(
isInMemoryDB ? migratedEmptyDb : process.env["DB_PATH"],
);
sql.pragma("journal_mode = WAL");
sql.pragma("foreign_keys = ON");
sql.pragma("busy_timeout = 5000");
export const db = new Kysely<DB>({
dialect: new SqliteDialect({
database: sql,
}),
log: process.env.NODE_ENV === "development" ? ["query"] : undefined,
plugins: [new ParseJSONResultsPlugin()],
});