@reliverse/rse
Version:
@reliverse/rse is your all-in-one companion for bootstrapping and improving any kind of projects (especially web apps built with frameworks like Next.js) — whether you're kicking off something new or upgrading an existing app. It is also a little AI-power
33 lines (32 loc) • 887 B
JavaScript
import { createClient } from "@libsql/client/node";
import { ensuredir } from "@reliverse/relifso";
import { relinka } from "@reliverse/relinka";
import { drizzle } from "drizzle-orm/libsql/node";
import { memoryPath, cliHomeDir } from "../constants.js";
await ensuredir(cliHomeDir);
const client = createClient({
url: `file:${memoryPath}`
});
const db = drizzle(client);
async function initializeDatabase() {
try {
await client.batch([
`CREATE TABLE IF NOT EXISTS config_keys (
key TEXT PRIMARY KEY,
value TEXT NOT NULL
)`,
`CREATE TABLE IF NOT EXISTS user_data (
key TEXT PRIMARY KEY,
value TEXT NOT NULL
)`
]);
} catch (error) {
relinka(
"error",
"Failed to initialize database:",
error instanceof Error ? error.message : String(error)
);
}
}
await initializeDatabase();
export { db };