From c1104e35d4cf5f3fc6b787463a03f79b84882c34 Mon Sep 17 00:00:00 2001 From: axeleron007 Date: Thu, 16 Sep 2021 13:30:29 +0300 Subject: [PATCH] Fix to Json Schema type definition parser --- .../RenderJavaScriptTypeDefinitions.cs | 9 +------- .../JsonTypeScriptDefinitionProvider.cs | 23 +++---------------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs b/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs index c1d596579..5fb181396 100644 --- a/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs +++ b/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs @@ -1,5 +1,4 @@ using System; -using System.Dynamic; using System.Linq; using System.Text; using System.Threading; @@ -8,8 +7,6 @@ using Elsa.Scripting.JavaScript.Events; using Elsa.Services; using Elsa.Services.Models; using MediatR; -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; namespace Elsa.Scripting.JavaScript.Handlers { @@ -143,11 +140,7 @@ namespace Elsa.Scripting.JavaScript.Handlers if (string.IsNullOrWhiteSpace(json)) return null; -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. - dynamic data = JsonConvert.DeserializeObject(json, new ExpandoObjectConverter()); -#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. - string title = data != null ? data.title : "Schema"; - return title; + return "Json"; } string? GetActivityTargetType(Models.ActivityDefinition activity) diff --git a/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs b/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs index 55f6d2ea7..70e08258f 100644 --- a/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs +++ b/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs @@ -1,14 +1,9 @@ -using System.Collections.Generic; -using System.Dynamic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Elsa.Models; using Elsa.Scripting.JavaScript.Providers; -using MediatR; -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; using NJsonSchema; using NJsonSchema.CodeGeneration.TypeScript; @@ -16,14 +11,7 @@ namespace Elsa.Scripting.JavaScript.Services { public class JsonTypeScriptDefinitionProvider : ITypeScriptDefinitionProvider { - private readonly IEnumerable _providers; - private readonly IMediator _mediator; - - public JsonTypeScriptDefinitionProvider(IEnumerable providers, IMediator mediator) - { - _providers = providers; - _mediator = mediator; - } + public JsonTypeScriptDefinitionProvider() {} public async Task GenerateTypeScriptDefinitionsAsync(StringBuilder builder, WorkflowDefinition? workflowDefinition = default, string? context = default, CancellationToken cancellationToken = default) { @@ -39,19 +27,14 @@ namespace Elsa.Scripting.JavaScript.Services if (json == null) continue; if (string.IsNullOrWhiteSpace(json)) continue; -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. - dynamic data = JsonConvert.DeserializeObject(json, new ExpandoObjectConverter()); -#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. - string? title = data != null ? data.title : null; - title = title != null ? title : "schema"; var schema = await JsonSchema.FromJsonAsync(json); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 4 }); - //var code = generator.GenerateTypes(); - var file = generator.GenerateFile(title) + + var file = generator.GenerateFile("Json") .Replace("\r\n", "\n") .Replace("export class", "declare class") .Replace("export interface", "declare interface");