mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-11 06:20:24 +01:00
[PR #324] [MERGED] collection plugin actions + file read/write #247
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mountain-loop/yaak/pull/324
Author: @turchinc
Created: 12/16/2025
Status: ✅ Merged
Merged: 12/29/2025
Merged by: @gschier
Base:
main← Head:main📝 Commits (10+)
e17aae2collection plugin actions218fdf3Merge main into turchinc/main (PR #324)6d5ba68Remove unnecessary ctx.file APIs - plugins can use node:fs directly07d743dUse workspace from plugin context instead of accepting it as parameter3855058Refactor new actions apis7446d62Add test actions to copy-curl plugin and add WebSocket request actions to Sidebar3c45464Get everything workingcdd5ba3Remove unused8e1959bUse generated types for FolderActionPlugin and WorkspaceActionPlugin1c29f4dMerge branch 'main' into main📊 Changes
21 files changed (+801 additions, -29 deletions)
View changed files
📝
packages/plugin-runtime-types/src/bindings/gen_events.ts(+33 -1)📝
packages/plugin-runtime-types/src/plugins/Context.ts(+8 -0)➕
packages/plugin-runtime-types/src/plugins/FolderActionPlugin.ts(+6 -0)➕
packages/plugin-runtime-types/src/plugins/WebSocketRequestActionPlugin.ts(+6 -0)➕
packages/plugin-runtime-types/src/plugins/WorkspaceActionPlugin.ts(+6 -0)📝
packages/plugin-runtime-types/src/plugins/index.ts(+8 -0)📝
packages/plugin-runtime/src/PluginInstance.ts(+104 -0)📝
src-tauri/src/http_request.rs(+6 -6)📝
src-tauri/src/lib.rs(+87 -6)📝
src-tauri/src/plugin_events.rs(+30 -3)📝
src-tauri/yaak-models/src/models.rs(+3 -3)📝
src-tauri/yaak-plugins/bindings/gen_events.ts(+33 -1)📝
src-tauri/yaak-plugins/src/events.rs(+145 -0)📝
src-tauri/yaak-plugins/src/manager.rs(+123 -8)📝
src-web/components/Sidebar.tsx(+23 -0)📝
src-web/components/WorkspaceActionsDropdown.tsx(+20 -1)📝
src-web/components/core/Editor/twig/twig.test.ts(+2 -0)➕
src-web/hooks/useFolderActions.ts(+50 -0)➕
src-web/hooks/useWebSocketRequestActions.ts(+52 -0)➕
src-web/hooks/useWorkspaceActions.ts(+50 -0)...and 1 more files
📄 Description
Plugin Runtime Types — Collection Actions
Primary use case: export actions or similar for all items in a collection, supporting folders, requests and exposing read/write to provide export (and potentially import)
PR should solve or enable solutions for:
httpCollectionActionsDefine custom actions that appear in folder/workspace context menus.
Field on
PluginDefinition:httpCollectionActions?: HttpCollectionActionPlugin[]HttpCollectionActionPluginshape:label: string— displayed in context menuicon?: Icon— optional icon for the actiononSelect(ctx: Context, args: CallHttpCollectionActionArgs)— called when user invokes the actionCallHttpCollectionActionArgsshape:folder?: Folder— present when action was invoked on a folderworkspace?: Workspace— present when action was invoked on a workspaceNotes:
ctx.folder.list()andctx.httpRequest.list()New Context APIs
ctx.folder.list(args)List all folders in a workspace.
ctx.file.writeText(filePath, content)Write text content to a file.
ctx.file.readText(filePath)Read text content from a file.
ctx.httpRequest.list(args)List all requests in a workspace or folder.
Notes:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.