| |
| |
| |
| |
|
|
| 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 |
| ); |