< Summary

Information
Class: Elsa.Expressions.JavaScript.TypeDefinitions.Services.TypeDefinitionService
Assembly: Elsa.Expressions.JavaScript
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Expressions.JavaScript/TypeDefinitions/Services/TypeDefinitionService.cs
Line coverage
100%
Covered lines: 31
Uncovered lines: 0
Coverable lines: 31
Total lines: 63
Line coverage: 100%
Branch coverage
100%
Covered branches: 12
Total branches: 12
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GenerateTypeDefinitionsAsync()100%11100%
GetFunctionDefinitionsAsync()100%44100%
GetTypeDefinitionsAsync()100%44100%
GetVariableDefinitionsAsync()100%44100%

File(s)

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

#LineLine coverage
 1using Elsa.Expressions.JavaScript.TypeDefinitions.Contracts;
 2using Elsa.Expressions.JavaScript.TypeDefinitions.Models;
 3
 4namespace Elsa.Expressions.JavaScript.TypeDefinitions.Services;
 5
 6/// <inheritdoc />
 47public class TypeDefinitionService(
 48    IEnumerable<ITypeDefinitionProvider> typeDefinitionProviders,
 49    IEnumerable<IFunctionDefinitionProvider> functionDefinitionProviders,
 410    IEnumerable<IVariableDefinitionProvider> variableDefinitionProviders,
 411    ITypeDefinitionDocumentRenderer typeDefinitionDocumentRenderer)
 12    : ITypeDefinitionService
 13{
 14    /// <inheritdoc />
 15    public async Task<string> GenerateTypeDefinitionsAsync(TypeDefinitionContext context)
 16    {
 117        var typeDefinitions = await GetTypeDefinitionsAsync(context).ToListAsync(context.CancellationToken);
 118        var functionDefinitions = await GetFunctionDefinitionsAsync(context).ToListAsync(context.CancellationToken);
 119        var variableDefinitions = await GetVariableDefinitionsAsync(context).ToListAsync(context.CancellationToken);
 20
 121        var document = new TypeDefinitionsDocument
 122        {
 123            Functions = functionDefinitions,
 124            Types = typeDefinitions,
 125            Variables = variableDefinitions
 126        };
 27
 128        return typeDefinitionDocumentRenderer.Render(document);
 129    }
 30
 31    private async IAsyncEnumerable<FunctionDefinition> GetFunctionDefinitionsAsync(TypeDefinitionContext context)
 32    {
 1233        foreach (var provider in functionDefinitionProviders)
 34        {
 535            var definitions = await provider.GetFunctionDefinitionsAsync(context);
 36
 6837            foreach (var definition in definitions)
 2938                yield return definition;
 39        }
 140    }
 41
 42    private async IAsyncEnumerable<TypeDefinition> GetTypeDefinitionsAsync(TypeDefinitionContext context)
 43    {
 844        foreach (var provider in typeDefinitionProviders)
 45        {
 346            var definitions = await provider.GetTypeDefinitionsAsync(context);
 47
 2448            foreach (var definition in definitions)
 949                yield return definition;
 50        }
 151    }
 52
 53    private async IAsyncEnumerable<VariableDefinition> GetVariableDefinitionsAsync(TypeDefinitionContext context)
 54    {
 455        foreach (var provider in variableDefinitionProviders)
 56        {
 157            var definitions = await provider.GetVariableDefinitionsAsync(context);
 58
 459            foreach (var definition in definitions)
 160                yield return definition;
 61        }
 162    }
 63}