Merge pull request #6797 from elsa-workflows/feat/6796-streamtobase64-streamtobytes-custom-js-functions
Implemented custom js functions: streamToBytes and streamToBase64
This commit is contained in:
commit
51fb7bfaef
|
|
@ -59,6 +59,8 @@ public class ConfigureEngineWithCommonFunctions(IOptions<JintOptions> options) :
|
|||
engine.SetValue("bytesFromBase64", (Func<string, byte[]>)(value => Convert.FromBase64String(value)));
|
||||
engine.SetValue("stringToBase64", (Func<string, string>)(value => Convert.ToBase64String(Encoding.UTF8.GetBytes(value))));
|
||||
engine.SetValue("stringFromBase64", (Func<string, string>)(value => Encoding.UTF8.GetString(Convert.FromBase64String(value))));
|
||||
engine.SetValue("streamToBytes", (Func<Stream, byte[]>)(value => StreamToBytes(value)));
|
||||
engine.SetValue("streamToBase64", (Func<Stream, string>)(value => Convert.ToBase64String(StreamToBytes(value))));
|
||||
|
||||
// Deprecated, use newGuidString instead.
|
||||
engine.SetValue("getGuidString", (Func<string>)(() => Guid.NewGuid().ToString()));
|
||||
|
|
@ -67,7 +69,7 @@ public class ConfigureEngineWithCommonFunctions(IOptions<JintOptions> options) :
|
|||
engine.SetValue("getShortGuid", (Func<string>)(() => Regex.Replace(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), "[/+=]", "")));
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
|
||||
private string Serialize(object value)
|
||||
{
|
||||
return JsonSerializer.Serialize(value, _jsonSerializerOptions);
|
||||
|
|
@ -82,4 +84,11 @@ public class ConfigureEngineWithCommonFunctions(IOptions<JintOptions> options) :
|
|||
options.Converters.Add(new JsonStringEnumConverter());
|
||||
return options;
|
||||
}
|
||||
|
||||
private byte[] StreamToBytes(Stream stream)
|
||||
{
|
||||
using var memoryStream = new MemoryStream();
|
||||
stream.CopyTo(memoryStream);
|
||||
return memoryStream.ToArray();
|
||||
}
|
||||
}
|
||||
|
|
@ -136,6 +136,16 @@ internal class CommonFunctionsDefinitionProvider(ITypeAliasRegistry typeAliasReg
|
|||
.Name("stringToBase64")
|
||||
.Parameter("value", "string")
|
||||
.ReturnType("string"));
|
||||
|
||||
yield return CreateFunctionDefinition(builder => builder
|
||||
.Name("streamToBytes")
|
||||
.Parameter("value", "Stream")
|
||||
.ReturnType("Byte[]"));
|
||||
|
||||
yield return CreateFunctionDefinition(builder => builder
|
||||
.Name("streamToBase64")
|
||||
.Parameter("value", "Stream")
|
||||
.ReturnType("string"));
|
||||
|
||||
if (!options.Value.DisableWrappers)
|
||||
{
|
||||
|
|
@ -151,7 +161,7 @@ internal class CommonFunctionsDefinitionProvider(ITypeAliasRegistry typeAliasReg
|
|||
|
||||
// set{Variable}.
|
||||
yield return CreateFunctionDefinition(builder => builder.Name($"set{pascalName}").Parameter("value", typeAlias));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue