2024-04-17 14:08:16 +00:00
|
|
|
import { initDb } from "./db/index.js";
|
|
|
|
import { testRoutes } from "./routes/index.js";
|
|
|
|
import { env, Logger, Redis } from "./utils/index.js";
|
2023-06-10 00:37:36 +00:00
|
|
|
import fastify from "fastify";
|
2024-04-17 14:08:16 +00:00
|
|
|
import { middleware } from "./modules/middleware.js";
|
2023-06-10 00:37:36 +00:00
|
|
|
|
|
|
|
const API_VERSION = "v1";
|
|
|
|
|
|
|
|
export const main = async () => {
|
|
|
|
const server = fastify({
|
|
|
|
bodyLimit: 1_000_000,
|
|
|
|
trustProxy: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
await initDb();
|
|
|
|
await Redis.initialize();
|
|
|
|
|
2023-12-13 19:35:55 +00:00
|
|
|
server.register(middleware);
|
2023-06-10 00:37:36 +00:00
|
|
|
server.register(import("@fastify/cors"), {
|
|
|
|
maxAge: 600,
|
|
|
|
origin: true,
|
|
|
|
credentials: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
// Routes
|
|
|
|
server.register(testRoutes, {
|
|
|
|
prefix: `/${API_VERSION}/test`,
|
|
|
|
});
|
|
|
|
|
2023-12-13 19:35:55 +00:00
|
|
|
server.listen({ host: env.HOST, port: env.PORT }, (error, address) => {
|
|
|
|
if (error) {
|
|
|
|
Logger.error("INIT", error.message);
|
|
|
|
throw new Error(error.message);
|
2023-06-10 00:37:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Logger.info("INIT", `Server listening at ${address}`);
|
|
|
|
});
|
|
|
|
|
|
|
|
return server;
|
|
|
|
};
|
|
|
|
|
|
|
|
main();
|