|
import createError from 'http-errors'; |
|
import express from 'express'; |
|
import cors from 'cors'; |
|
|
|
import appConfig from './config/app.js'; |
|
import corsOptions from './config/cors-options.js'; |
|
import morgan from './helpers/morgan.js'; |
|
import * as Sentry from './helpers/sentry.ee.js'; |
|
import appAssetsHandler from './helpers/app-assets-handler.js'; |
|
import webUIHandler from './helpers/web-ui-handler.js'; |
|
import errorHandler from './helpers/error-handler.js'; |
|
import './config/orm.js'; |
|
import { |
|
createBullBoardHandler, |
|
serverAdapter, |
|
} from './helpers/create-bull-board-handler.js'; |
|
import injectBullBoardHandler from './helpers/inject-bull-board-handler.js'; |
|
import router from './routes/index.js'; |
|
import configurePassport from './helpers/passport.js'; |
|
|
|
createBullBoardHandler(serverAdapter); |
|
|
|
const app = express(); |
|
|
|
Sentry.init(app); |
|
|
|
Sentry.attachRequestHandler(app); |
|
Sentry.attachTracingHandler(app); |
|
|
|
injectBullBoardHandler(app, serverAdapter); |
|
|
|
appAssetsHandler(app); |
|
|
|
app.use(morgan); |
|
|
|
app.use( |
|
express.json({ |
|
limit: appConfig.requestBodySizeLimit, |
|
verify(req, res, buf) { |
|
req.rawBody = buf; |
|
}, |
|
}) |
|
); |
|
app.use( |
|
express.urlencoded({ |
|
extended: true, |
|
limit: appConfig.requestBodySizeLimit, |
|
verify(req, res, buf) { |
|
req.rawBody = buf; |
|
}, |
|
}) |
|
); |
|
app.use(cors(corsOptions)); |
|
|
|
configurePassport(app); |
|
|
|
app.use('/', router); |
|
|
|
webUIHandler(app); |
|
|
|
|
|
app.use(function (req, res, next) { |
|
next(createError(404)); |
|
}); |
|
|
|
Sentry.attachErrorHandler(app); |
|
|
|
app.use(errorHandler); |
|
|
|
export default app; |
|
|