start of the 50th remake of a file host doomed to never be finished

This commit is contained in:
creations 2025-03-02 17:36:45 -05:00
commit 46c05ca3a9
Signed by: creations
GPG key ID: 8F553AA4320FC711
33 changed files with 2155 additions and 0 deletions

54
src/index.ts Normal file
View file

@ -0,0 +1,54 @@
import { logger } from "@helpers/logger";
import { type ReservedSQL, sql } from "bun";
import { readdir } from "fs/promises";
import { resolve } from "path";
import { serverHandler } from "@/server";
import { redis } from "./helpers/redis";
async function initializeDatabase(): Promise<void> {
const sqlDir: string = resolve("config", "sql");
const files: string[] = await readdir(sqlDir);
const reservation: ReservedSQL = await sql.reserve();
for (const file of files) {
if (file.endsWith(".ts")) {
const { createTable } = await import(resolve(sqlDir, file));
await createTable(reservation);
}
}
reservation.release();
}
async function main(): Promise<void> {
try {
try {
await sql`SELECT 1;`;
logger.info([
"Connected to PostgreSQL on",
`${process.env.PGHOST}:${process.env.PGPORT}`,
]);
} catch (error) {
logger.error([
"Could not establish a connection to PostgreSQL:",
error as Error,
]);
process.exit(1);
}
await redis.initialize();
serverHandler.initialize();
await initializeDatabase();
} catch (error) {
throw error;
}
}
main().catch((error: Error) => {
logger.error(["Error initializing the server:", error]);
process.exit(1);
});