Pass return value through execution-complete message instead of logging

- Return value now passed to window.complete(error, returnValue)
- execution-complete message includes returnValue field
- SandboxResult interface updated to include returnValue
- executionConsumer passes returnValue in resolved promise
- Return values properly captured and available to callers
This commit is contained in:
Mario Zechner 2025-10-09 20:47:26 +02:00
parent 9a3f01fcb8
commit 5fc3857666
2 changed files with 5 additions and 8 deletions

View file

@ -120,7 +120,7 @@ export class ConsoleRuntimeProvider implements SandboxRuntimeProvider {
// Expose complete() method for user code to call
let completionSent = false;
(window as any).complete = async (error?: { message: string; stack: string }) => {
(window as any).complete = async (error?: { message: string; stack: string }, returnValue?: any) => {
if (completionSent) return;
completionSent = true;
@ -138,6 +138,7 @@ export class ConsoleRuntimeProvider implements SandboxRuntimeProvider {
console.log("Reporting execution complete");
await (window as any).sendRuntimeMessage({
type: "execution-complete",
returnValue,
});
console.log("Execution completed");
}