71 lines
1.5 KiB
JavaScript
71 lines
1.5 KiB
JavaScript
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);
|
|
|
|
// catch 404 and forward to error handler
|
|
app.use(function (req, res, next) {
|
|
next(createError(404));
|
|
});
|
|
|
|
Sentry.attachErrorHandler(app);
|
|
|
|
app.use(errorHandler);
|
|
|
|
export default app;
|