43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { config } from 'dotenv';
|
|
import Express from "express";
|
|
import Log75, { LogLevel } from 'log75';
|
|
import buildDBClient from './db';
|
|
|
|
config();
|
|
|
|
const PORT = Number(process.env.API_PORT || 9000);
|
|
const DEBUG = process.env.NODE_ENV != 'production';
|
|
const SESSION_LIFETIME = 1000 * 60 * 60 * 24 * 7;
|
|
|
|
const logger: Log75 = new (Log75 as any).default(DEBUG ? LogLevel.Debug : LogLevel.Standard);
|
|
const db = buildDBClient();
|
|
const app = Express();
|
|
|
|
app.set('trust proxy', true);
|
|
app.use(Express.json());
|
|
|
|
export { logger, app, db, PORT, SESSION_LIFETIME }
|
|
|
|
(async () => {
|
|
const promises = [
|
|
import('./middlewares/log'),
|
|
import('./middlewares/updateTokenExpiry'),
|
|
import('./middlewares/cors'),
|
|
import('./middlewares/ratelimit'),
|
|
|
|
import('./routes/internal/ws'),
|
|
import('./routes/root'),
|
|
import('./routes/stats'),
|
|
import('./routes/login'),
|
|
import('./routes/dash/servers'),
|
|
import('./routes/dash/server'),
|
|
import('./routes/dash/server-automod'),
|
|
];
|
|
|
|
for (const p of promises) await p;
|
|
|
|
|
|
logger.done('All routes and middlewares loaded');
|
|
})();
|
|
|
|
import('./server');
|