Theme plugins (#231)

This commit is contained in:
Gregory Schier
2025-07-03 13:06:30 -07:00
committed by GitHub
parent a6979cf37e
commit 19c6ad9d97
64 changed files with 1754 additions and 1623 deletions

View File

@@ -8,8 +8,9 @@ use crate::events::{
CallTemplateFunctionArgs, CallTemplateFunctionRequest, CallTemplateFunctionResponse,
EmptyPayload, FilterRequest, FilterResponse, GetHttpAuthenticationConfigRequest,
GetHttpAuthenticationConfigResponse, GetHttpAuthenticationSummaryResponse,
GetHttpRequestActionsResponse, GetTemplateFunctionsResponse, ImportRequest, ImportResponse,
InternalEvent, InternalEventPayload, JsonPrimitive, PluginWindowContext, RenderPurpose,
GetHttpRequestActionsResponse, GetTemplateFunctionsResponse, GetThemesRequest,
GetThemesResponse, ImportRequest, ImportResponse, InternalEvent, InternalEventPayload,
JsonPrimitive, PluginWindowContext, RenderPurpose,
};
use crate::native_template_functions::template_function_secure;
use crate::nodejs::start_nodejs_plugin_runtime;
@@ -404,6 +405,27 @@ impl PluginManager {
Ok(events)
}
pub async fn get_themes<R: Runtime>(
&self,
window: &WebviewWindow<R>,
) -> Result<Vec<GetThemesResponse>> {
let reply_events = self
.send_and_wait(
&PluginWindowContext::new(window),
&InternalEventPayload::GetThemesRequest(GetThemesRequest {}),
)
.await?;
let mut themes = Vec::new();
for event in reply_events {
if let InternalEventPayload::GetThemesResponse(resp) = event.payload {
themes.push(resp.clone());
}
}
Ok(themes)
}
pub async fn get_http_request_actions<R: Runtime>(
&self,
window: &WebviewWindow<R>,
@@ -670,9 +692,9 @@ impl PluginManager {
content_type: &str,
) -> Result<FilterResponse> {
let plugin_name = if content_type.to_lowercase().contains("json") {
"@yaakapp/filter-jsonpath"
"@yaak/filter-jsonpath"
} else {
"@yaakapp/filter-xpath"
"@yaak/filter-xpath"
};
let plugin = self