AutoMod/api/src/index.ts
2022-02-05 22:46:50 +01:00

42 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/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');