project-knedita/src/app.ts

37 lines
852 B
TypeScript

import 'dotenv/config'
import compression from 'compression'
import cors from 'cors'
import express from 'express'
import limiter from 'middlewares/rate-limit'
import morganMiddleware from 'middlewares/morgan'
import router from './routes'
const app = express()
// TODO: test socket io, emit notifications when create one.
// TODO: start to create the client, or a barebone to test socket io
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(morganMiddleware)
app.options('*', cors())
app.use(
cors({
credentials: true,
origin: process.env.CLIENT_URL,
methods: ['GET', 'POST', 'PUT'],
optionsSuccessStatus: 200,
}),
)
app.use(limiter)
app.use(router)
app.use(compression({ level: 9 }))
app.use((_req, res) => {
res.status(404).json({
error: 'Endpoint not found',
})
})
export default app