jan/web/services/pluginService.ts
Louis 96dba2690d feat: class-based plugin manager
chore: add facades

refactor: core module export

refactor: inference plugin - deprecate function registering (#537)

* refactor: revamp inference plugin as class - deprecate function registering

* refactor: monitoring plugin - deprecate service registering (#538)

refactor: revamp inference plugin as class - deprecate function registering

chore: update import

refactor: plugin revamp - model management

chore: update build steps and remove experimental plugins

refactor: remove pluggable electron

chore: add sorting for conversations

chore: build plugins for testing

chore: consistent plugin directory name

chore: docs

chore: fix CI

chore: update conversation prefix
2023-11-06 13:46:01 +07:00

35 lines
875 B
TypeScript

'use client'
import { PluginType } from '@janhq/core'
import { pluginManager } from '@plugin/PluginManager'
export const isCorePluginInstalled = () => {
if (!pluginManager.get(PluginType.Conversational)) {
return false
}
if (!pluginManager.get(PluginType.Inference)) return false
if (!pluginManager.get(PluginType.Model)) {
return false
}
return true
}
export const setupBasePlugins = async () => {
if (
typeof window === 'undefined' ||
typeof window.electronAPI === 'undefined'
) {
return
}
const basePlugins = await window.electronAPI.basePlugins()
if (
!pluginManager.get(PluginType.Conversational) ||
!pluginManager.get(PluginType.Inference) ||
!pluginManager.get(PluginType.Model)
) {
const installed = await pluginManager.install(basePlugins)
if (installed) {
window.location.reload()
}
}
}