< Summary

Information
Class: Elsa.Expressions.JavaScript.TypeDefinitions.Services.TypeDefinitionDocumentRenderer
Assembly: Elsa.Expressions.JavaScript
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Expressions.JavaScript/TypeDefinitions/Services/TypeDefinitionDocumentRenderer.cs
Line coverage
100%
Covered lines: 29
Uncovered lines: 0
Coverable lines: 29
Total lines: 65
Line coverage: 100%
Branch coverage
95%
Covered branches: 21
Total branches: 22
Branch coverage: 95.4%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Render(...)100%66100%
Render(...)100%22100%
RenderMethod(...)50%22100%
Render(...)100%88100%
Render(...)100%22100%
RenderEnumMember(...)100%11100%
Render(...)100%11100%
RenderParameter(...)100%22100%
RenderParameters(...)100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Expressions.JavaScript/TypeDefinitions/Services/TypeDefinitionDocumentRenderer.cs

#LineLine coverage
 1using System.Text;
 2using Elsa.Expressions.JavaScript.TypeDefinitions.Contracts;
 3using Elsa.Expressions.JavaScript.TypeDefinitions.Models;
 4
 5namespace Elsa.Expressions.JavaScript.TypeDefinitions.Services;
 6
 7/// <inheritdoc />
 8public class TypeDefinitionDocumentRenderer : ITypeDefinitionDocumentRenderer
 9{
 10    /// <inheritdoc />
 11    public string Render(TypeDefinitionsDocument document)
 12    {
 113        var stringBuilder = new StringBuilder();
 14
 6015        foreach (var functionDefinition in document.Functions)
 2916            Render(functionDefinition, stringBuilder);
 17
 2018        foreach (var typeDefinition in document.Types)
 919            Render(typeDefinition, stringBuilder);
 20
 421        foreach (var variableDefinition in document.Variables)
 122            Render(variableDefinition, stringBuilder);
 23
 124        return stringBuilder.ToString();
 25    }
 26
 27    private void Render(FunctionDefinition functionDefinition, StringBuilder output)
 28    {
 2929        var returnType = functionDefinition.ReturnType != null ? $": {functionDefinition.ReturnType}" : "";
 2930        output.AppendLine($"declare function {functionDefinition.Name}({RenderParameters(functionDefinition.Parameters)}
 2931    }
 32
 33    private void RenderMethod(FunctionDefinition functionDefinition, StringBuilder output)
 34    {
 15135        var returnType = functionDefinition.ReturnType != null ? $" => {functionDefinition.ReturnType}" : "";
 15136        output.AppendLine($"{functionDefinition.Name}: ({RenderParameters(functionDefinition.Parameters)}){returnType};"
 15137    }
 38
 39    private void Render(TypeDefinition typeDefinition, StringBuilder output)
 40    {
 941        output.AppendLine($"declare {typeDefinition.DeclarationKeyword} {typeDefinition.Name} {{");
 42
 943        if (typeDefinition.DeclarationKeyword == "enum")
 44        {
 845            foreach (var property in typeDefinition.Properties)
 346                RenderEnumMember(property, output);
 47        }
 48        else
 49        {
 8250            foreach (var property in typeDefinition.Properties)
 3351                Render(property, output);
 52        }
 53
 32054        foreach (var method in typeDefinition.Methods)
 15155            RenderMethod(method, output);
 56
 957        output.AppendLine("}");
 958    }
 59
 3360    private void Render(PropertyDefinition property, StringBuilder output) => output.AppendLine($"{property.Name}{(prope
 361    private void RenderEnumMember(PropertyDefinition property, StringBuilder output) => output.AppendLine($"{property.Na
 162    private void Render(VariableDefinition variable, StringBuilder output) => output.AppendLine($"declare var {variable.
 16163    string RenderParameter(ParameterDefinition parameter) => $"{parameter.Name}{(parameter.IsOptional ? "?" : "")}: {par
 18064    string RenderParameters(IEnumerable<ParameterDefinition> parameters) => string.Join(", ", parameters.Select(RenderPa
 65}