Package io.kestra.plugin.graalvm.js
Class Eval
java.lang.Object
io.kestra.core.models.tasks.Task
io.kestra.plugin.graalvm.AbstractEval
io.kestra.plugin.graalvm.js.Eval
- All Implemented Interfaces:
io.kestra.core.models.Plugin,io.kestra.core.models.PluginVersioning,io.kestra.core.models.tasks.RunnableTask<AbstractEval.Output>,io.kestra.core.models.tasks.TaskInterface,io.kestra.core.models.WorkerJobLifecycle
@Plugin(examples=@Example(full=true,title="Execute a JavaScript script using the GraalVM scripting engine.",code="id: evalJs\nnamespace: company.team\n\ntasks:\n - id: evalJs\n type: io.kestra.plugin.graalvm.js.Eval\n outputs:\n - out\n - map\n script: |\n (function() {\n var Counter = Java.type(\'io.kestra.core.models.executions.metrics.Counter\');\n var File = Java.type(\'java.io.File\');\n var FileOutputStream = Java.type(\'java.io.FileOutputStream\');\n logger.info(\'Task started\');\n runContext.metric(Counter.of(\'total\', 666, \'name\', \'bla\'));\n map = {\'test\': \'here\'};\n var tempFile = runContext.workingDir().createTempFile().toFile();\n var output = new FileOutputStream(tempFile);\n output.write([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);\n out = runContext.storage().putFile(tempFile);\n return {\"map\": map, \"out\": out};\n })"),
metrics=@Metric(name="records",type="counter",unit="count",description="Tracks a user defined numeric value emitted from the JavaScript script, such as the number of processed records or computed results."))
public class Eval
extends AbstractEval
-
Nested Class Summary
Nested classes/interfaces inherited from class io.kestra.plugin.graalvm.AbstractEval
AbstractEval.OutputNested classes/interfaces inherited from class io.kestra.core.models.tasks.Task
io.kestra.core.models.tasks.Task.TaskBuilder<C extends io.kestra.core.models.tasks.Task,B extends io.kestra.core.models.tasks.Task.TaskBuilder<C, B>> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected @NotNull io.kestra.core.models.property.Property<String> Fields inherited from class io.kestra.plugin.graalvm.AbstractEval
outputsFields inherited from class io.kestra.core.models.tasks.Task
disabled, id, retry, timeout, type, versionFields inherited from interface io.kestra.core.models.PluginVersioning
DESCRIPTION, TITLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.graalvm.polyglot.ContextbuildContext(io.kestra.core.runners.RunContext runContext, OutputStream out, OutputStream err) protected org.graalvm.polyglot.Context.BuildercontextBuilder(io.kestra.core.runners.RunContext runContext) protected org.graalvm.polyglot.SourcegenerateSource(String languageId, io.kestra.core.runners.RunContext runContext) protected org.graalvm.polyglot.ValuegetBindings(org.graalvm.polyglot.Context context, String languageId) io.kestra.core.models.property.Property<String> run(io.kestra.core.runners.RunContext runContext) Methods inherited from class io.kestra.plugin.graalvm.AbstractEval
runMethods inherited from class io.kestra.core.models.tasks.Task
findById, findById, getAssets, getDescription, getDisabled, getId, getLogLevel, getRetry, getRunIf, getTaskCache, getTimeout, getType, getVersion, getWorkerGroup, isAllowFailure, isAllowWarning, isFlowable, isLogToFile, isSendToWorkerTaskMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.kestra.core.models.WorkerJobLifecycle
kill, stop
-
Field Details
-
script
@NotNull @PluginProperty(group="main") protected @NotNull io.kestra.core.models.property.Property<String> script
-
-
Constructor Details
-
Eval
public Eval()
-
-
Method Details
-
getScript
@PluginProperty(language=JAVASCRIPT) public io.kestra.core.models.property.Property<String> getScript() -
run
- Throws:
Exception
-
buildContext
protected org.graalvm.polyglot.Context buildContext(io.kestra.core.runners.RunContext runContext, OutputStream out, OutputStream err) -
getBindings
protected org.graalvm.polyglot.Value getBindings(org.graalvm.polyglot.Context context, String languageId) -
contextBuilder
protected org.graalvm.polyglot.Context.Builder contextBuilder(io.kestra.core.runners.RunContext runContext) -
generateSource
protected org.graalvm.polyglot.Source generateSource(String languageId, io.kestra.core.runners.RunContext runContext) throws io.kestra.core.exceptions.IllegalVariableEvaluationException - Throws:
io.kestra.core.exceptions.IllegalVariableEvaluationException
-