refactor: wait for extension load
This commit is contained in:
parent
66bae2adb8
commit
0dbfde4c80
@ -117,10 +117,8 @@ export class ExtensionManager {
|
|||||||
/**
|
/**
|
||||||
* Loads all registered extension.
|
* Loads all registered extension.
|
||||||
*/
|
*/
|
||||||
load() {
|
async load() {
|
||||||
this.listExtensions().forEach((ext) => {
|
await Promise.all(this.listExtensions().map((ext) => ext.onLoad()))
|
||||||
ext.onLoad()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -169,7 +167,8 @@ export class ExtensionManager {
|
|||||||
async activateExtension(extension: Extension) {
|
async activateExtension(extension: Extension) {
|
||||||
// Import class
|
// Import class
|
||||||
const extensionUrl = extension.url
|
const extensionUrl = extension.url
|
||||||
await import(/* @vite-ignore */convertFileSrc(extensionUrl)).then((extensionClass) => {
|
await import(/* @vite-ignore */ convertFileSrc(extensionUrl)).then(
|
||||||
|
(extensionClass) => {
|
||||||
// Register class if it has a default export
|
// Register class if it has a default export
|
||||||
if (
|
if (
|
||||||
typeof extensionClass.default === 'function' &&
|
typeof extensionClass.default === 'function' &&
|
||||||
@ -187,7 +186,8 @@ export class ExtensionManager {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import { fetchModels } from './models'
|
|||||||
import { ExtensionManager } from '@/lib/extension'
|
import { ExtensionManager } from '@/lib/extension'
|
||||||
import { fetch as fetchTauri } from '@tauri-apps/plugin-http'
|
import { fetch as fetchTauri } from '@tauri-apps/plugin-http'
|
||||||
|
|
||||||
|
|
||||||
export const getProviders = async (): Promise<ModelProvider[]> => {
|
export const getProviders = async (): Promise<ModelProvider[]> => {
|
||||||
const builtinProviders = predefinedProviders.map((provider) => {
|
const builtinProviders = predefinedProviders.map((provider) => {
|
||||||
let models = provider.models as Model[]
|
let models = provider.models as Model[]
|
||||||
@ -48,7 +47,6 @@ export const getProviders = async (): Promise<ModelProvider[]> => {
|
|||||||
const runtimeProviders: ModelProvider[] = []
|
const runtimeProviders: ModelProvider[] = []
|
||||||
for (const [providerName, value] of EngineManager.instance().engines) {
|
for (const [providerName, value] of EngineManager.instance().engines) {
|
||||||
const models = (await fetchModels()) ?? []
|
const models = (await fetchModels()) ?? []
|
||||||
|
|
||||||
const provider: ModelProvider = {
|
const provider: ModelProvider = {
|
||||||
active: false,
|
active: false,
|
||||||
persist: true,
|
persist: true,
|
||||||
@ -119,7 +117,6 @@ export const getProviders = async (): Promise<ModelProvider[]> => {
|
|||||||
return runtimeProviders.concat(builtinProviders as ModelProvider[])
|
return runtimeProviders.concat(builtinProviders as ModelProvider[])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches models from a provider's API endpoint
|
* Fetches models from a provider's API endpoint
|
||||||
* Always uses Tauri's HTTP client to bypass CORS issues
|
* Always uses Tauri's HTTP client to bypass CORS issues
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user