import path from "path"; import fs from "fs"; import { CONF_DIR } from "utils/config/config"; import createLogger from "utils/logger"; const logger = createLogger("configFileService"); /** * @param {import("next").NextApiRequest} req * @param {import("next").NextApiResponse} res */ export default async function handler(req, res) { const { path: relativePath } = req.query; // only two supported files, for now if (!['custom.css', 'custom.js'].includes(relativePath)) { return res.status(422).end('Unsupported file'); } const filePath = path.join(CONF_DIR, relativePath); try { // Read the content of the file or return empty content const fileContent = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : ''; // hard-coded since we only support two known files for now const mimeType = (relativePath === 'custom.css') ? 'text/css' : 'text/javascript'; res.setHeader('Content-Type', mimeType); return res.status(200).send(fileContent); } catch (error) { logger.error(error); return res.status(500).end('Internal Server Error'); } }