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

View file

@ -31,7 +31,20 @@
toolServers: servers 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 () => { onMount(async () => {

View file

@ -114,7 +114,20 @@
banners.set(await getBanners(localStorage.token)); banners.set(await getBanners(localStorage.token));
tools.set(await getTools(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) { document.addEventListener('keydown', async function (event) {
const isCtrlPressed = event.ctrlKey || event.metaKey; // metaKey is for Cmd key on Mac const isCtrlPressed = event.ctrlKey || event.metaKey; // metaKey is for Cmd key on Mac