33 lines
953 B
JavaScript
33 lines
953 B
JavaScript
import express from 'express';
|
|
import pino from 'pino';
|
|
import pinoHttp from 'pino-http';
|
|
import { requestContext } from './middleware/request-context.js';
|
|
import { errorHandler, notFoundHandler } from './middleware/error-handler.js';
|
|
import { healthRouter } from './routes/health.js';
|
|
import { createQueryRouter } from './routes/query.js';
|
|
import { createMobileQueryRouter } from './routes/mobile.js';
|
|
|
|
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
|
|
|
|
export function createApp(options = {}) {
|
|
const app = express();
|
|
|
|
app.use(requestContext);
|
|
app.use(
|
|
pinoHttp({
|
|
logger,
|
|
customProps: (req) => ({ requestId: req.requestId }),
|
|
})
|
|
);
|
|
app.use(express.json({ limit: '2mb' }));
|
|
|
|
app.use(healthRouter);
|
|
app.use('/query', createQueryRouter(options.queryService));
|
|
app.use('/query', createMobileQueryRouter(options.mobileQueryService));
|
|
|
|
app.use(notFoundHandler);
|
|
app.use(errorHandler);
|
|
|
|
return app;
|
|
}
|