From 95ca326133adf71b5fe2e036de306489e3a3714f Mon Sep 17 00:00:00 2001 From: herblinernexxbizz <125579511+herblinernexxbizz@users.noreply.github.com> Date: Wed, 15 Mar 2023 12:29:07 +0100 Subject: [PATCH] Features/v3 add short and full guid (#3800) * add full guid and shortguid as javascript/jint functions with intellisense * add guid as string and rename other method --- .../Services/JintJavaScriptEvaluator.cs | 5 ++++- .../Providers/CommonFunctionsDefinitionProvider.cs | 14 +++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs b/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs index 6c3e0821c..e30f600c0 100644 --- a/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs +++ b/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs @@ -1,5 +1,6 @@ using System.Text.Json; using System.Text.Json.Serialization; +using System.Text.RegularExpressions; using Elsa.Expressions.Contracts; using Elsa.Expressions.Models; using Elsa.Extensions; @@ -74,12 +75,14 @@ public class JintJavaScriptEvaluator : IJavaScriptEvaluator // Create variable & input setters and getters for each variable. CreateMemoryBlockAccessors(engine, context); - engine.SetValue("isNullOrWhiteSpace", (Func)(value => string.IsNullOrWhiteSpace(value))); engine.SetValue("isNullOrEmpty", (Func)(value => string.IsNullOrEmpty(value))); engine.SetValue("parseGuid", (Func)(value => Guid.Parse(value))); engine.SetValue("toJson", (Func)(value => Serialize(value))); + engine.SetValue("getShortGuid", (Func)(value => Regex.Replace(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), "[/+=]", ""))); + engine.SetValue("getGuid", (Func)(value => Guid.NewGuid())); + engine.SetValue("getGuidString", (Func)(value => Guid.NewGuid().ToString())); // Add common .NET types. engine.RegisterType(); diff --git a/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonFunctionsDefinitionProvider.cs b/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonFunctionsDefinitionProvider.cs index f048cddc6..6af692fda 100644 --- a/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonFunctionsDefinitionProvider.cs +++ b/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonFunctionsDefinitionProvider.cs @@ -61,7 +61,19 @@ internal class CommonFunctionsDefinitionProvider : FunctionDefinitionProvider .Name("parseGuid") .Parameter("value", "string") .ReturnType("Guid")); - + + yield return CreateFunctionDefinition(builder => builder + .Name("getShortGuid") + .ReturnType("string")); + + yield return CreateFunctionDefinition(builder => builder + .Name("getGuid") + .ReturnType("Guid")); + + yield return CreateFunctionDefinition(builder => builder + .Name("getGuidString") + .ReturnType("string")); + yield return CreateFunctionDefinition(builder => builder .Name("toJson") .Parameter("value", "any")