jan/web/services/tauriService.ts
Louis b252f716d7
refactor: Jan manages threads for a better performance (#4912)
* refactor: Jan manages threads for a better performance

* test: add tests
2025-04-15 18:57:43 +07:00

52 lines
1.3 KiB
TypeScript

import { CoreRoutes, APIRoutes } from '@janhq/core'
import { invoke } from '@tauri-apps/api/core'
// Define API routes based on different route types
export const Routes = [
...CoreRoutes,
...APIRoutes,
'installExtensions',
'getTools',
'callTool',
'listThreads',
'createThread',
'modifyThread',
'deleteThread',
'listMessages',
'createMessage',
'modifyMessage',
'deleteMessage',
'getThreadAssistant',
'createThreadAssistant',
'modifyThreadAssistant',
].map((r) => ({
path: `app`,
route: r,
}))
// Function to open an external URL in a new browser window
export function openExternalUrl(url: string) {
window?.open(url, '_blank')
}
// Define the restAPI object with methods for each API route
export const tauriAPI = {
...Object.values(Routes).reduce((acc, proxy) => {
return {
...acc,
/* eslint-disable @typescript-eslint/no-explicit-any */
[proxy.route]: (...args: any) => {
// For each route, define a function that sends a request to the API
return invoke(
proxy.route.replace(/([A-Z])/g, '_$1').toLowerCase(),
...args
)
},
}
}, {}),
openExternalUrl,
// Jan Server URL
baseApiUrl: undefined, //process.env.API_BASE_URL ?? API_BASE_URL,
pollingInterval: 5000,
}