2023-06-20 20:05:15 +00:00
|
|
|
import 'dotenv/config'
|
|
|
|
|
2023-08-05 19:51:43 +00:00
|
|
|
import compression from 'compression'
|
|
|
|
import cors from 'cors'
|
2023-06-20 20:05:15 +00:00
|
|
|
import express from 'express'
|
2023-08-05 19:51:43 +00:00
|
|
|
import limiter from 'middlewares/rate-limit'
|
|
|
|
import morganMiddleware from 'middlewares/morgan'
|
2023-06-23 18:15:11 +00:00
|
|
|
import router from './routes'
|
2023-08-22 19:57:34 +00:00
|
|
|
import cookieParser from 'cookie-parser'
|
2023-06-20 20:05:15 +00:00
|
|
|
|
|
|
|
const app = express()
|
|
|
|
|
2023-08-08 22:52:28 +00:00
|
|
|
// TODO: test socket io, emit notifications when create one.
|
2023-08-22 16:52:50 +00:00
|
|
|
// TODO: start to create the client, or a barebone to test socket io
|
2023-08-08 22:52:28 +00:00
|
|
|
|
2023-06-20 20:05:15 +00:00
|
|
|
app.use(express.json())
|
|
|
|
app.use(express.urlencoded({ extended: true }))
|
2023-08-22 19:57:34 +00:00
|
|
|
app.use(cookieParser())
|
2023-08-05 19:51:43 +00:00
|
|
|
app.use(morganMiddleware)
|
2023-07-17 20:47:05 +00:00
|
|
|
app.use(limiter)
|
2023-08-05 19:51:43 +00:00
|
|
|
app.use(router)
|
2023-06-20 20:05:15 +00:00
|
|
|
app.use(compression({ level: 9 }))
|
2023-08-22 20:47:32 +00:00
|
|
|
app.use(
|
|
|
|
cors({
|
|
|
|
credentials: true,
|
2023-09-03 15:58:09 +00:00
|
|
|
origin: process.env.CLIENT_URL,
|
2023-08-22 20:47:32 +00:00
|
|
|
optionsSuccessStatus: 200,
|
|
|
|
}),
|
|
|
|
)
|
2023-06-20 20:05:15 +00:00
|
|
|
|
|
|
|
app.use((_req, res) => {
|
|
|
|
res.status(404).json({
|
2023-08-22 20:47:32 +00:00
|
|
|
error: 'Endpoint not found',
|
2023-06-20 20:05:15 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
export default app
|