Improve return type definition of ExecuteCodePluginTask

This commit is contained in:
Dominik Jain 2025-09-27 15:46:52 +02:00 committed by Dominik Jain
parent 77f4a978be
commit 223d6d50b0
3 changed files with 25 additions and 6 deletions

View File

@ -78,3 +78,18 @@ export interface ExecuteCodeTaskParams {
*/
code: string;
}
/**
* Result data for the executeCode task.
*/
export interface ExecuteCodeTaskResultData<T> {
/**
* The result of the executed code, if any.
*/
result: T;
/**
* Captured console output during code execution.
*/
log: string;
}

View File

@ -1,5 +1,5 @@
import { PluginTask } from "../PluginTask";
import { ExecuteCodeTaskParams, PluginTaskResult } from "@penpot-mcp/common";
import { ExecuteCodeTaskParams, ExecuteCodeTaskResultData, PluginTaskResult } from "@penpot-mcp/common";
/**
* Task for executing JavaScript code in the plugin context.
@ -7,7 +7,10 @@ import { ExecuteCodeTaskParams, PluginTaskResult } from "@penpot-mcp/common";
* This task instructs the plugin to execute arbitrary JavaScript code
* and return the result of execution.
*/
export class ExecuteCodePluginTask extends PluginTask<ExecuteCodeTaskParams, PluginTaskResult<any>> {
export class ExecuteCodePluginTask extends PluginTask<
ExecuteCodeTaskParams,
PluginTaskResult<ExecuteCodeTaskResultData<any>>
> {
/**
* Creates a new execute code task.
*

View File

@ -1,5 +1,5 @@
import { Task, TaskHandler } from "../TaskHandler";
import { ExecuteCodeTaskParams } from "../../../common/src";
import { ExecuteCodeTaskParams, ExecuteCodeTaskResultData } from "../../../common/src";
/**
* Console implementation that captures all log output for code execution.
@ -205,10 +205,11 @@ export class ExecuteCodeTaskHandler extends TaskHandler<ExecuteCodeTaskParams> {
console.log("Code execution result:", result);
// return both result and captured log
task.sendSuccess({
// return result and captured log
let resultData: ExecuteCodeTaskResultData<any> = {
result: result,
log: this.context.console.getLog(),
});
};
task.sendSuccess(resultData);
}
}