diff --git a/src/modules/Elsa.JavaScript/Features/JavaScriptFeature.cs b/src/modules/Elsa.JavaScript/Features/JavaScriptFeature.cs
index 88f37fdb3..e415ba7bd 100644
--- a/src/modules/Elsa.JavaScript/Features/JavaScriptFeature.cs
+++ b/src/modules/Elsa.JavaScript/Features/JavaScriptFeature.cs
@@ -6,11 +6,9 @@ using Elsa.Features.Attributes;
using Elsa.Features.Services;
using Elsa.JavaScript.Activities;
using Elsa.JavaScript.Expressions;
-using Elsa.JavaScript.Handlers;
using Elsa.JavaScript.Implementations;
using Elsa.JavaScript.Providers;
using Elsa.JavaScript.Services;
-using Elsa.Mediator.Extensions;
using Elsa.Mediator.Features;
using Elsa.Workflows.Management.Implementations;
using Microsoft.Extensions.DependencyInjection;
@@ -25,13 +23,13 @@ public class JavaScriptFeature : FeatureBase
{
}
+ ///
public override void Configure()
{
Services
.AddSingleton()
.AddSingleton()
.AddSingleton()
- .AddNotificationHandlersFrom()
.AddExpressionHandler();
}
}
\ No newline at end of file
diff --git a/src/modules/Elsa.JavaScript/Handlers/ConfigureJavaScriptEngineWithActivityOutput.cs b/src/modules/Elsa.JavaScript/Handlers/ConfigureJavaScriptEngineWithActivityOutput.cs
deleted file mode 100644
index 7e5798351..000000000
--- a/src/modules/Elsa.JavaScript/Handlers/ConfigureJavaScriptEngineWithActivityOutput.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using Elsa.JavaScript.Notifications;
-using Elsa.Mediator.Services;
-using Elsa.Workflows.Core;
-using Elsa.Workflows.Core.Services;
-
-namespace Elsa.JavaScript.Handlers;
-
-///
-/// Makes available activity output to the JavaScript runtime environment.
-///
-public class ConfigureJavaScriptEngineWithActivityOutput : INotificationHandler
-{
- private readonly IActivityWalker _activityWalker;
-
- public ConfigureJavaScriptEngineWithActivityOutput(IActivityWalker activityWalker)
- {
- _activityWalker = activityWalker;
- }
-
- public async Task HandleAsync(EvaluatingJavaScript notification, CancellationToken cancellationToken)
- {
- var engine = notification.Engine;
- var workflow = notification.Context.GetWorkflowExecutionContext().Workflow;
- var nodes = await _activityWalker.WalkAsync(workflow.Root, cancellationToken);
- var graph = nodes.Flatten();
- var register = notification.Context.Memory;
- var jsActivities = new Dictionary();
-
- foreach (var node in graph)
- {
- var properties = node.Activity.GetOutputs().ToList();
- var jsActivity = new Dictionary();
-
- foreach (var property in properties)
- {
- if (register.TryGetBlock(property.Value.MemoryBlockReference().Id, out var location))
- jsActivity[property.Name] = location.Value;
- }
-
- jsActivities[node.NodeId] = jsActivity;
- }
-
- engine.SetValue("activities", jsActivities);
- }
-}
\ No newline at end of file
diff --git a/src/modules/Elsa.JavaScript/Implementations/JintJavaScriptEvaluator.cs b/src/modules/Elsa.JavaScript/Implementations/JintJavaScriptEvaluator.cs
index 159fb1cd9..747327b15 100644
--- a/src/modules/Elsa.JavaScript/Implementations/JintJavaScriptEvaluator.cs
+++ b/src/modules/Elsa.JavaScript/Implementations/JintJavaScriptEvaluator.cs
@@ -1,4 +1,6 @@
-using Elsa.Expressions.Models;
+using System.Dynamic;
+using System.Text.Json;
+using Elsa.Expressions.Models;
using Elsa.JavaScript.Extensions;
using Elsa.JavaScript.Notifications;
using Elsa.JavaScript.Options;
@@ -10,17 +12,24 @@ using Microsoft.Extensions.Options;
namespace Elsa.JavaScript.Implementations
{
+ ///
+ /// Provides a JavaScript evaluator using Jint.
+ ///
public class JintJavaScriptEvaluator : IJavaScriptEvaluator
{
private readonly IEventPublisher _mediator;
private readonly JintOptions _jintOptions;
+ ///
+ /// Constructor.
+ ///
public JintJavaScriptEvaluator(IEventPublisher mediator, IOptions scriptOptions)
{
_mediator = mediator;
_jintOptions = scriptOptions.Value;
}
+ ///
public async Task