|
| 1 | +import "dotenv/config"; |
1 | 2 | import express, { |
2 | | - Express, |
3 | | - ErrorRequestHandler, |
4 | | - RequestHandler, |
5 | | - NextFunction, |
6 | | - Request as ExpressRequest, |
7 | | - Response as ExpressResponse, |
| 3 | + type Express, |
| 4 | + type ErrorRequestHandler, |
| 5 | + type RequestHandler, |
| 6 | + type NextFunction, |
| 7 | + type Request as ExpressRequest, |
| 8 | + type Response as ExpressResponse, |
8 | 9 | } from "express"; |
9 | | -import cors from "cors"; |
10 | | -import "dotenv/config"; |
| 10 | +import cors, { type CorsOptions } from "cors"; |
11 | 11 | import { |
12 | | - ConversationsRouterParams, |
13 | 12 | makeConversationsRouter, |
14 | | - ResponsesRouterParams, |
15 | 13 | makeResponsesRouter, |
| 14 | + type ConversationsRouterParams, |
| 15 | + type ResponsesRouterParams, |
16 | 16 | } from "./routes"; |
17 | 17 | import { logger } from "mongodb-rag-core"; |
18 | 18 | import { ObjectId } from "mongodb-rag-core/mongodb"; |
19 | 19 | import { getRequestId, logRequest, sendErrorResponse } from "./utils"; |
20 | | -import { CorsOptions } from "cors"; |
21 | 20 | import cloneDeep from "lodash.clonedeep"; |
22 | 21 |
|
23 | 22 | /** |
@@ -68,7 +67,9 @@ export interface AppConfig { |
68 | 67 | */ |
69 | 68 | export const errorHandler: ErrorRequestHandler = (err, req, res, _next) => { |
70 | 69 | const reqId = getRequestId(req); |
71 | | - const httpStatus = err.status || 500; |
| 70 | + const isCorsError = err.message.includes("CORS"); |
| 71 | + |
| 72 | + const httpStatus = isCorsError ? 403 : err.status || 500; |
72 | 73 | const errorMessage = err.message || "Internal Server Error"; |
73 | 74 |
|
74 | 75 | if (!res.headersSent) { |
|
0 commit comments