Class JavaScriptExecutionStrategy
java.lang.Object
ai.nervemind.app.executor.script.JavaScriptExecutionStrategy
- All Implemented Interfaces:
ScriptExecutionStrategy
@Component
public class JavaScriptExecutionStrategy
extends Object
implements ScriptExecutionStrategy
JavaScript execution strategy using GraalJS.
Executes JavaScript code in a sandboxed GraalVM context. This is the default script execution strategy and provides fast, secure execution.
Available Globals
$input/input- Data from previous nodes$node/node- Current node parameters
Example
// Transform input data
const items = $input.items || [];
return {
count: items.length,
processed: items.map(x => x.toUpperCase())
};
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classHelper class to bridge JavaScript console calls to Java logging. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionexecute(String code, Map<String, Object> input, ai.nervemind.common.domain.Node node, ExecutionService.ExecutionContext context) Execute a script with the given input data.Get a human-readable name for display.Get the language identifier this strategy handles.booleanCheck if this strategy is available (dependencies installed, etc.).Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ScriptExecutionStrategy
getAvailabilityInfo
-
Constructor Details
-
JavaScriptExecutionStrategy
public JavaScriptExecutionStrategy()Default constructor.
-
-
Method Details
-
execute
public Map<String,Object> execute(String code, Map<String, Object> input, ai.nervemind.common.domain.Node node, ExecutionService.ExecutionContext context) throws ScriptExecutionExceptionDescription copied from interface:ScriptExecutionStrategyExecute a script with the given input data.- Specified by:
executein interfaceScriptExecutionStrategy- Parameters:
code- the script code to executeinput- input data from previous nodesnode- the node being executed (for accessing parameters)context- the execution context- Returns:
- output data including script results merged with input
- Throws:
ScriptExecutionException- if execution fails
-
getLanguageId
Description copied from interface:ScriptExecutionStrategyGet the language identifier this strategy handles.- Specified by:
getLanguageIdin interfaceScriptExecutionStrategy- Returns:
- the language ID (e.g., "javascript", "python")
-
getDisplayName
Description copied from interface:ScriptExecutionStrategyGet a human-readable name for display.- Specified by:
getDisplayNamein interfaceScriptExecutionStrategy- Returns:
- display name (e.g., "JavaScript (GraalJS)", "Python (GraalPy)")
-
isAvailable
public boolean isAvailable()Description copied from interface:ScriptExecutionStrategyCheck if this strategy is available (dependencies installed, etc.).- Specified by:
isAvailablein interfaceScriptExecutionStrategy- Returns:
- true if the strategy can be used
-