mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-09 07:14:47 -05:00
Move local plugin install command into plugins_ext
This commit is contained in:
@@ -37,8 +37,8 @@ use yaak_grpc::{Code, ServiceDefinition, serialize_message};
|
|||||||
use yaak_mac_window::AppHandleMacWindowExt;
|
use yaak_mac_window::AppHandleMacWindowExt;
|
||||||
use yaak_models::models::{
|
use yaak_models::models::{
|
||||||
AnyModel, CookieJar, Environment, GrpcConnection, GrpcConnectionState, GrpcEvent,
|
AnyModel, CookieJar, Environment, GrpcConnection, GrpcConnectionState, GrpcEvent,
|
||||||
GrpcEventType, HttpRequest, HttpResponse, HttpResponseEvent, HttpResponseState, Plugin,
|
GrpcEventType, HttpRequest, HttpResponse, HttpResponseEvent, HttpResponseState, Workspace,
|
||||||
PluginSource, Workspace, WorkspaceMeta,
|
WorkspaceMeta,
|
||||||
};
|
};
|
||||||
use yaak_models::util::{BatchUpsertResult, UpdateSource, get_workspace_export_resources};
|
use yaak_models::util::{BatchUpsertResult, UpdateSource, get_workspace_export_resources};
|
||||||
use yaak_plugins::events::{
|
use yaak_plugins::events::{
|
||||||
@@ -1345,35 +1345,6 @@ async fn cmd_send_http_request<R: Runtime>(
|
|||||||
Ok(r)
|
Ok(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
|
||||||
async fn cmd_install_plugin<R: Runtime>(
|
|
||||||
directory: &str,
|
|
||||||
url: Option<String>,
|
|
||||||
plugin_manager: State<'_, PluginManager>,
|
|
||||||
app_handle: AppHandle<R>,
|
|
||||||
window: WebviewWindow<R>,
|
|
||||||
) -> YaakResult<Plugin> {
|
|
||||||
let plugin = app_handle.db().upsert_plugin(
|
|
||||||
&Plugin {
|
|
||||||
directory: directory.into(),
|
|
||||||
url,
|
|
||||||
enabled: true,
|
|
||||||
source: PluginSource::Filesystem,
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
&UpdateSource::from_window_label(window.label()),
|
|
||||||
)?;
|
|
||||||
|
|
||||||
plugin_manager
|
|
||||||
.add_plugin(
|
|
||||||
&PluginContext::new(Some(window.label().to_string()), window.workspace_id()),
|
|
||||||
&plugin,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
Ok(plugin)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
async fn cmd_reload_plugins<R: Runtime>(
|
async fn cmd_reload_plugins<R: Runtime>(
|
||||||
app_handle: AppHandle<R>,
|
app_handle: AppHandle<R>,
|
||||||
@@ -1658,7 +1629,6 @@ pub fn run() {
|
|||||||
cmd_workspace_actions,
|
cmd_workspace_actions,
|
||||||
cmd_folder_actions,
|
cmd_folder_actions,
|
||||||
cmd_import_data,
|
cmd_import_data,
|
||||||
cmd_install_plugin,
|
|
||||||
cmd_metadata,
|
cmd_metadata,
|
||||||
cmd_new_child_window,
|
cmd_new_child_window,
|
||||||
cmd_new_main_window,
|
cmd_new_main_window,
|
||||||
@@ -1727,6 +1697,7 @@ pub fn run() {
|
|||||||
git_ext::cmd_git_rm_remote,
|
git_ext::cmd_git_rm_remote,
|
||||||
//
|
//
|
||||||
// Plugin commands
|
// Plugin commands
|
||||||
|
plugins_ext::cmd_plugins_install_from_directory,
|
||||||
plugins_ext::cmd_plugins_search,
|
plugins_ext::cmd_plugins_search,
|
||||||
plugins_ext::cmd_plugins_install,
|
plugins_ext::cmd_plugins_install,
|
||||||
plugins_ext::cmd_plugins_uninstall,
|
plugins_ext::cmd_plugins_uninstall,
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ use tauri::{
|
|||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
use ts_rs::TS;
|
use ts_rs::TS;
|
||||||
use yaak_api::yaak_api_client;
|
use yaak_api::yaak_api_client;
|
||||||
use yaak_models::models::Plugin;
|
use yaak_models::models::{Plugin, PluginSource};
|
||||||
|
use yaak_models::util::UpdateSource;
|
||||||
use yaak_plugins::api::{
|
use yaak_plugins::api::{
|
||||||
PluginNameVersion, PluginSearchResponse, PluginUpdatesResponse, check_plugin_updates,
|
PluginNameVersion, PluginSearchResponse, PluginUpdatesResponse, check_plugin_updates,
|
||||||
search_plugins,
|
search_plugins,
|
||||||
@@ -164,6 +165,28 @@ pub async fn cmd_plugins_install<R: Runtime>(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[command]
|
||||||
|
pub async fn cmd_plugins_install_from_directory<R: Runtime>(
|
||||||
|
window: WebviewWindow<R>,
|
||||||
|
directory: &str,
|
||||||
|
) -> Result<Plugin> {
|
||||||
|
let plugin = window.db().upsert_plugin(
|
||||||
|
&Plugin {
|
||||||
|
directory: directory.into(),
|
||||||
|
url: None,
|
||||||
|
enabled: true,
|
||||||
|
source: PluginSource::Filesystem,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
&UpdateSource::from_window_label(window.label()),
|
||||||
|
)?;
|
||||||
|
|
||||||
|
let plugin_manager = Arc::new((*window.state::<PluginManager>()).clone());
|
||||||
|
plugin_manager.add_plugin(&window.plugin_context(), &plugin).await?;
|
||||||
|
|
||||||
|
Ok(plugin)
|
||||||
|
}
|
||||||
|
|
||||||
#[command]
|
#[command]
|
||||||
pub async fn cmd_plugins_uninstall<R: Runtime>(
|
pub async fn cmd_plugins_uninstall<R: Runtime>(
|
||||||
plugin_id: &str,
|
plugin_id: &str,
|
||||||
|
|||||||
@@ -24,3 +24,7 @@ export async function checkPluginUpdates() {
|
|||||||
export async function updateAllPlugins() {
|
export async function updateAllPlugins() {
|
||||||
return invoke<PluginNameVersion[]>('cmd_plugins_update_all', {});
|
return invoke<PluginNameVersion[]>('cmd_plugins_update_all', {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function installPluginFromDirectory(directory: string) {
|
||||||
|
return invoke<void>('cmd_plugins_install_from_directory', { directory });
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { invokeCmd } from '../lib/tauri';
|
import { installPluginFromDirectory } from '@yaakapp-internal/plugins';
|
||||||
import { useFastMutation } from './useFastMutation';
|
import { useFastMutation } from './useFastMutation';
|
||||||
|
|
||||||
export function useInstallPlugin() {
|
export function useInstallPlugin() {
|
||||||
return useFastMutation<void, unknown, string>({
|
return useFastMutation<void, unknown, string>({
|
||||||
mutationKey: ['install_plugin'],
|
mutationKey: ['install_plugin'],
|
||||||
mutationFn: async (directory: string) => {
|
mutationFn: async (directory: string) => {
|
||||||
await invokeCmd('cmd_install_plugin', { directory });
|
await installPluginFromDirectory(directory);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ type TauriCmd =
|
|||||||
| 'cmd_http_request_body'
|
| 'cmd_http_request_body'
|
||||||
| 'cmd_http_response_body'
|
| 'cmd_http_response_body'
|
||||||
| 'cmd_import_data'
|
| 'cmd_import_data'
|
||||||
| 'cmd_install_plugin'
|
|
||||||
| 'cmd_metadata'
|
| 'cmd_metadata'
|
||||||
| 'cmd_restart'
|
| 'cmd_restart'
|
||||||
| 'cmd_new_child_window'
|
| 'cmd_new_child_window'
|
||||||
|
|||||||
Reference in New Issue
Block a user