RYP / server /index.js
Soumya79's picture
Upload 1361 files
f91a684 verified
import cors from 'cors';
import express from 'express';
import { fileURLToPath } from 'url';
import path from 'path';
import compilerRouter from './routes/compiler.js';
const app = express();
const PORT = Number(process.env.PORT || 5001);
const allowedOrigins = new Set(['http://localhost:5173', 'http://127.0.0.1:5173']);
app.use(
cors({
origin(origin, callback) {
if (!origin || allowedOrigins.has(origin)) {
callback(null, true);
return;
}
callback(null, false);
},
methods: ['GET', 'POST', 'OPTIONS'],
allowedHeaders: ['Content-Type'],
}),
);
app.use(express.json({ limit: '300kb' }));
app.get('/health', (_req, res) => {
res.json({ status: 'ok', service: 'ryp-compiler' });
});
app.use('/api/compile', compilerRouter);
app.use((req, res) => {
res.status(404).json({
output: '',
error: `Route not found: ${req.method} ${req.originalUrl}`,
executionTime: 0,
status: 'not_found',
});
});
app.use((err, _req, res, _next) => {
res.status(500).json({
output: '',
error: err?.message || 'Unexpected compiler server error.',
executionTime: 0,
status: 'server_error',
});
});
const currentFile = fileURLToPath(import.meta.url);
const executedFile = process.argv[1] ? path.resolve(process.argv[1]) : '';
if (currentFile === executedFile) {
app.listen(PORT, '127.0.0.1', () => {
console.log(`RYP compiler server running on http://127.0.0.1:${PORT}`);
});
}
export default app;