Skip to content

Commit ab30757

Browse files
committed
refactor: more readable proxy implement
1 parent 02dff79 commit ab30757

1 file changed

Lines changed: 10 additions & 12 deletions

File tree

apps/frontend/server/api/[...].ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
import { createProxyEventHandler } from 'h3-proxy'
22

3-
let currentUrl = useRuntimeConfig().public.backendUrl
4-
let currentHandler = createProxyEventHandler({
5-
target: currentUrl,
6-
changeOrigin: true,
7-
configureProxyRequest: () => ({ streamRequest: true, sendStream: true, fetchOptions: { redirect: 'manual' } }),
8-
})
3+
// Supports hot-reloading of the backend server config
4+
let currentBackendUrl = useRuntimeConfig().public.backendUrl
5+
let currentHandler = createHandler()
96
export default defineEventHandler(async (e) => {
107
const backendUrl = useRuntimeConfig().public.backendUrl
11-
if (currentUrl !== backendUrl) {
12-
recreateHandler()
13-
currentUrl = backendUrl
8+
if (currentBackendUrl !== backendUrl) {
9+
currentHandler = createHandler()
10+
currentBackendUrl = backendUrl
1411
}
1512

1613
return currentHandler(e).catch((err: Error) => {
@@ -21,9 +18,10 @@ export default defineEventHandler(async (e) => {
2118
})
2219
})
2320

24-
function recreateHandler() {
25-
currentHandler = createProxyEventHandler({
26-
target: currentUrl,
21+
function createHandler() {
22+
return createProxyEventHandler({
23+
target: currentBackendUrl,
24+
enableLogger: false,
2725
changeOrigin: true,
2826
configureProxyRequest: () => ({ streamRequest: true, sendStream: true, fetchOptions: { redirect: 'manual' } }),
2927
})

0 commit comments

Comments
 (0)