Files
backend/database.js
2025-08-23 17:24:30 -04:00

50 lines
1.6 KiB
JavaScript
Executable File

import fs from "bun:fs";
import { Database } from "bun:sqlite";
if(!await (Bun.file(process.env.DATA_PATH)).exists()) {
fs.mkdirSync(process.env.DATA_PATH, { recursive: true });
}
const accs = new Database(`${process.env.DATA_PATH}/accounts.sqlite`, { create: true });
// const infdb = new Database(`${process.env.DATA_PATH}/infinitecraft.sqlite`);
// const friends = new Database(`${process.env.DATA_PATH}/friends.sqlite`);
// const polytrack = new Database(`${process.env.DATA_PATH}/polytrack.sqlite`);
// const ai_chats = new Database(`${process.env.DATA_PATH}/ai_chats.sqlite`);
accs.exec("PRAGMA journal_mode = WAL;");
// infdb.exec("PRAGMA journal_mode = WAL;");
// friends.exec("PRAGMA journal_mode = WAL;");
// polytrack.exec("PRAGMA journal_mode = WAL;");
// ai_chats.exec("PRAGMA journal_mode = WAL;");
let accountColumns = [
`"id" INTEGER`,
`"username" TEXT UNIQUE`,
`"name" TEXT`,
`"hashed_pass" INTEGER NOT NULL`,
`"secret_key" TEXT`,
`"about" TEXT`,
`"badges" TEXT`,
`"last_login" TEXT`,
`"type" TEXT`,
`"pfp_url" TEXT`,
`"createdAt" DATETIME NOT NULL`,
`"updatedAt" DATETIME NOT NULL`,
`"banned" TEXT`,
`"music" TEXT`,
`PRIMARY KEY("id")`,
];
let createAccountQuery = `CREATE TABLE IF NOT EXISTS "accounts" (`
accountColumns.forEach((e) => {
if(createAccountQuery.length == 39) {
createAccountQuery+=`${e}`
} else {
createAccountQuery+=`,${e}`
}
});
createAccountQuery+=`)`
// console.log(createAccountQuery)
accs.query(createAccountQuery).run();
// export { accs, infdb, friends, polytrack, ai_chats };
export { accs };