import { toNodeHandler } from "better-auth/node"; import express from "express"; import morgan from "morgan"; import { createLogger } from "./logger/logger.controller.js"; import { setupRoutes } from "./routeHandler.routes.js"; import { auth } from "./utils/auth.utils.js"; import { lstCors } from "./utils/cors.utils.js"; const createApp = async () => { const log = createLogger({ module: "system", subModule: "main start" }); const app = express(); let baseUrl = ""; if (process.env.NODE_ENV?.trim() !== "production") { baseUrl = "/lst"; } // if we are running un docker lets use this. if (process.env.RUNNING_IN_DOCKER) { baseUrl = "/lst"; } // well leave this active so we can monitor it to validate app.use(morgan("tiny")); app.set("trust proxy", true); app.all(`${baseUrl}api/auth/*splat`, toNodeHandler(auth)); app.use(express.json()); app.use(lstCors()); setupRoutes(baseUrl, app); log.info("Express app created"); return { app, baseUrl }; }; export default createApp;