first commit

This commit is contained in:
2025-11-01 09:24:26 +08:00
commit 6516d8dc78
87 changed files with 7558 additions and 0 deletions

51
apps/backend/src/app.ts Normal file
View File

@@ -0,0 +1,51 @@
import cors from 'cors';
import express from 'express';
import helmet from 'helmet';
import pinoHttp from 'pino-http';
import rateLimit from 'express-rate-limit';
import { router } from './routes/index.js';
import { notFoundHandler } from './middlewares/not-found.js';
import { errorHandler } from './middlewares/error-handler.js';
import { logger } from './config/logger.js';
export function createApp() {
const app = express();
app.use(helmet());
app.use(
cors({
origin: '*',
credentials: true
})
);
app.use(express.json({ limit: '10mb' }));
app.use(express.urlencoded({ extended: true }));
app.use(
rateLimit({
windowMs: 60_000,
limit: 100,
legacyHeaders: false
})
);
app.use(
pinoHttp({
logger,
autoLogging: false
})
);
app.get('/', (_req, res) => {
res.json({
name: 'AI Bill API',
version: '0.1.0',
uptime: process.uptime()
});
});
app.use('/api', router);
app.use(notFoundHandler);
app.use(errorHandler);
return app;
}