|
|
|
|
|
|
|
|
|
|
|
import express from 'express'; |
|
import { createServer } from 'http'; |
|
import { WebSocketServer } from 'ws'; |
|
import { fileURLToPath } from 'url'; |
|
import path from 'path'; |
|
import config from './config.js'; |
|
import imageRoutes from |
|
'./src/routes/imageRoutes.js'; |
|
import { initCleanup } from |
|
'./src/services/storageManager.js'; |
|
import { setupViewEngine } from |
|
'./src/middleware/viewEngine.js'; |
|
import { setupWebSocket } from |
|
'./src/services/websocketManager.js'; |
|
|
|
const __filename = fileURLToPath(import.meta.url); |
|
const __dirname = path.dirname(__filename); |
|
const app = express(); |
|
const mapping = { |
|
"/__public__/assets": "assets", |
|
"/__public__/data/models.js": "model.js", |
|
"/__public__/data/resolution.js": "resolution.js", |
|
"/__public__/data/examples.js": "example.js" |
|
}; |
|
const server = createServer(app); |
|
const wss = new WebSocketServer({ server }); |
|
|
|
setupViewEngine(app, __dirname); |
|
setupWebSocket(wss); |
|
|
|
app.use(express.urlencoded({ |
|
extended: true, |
|
limit: config.limits.bodySize |
|
})); |
|
|
|
app.use(express.json({ |
|
limit: config.limits.bodySize |
|
})); |
|
|
|
for (const [route, target] |
|
of Object.entries(mapping) |
|
) { |
|
app.use( |
|
route, |
|
express.static( |
|
path.resolve(target) |
|
) |
|
); |
|
} |
|
|
|
app.use('/', imageRoutes); |
|
|
|
initCleanup(); |
|
|
|
server.listen( |
|
config.server.port, |
|
config.server.host |
|
); |