using Elsa.Expressions.Features; using Elsa.Expressions.Services; using Elsa.Extensions; using Elsa.Features.Abstractions; using Elsa.Features.Attributes; using Elsa.Features.Services; using Elsa.JavaScript.Activities; using Elsa.JavaScript.Contracts; using Elsa.JavaScript.Expressions; using Elsa.JavaScript.Providers; using Elsa.JavaScript.Services; using Elsa.JavaScript.TypeDefinitions.Contracts; using Elsa.JavaScript.TypeDefinitions.Providers; using Elsa.JavaScript.TypeDefinitions.Services; using Elsa.Mediator.Features; using Elsa.Workflows.Management.Implementations; using Microsoft.Extensions.DependencyInjection; namespace Elsa.JavaScript.Features; /// /// Installs JavaScript integration. /// [DependsOn(typeof(MediatorFeature))] [DependsOn(typeof(ExpressionsFeature))] public class JavaScriptFeature : FeatureBase { /// public JavaScriptFeature(IModule module) : base(module) { } /// public override void Configure() { Module.UseWorkflowManagement(management => management.AddActivitiesFrom()); } /// public override void Apply() { // JavaScript services. Services .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() .AddExpressionHandler() ; // Type definition services. Services .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() ; // Handlers. Services.AddNotificationHandlersFrom(); } }