< Summary

Information
Class: Elsa.Expressions.JavaScript.Options.JintOptions
Assembly: Elsa.Expressions.JavaScript
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Expressions.JavaScript/Options/JintOptions.cs
Line coverage
62%
Covered lines: 10
Uncovered lines: 6
Coverable lines: 16
Total lines: 110
Line coverage: 62.5%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%11100%
get_AllowClrAccess()100%11100%
get_AllowConfigurationAccess()100%11100%
get_ScriptCacheTimeout()100%11100%
get_DisableWrappers()100%11100%
get_DisableVariableCopying()100%11100%
ConfigureEngineOptions(...)100%210%
ConfigureEngineOptions(...)100%210%
ConfigureEngine(...)100%11100%
ConfigureEngine(...)100%11100%
RegisterType()0%620%
RegisterType(...)100%210%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Expressions.JavaScript/Options/JintOptions.cs

#LineLine coverage
 1using Elsa.Expressions.Models;
 2using Elsa.Extensions;
 3using Jint;
 4
 5namespace Elsa.Expressions.JavaScript.Options;
 6
 7/// <summary>
 8/// Options for the Jint JavaScript engine.
 9/// </summary>
 10public class JintOptions
 11{
 12    /// <summary>
 13    /// A list of callbacks that are invoked when the Jint engine options is created. Use this to configure the engine o
 14    /// </summary>
 28915    internal Action<Jint.Options, ExpressionExecutionContext> ConfigureEngineOptionsCallback = (_, _) => { };
 16
 17    /// <summary>
 18    /// A list of callbacks that are invoked when the Jint engine is created. Use this to configure the engine.
 19    /// </summary>
 28920    internal Action<Engine, ExpressionExecutionContext> ConfigureEngineCallback = (_, _) => { };
 21
 22    /// <summary>
 23    /// Enables access to any .NET class. Do not enable if you are executing workflows from untrusted sources (e.g. user
 24    ///
 25    /// See Jint docs for more: https://github.com/sebastienros/jint#accessing-net-assemblies-and-classes
 26    /// </summary>
 19027    public bool AllowClrAccess { get; set; }
 28
 29    /// <summary>
 30    /// Enables access to .NET configuration via the <c>getConfig</c> function.
 31    /// Do not enable if you are executing workflows from untrusted sources (e.g user defined workflows).
 32    /// </summary>
 18833    public bool AllowConfigurationAccess { get; set; }
 34
 35    /// <summary>
 36    /// The timeout for script caching.
 37    /// </summary>
 38    /// <remarks>
 39    /// The <c>ScriptCacheTimeout</c> property specifies the duration for which the scripts are cached in the Jint JavaS
 40    /// If the value of <c>ScriptCacheTimeout</c> is <c>null</c>, the scripts are cached indefinitely. If a time value i
 41    /// </remarks>
 37542    public TimeSpan? ScriptCacheTimeout { get; set; } = TimeSpan.FromDays(1);
 43
 44    /// <summary>
 45    /// Disables the generation of variable wrappers. E.g. <c>getMyVariable()</c> will no longer be available for variab
 46    /// This is useful if your application requires the use of invalid JavaScript variable names.
 47    /// </summary>
 56648    public bool DisableWrappers { get; set; }
 49
 50    /// <summary>
 51    /// Disables copying workflow variables into the Jint engine and copying them back into the workflow execution conte
 52    /// Disabling this option will increase performance but will also prevent you from accessing workflow variables from
 53    /// </summary>
 37854    public bool DisableVariableCopying { get; set; }
 55
 56    /// <summary>
 57    /// Configures the Jint engine options.
 58    /// </summary>
 59    /// <param name="configurator">A callback that is invoked when the Jint engine options are created. Use this to conf
 60    public JintOptions ConfigureEngineOptions(Action<Jint.Options> configurator)
 61    {
 062        ConfigureEngineOptionsCallback += (options, _) => configurator(options);
 063        return this;
 64    }
 65
 66    /// <summary>
 67    /// Configures the Jint engine options.
 68    /// </summary>
 69    /// <param name="configurator">A callback that is invoked when the Jint engine options are created. Use this to conf
 70    public JintOptions ConfigureEngineOptions(Action<Jint.Options, ExpressionExecutionContext> configurator)
 71    {
 072        ConfigureEngineOptionsCallback += configurator;
 073        return this;
 74    }
 75
 76    /// <summary>
 77    /// Configures the Jint engine.
 78    /// </summary>
 79    /// <param name="configurator">A callback that is invoked when the Jint engine is created. Use this to configure the
 80    public JintOptions ConfigureEngine(Action<Engine, ExpressionExecutionContext> configurator)
 81    {
 282        ConfigureEngineCallback += configurator;
 283        return this;
 84    }
 85
 86    /// <summary>
 87    /// Configures the Jint engine.
 88    /// </summary>
 89    /// <param name="configurator">A callback that is invoked when the Jint engine is created. Use this to configure the
 90    public JintOptions ConfigureEngine(Action<Engine> configurator)
 91    {
 3692        return ConfigureEngine((engine, _) => configurator(engine));
 93    }
 94
 95    /// <summary>
 96    /// Registers the specified type <c>T</c> with the engine.
 97    /// </summary>
 98    public JintOptions RegisterType<T>()
 99    {
 0100        return ConfigureEngine(engine => engine.RegisterType<T>());
 101    }
 102
 103    /// <summary>
 104    /// Registers the specified type with the engine.
 105    /// </summary>
 106    public JintOptions RegisterType(Type type)
 107    {
 0108        return ConfigureEngine(engine => engine.RegisterType(type));
 109    }
 110}