Files
metabuilder/frontends/nextjs/src/lib/workflow/execute-transform-node.ts
2025-12-25 17:16:29 +00:00

28 lines
899 B
TypeScript

import type { WorkflowNode } from '../level-types'
import type { WorkflowExecutionContext } from './workflow-execution-context'
import type { WorkflowState } from './workflow-state'
import { logToWorkflow } from './log-to-workflow'
/**
* Execute a transform node
*/
export async function executeTransformNode(
node: WorkflowNode,
data: any,
context: WorkflowExecutionContext,
state: WorkflowState
): Promise<{ success: boolean; output?: any; error?: string }> {
const transform = node.config.transform || 'data'
try {
const result = new Function('data', 'context', `return ${transform}`)(data, context)
logToWorkflow(state, `Transform result: ${JSON.stringify(result)}`)
return { success: true, output: result }
} catch (error) {
return {
success: false,
error: `Transform failed: ${error instanceof Error ? error.message : String(error)}`,
}
}
}