From 0e35292e0eaabbf1041d176c1dedbcf936a17f22 Mon Sep 17 00:00:00 2001 From: Mcdowell Terence Date: Sun, 31 May 2026 03:16:30 +0200 Subject: [PATCH] perf(proxy): parallelize provider proxy overlay lookups --- src/app/api/settings/proxy/route.ts | 31 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/app/api/settings/proxy/route.ts b/src/app/api/settings/proxy/route.ts index af1298302f..78638fa407 100755 --- a/src/app/api/settings/proxy/route.ts +++ b/src/app/api/settings/proxy/route.ts @@ -194,18 +194,25 @@ export async function GET(request: Request) { const providerAssignments = await getProxyAssignments({ scope: "provider" }); if (providerAssignments.length > 0) { config.providers = { ...(config.providers || {}) }; - for (const assignment of providerAssignments) { - if (!assignment.scopeId || !assignment.proxyId) { - continue; - } - const proxyData = await getProxyById(assignment.proxyId, { includeSecrets: true }); - if (!proxyData) continue; - config.providers[assignment.scopeId] = { - type: proxyData.type, - host: proxyData.host, - port: proxyData.port, - username: proxyData.username, - password: proxyData.password, + const providerProxyResults = await Promise.all( + providerAssignments.map(async (assignment) => { + if (!assignment.scopeId || !assignment.proxyId) { + return null; + } + const proxyData = await getProxyById(assignment.proxyId, { includeSecrets: true }); + if (!proxyData) return null; + return { scopeId: assignment.scopeId, proxyData }; + }) + ); + + for (const result of providerProxyResults) { + if (!result) continue; + config.providers[result.scopeId] = { + type: result.proxyData.type, + host: result.proxyData.host, + port: result.proxyData.port, + username: result.proxyData.username, + password: result.proxyData.password, }; } }