using Elsa.Expressions.JavaScript.TypeDefinitions.Abstractions;
using Elsa.Expressions.JavaScript.TypeDefinitions.Models;
using Elsa.Workflows.Helpers;
using JetBrains.Annotations;
// ReSharper disable once CheckNamespace
namespace Elsa.Expressions.JavaScript.Activities;
///
/// Produces s for common functions.
///
[UsedImplicitly]
internal class RunJavaScriptFunctionsDefinitionProvider : FunctionDefinitionProvider
{
protected override IEnumerable GetFunctionDefinitions(TypeDefinitionContext context)
{
if (context.ActivityTypeName != ActivityTypeNameHelper.GenerateTypeName())
yield break;
if(context.PropertyName != nameof(RunJavaScript.Script))
yield break;
yield return CreateFunctionDefinition(builder => builder
.Name("setOutcome")
.Parameter("name", "string")
.ReturnType("void"));
yield return CreateFunctionDefinition(builder => builder
.Name("setOutcomes")
.Parameter("names", "string[]")
.ReturnType("void"));
}
}