"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return mod && mod.__esModule ? mod : { default: mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const paths_1 = require("./paths"); const express_1 = __importDefault(require("express")); const dotenv_1 = __importDefault(require("dotenv")); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); // Initialize express const app = (0, express_1.default)(); // Load environment variables dotenv_1.default.config(); // Parse JSON bodies app.use(express_1.default.json()); // CORS app.use((req, res, next) => { res.setHeader("Access-Control-Allow-Origin", "*"); res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE"); res.setHeader("Access-Control-Allow-Headers", "Content-Type"); next(); }); // Add the required directories app.use((req, res, next) => { const directories = ["/static", "/profiles"]; directories.forEach((dir) => { if (!fs_1.default.existsSync(paths_1.BASE_PATH + dir)) { fs_1.default.mkdirSync(paths_1.BASE_PATH + dir); } }); next(); }); // TODO: Remove this in production app.use((req, res, next) => { console.log(`${req.method} ${req.url}`); next(); }); // Serve Static generated SVGs app.get("/static/:name", (req, res, next) => __awaiter(void 0, void 0, void 0, function* () { const fileName = req.params.name; const filePath = `${paths_1.STATIC_PATH}/${fileName}`; const file = yield fs_1.default.readFileSync(filePath); res.setHeader("Content-Type", "image/svg+xml"); res.send(file); }) ); app.use("/api", require("./routes/api").default); // Start server const port = process.env.PORT || 5000; app.listen(port, () => { console.log(`Server started on port ${port}`); });