fix: direct tool server

This commit is contained in:
Timothy Jaeryang Baek 2025-08-26 13:15:47 +04:00
parent 4b22aa819c
commit f4047eea77
3 changed files with 38 additions and 10 deletions

View file

@ -347,25 +347,20 @@ export const getToolServerData = async (token: string, url: string) => {
return data;
};
export const getToolServersData = async (i18n, servers: object[]) => {
export const getToolServersData = async (servers: object[]) => {
return (
await Promise.all(
servers
.filter((server) => server?.config?.enable)
.map(async (server) => {
let error = null;
const data = await getToolServerData(
(server?.auth_type ?? 'bearer') === 'bearer' ? server?.key : localStorage.token,
(server?.path ?? '').includes('://')
? server?.path
: `${server?.url}${(server?.path ?? '').startsWith('/') ? '' : '/'}${server?.path}`
).catch((err) => {
toast.error(
$i18n.t(`Failed to connect to {{URL}} OpenAPI tool server`, {
URL: (server?.path ?? '').includes('://')
? server?.path
: `${server?.url}${(server?.path ?? '').startsWith('/') ? '' : '/'}${server?.path}`
})
);
error = err;
return null;
});
@ -377,6 +372,13 @@ export const getToolServersData = async (i18n, servers: object[]) => {
info: info,
specs: specs
};
} else if (error) {
return {
error,
url: server?.url
};
} else {
return null;
}
})
)

View file

@ -31,7 +31,20 @@
toolServers: servers
});
toolServers.set(await getToolServersData($i18n, $settings?.toolServers ?? []));
let toolServersData = await getToolServersData($settings?.toolServers ?? []);
toolServersData = toolServersData.filter((data) => {
if (data.error) {
toast.error(
$i18n.t(`Failed to connect to {{URL}} OpenAPI tool server`, {
URL: data?.url
})
);
return false;
}
return true;
});
toolServers.set(toolServersData);
};
onMount(async () => {

View file

@ -114,7 +114,20 @@
banners.set(await getBanners(localStorage.token));
tools.set(await getTools(localStorage.token));
toolServers.set(await getToolServersData($i18n, $settings?.toolServers ?? []));
let toolServersData = await getToolServersData($settings?.toolServers ?? []);
toolServersData = toolServersData.filter((data) => {
if (data.error) {
toast.error(
$i18n.t(`Failed to connect to {{URL}} OpenAPI tool server`, {
URL: data?.url
})
);
return false;
}
return true;
});
toolServers.set(toolServersData);
document.addEventListener('keydown', async function (event) {
const isCtrlPressed = event.ctrlKey || event.metaKey; // metaKey is for Cmd key on Mac