50 lines
1.6 KiB
JavaScript
Executable File
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 }; |