From e31f804ec0ed534efbdb5dc46437e2ebdd9c0389 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 9 Dec 2021 15:19:16 +0100 Subject: [PATCH] Update HTTP Endpoint type definition renderer --- .../HttpEndpointTypeDefinitionRenderer.cs | 31 +++++++++---------- .../DefaultActivityTypeDefinitionRenderer.cs | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/activities/Elsa.Activities.Http/JavaScript/HttpEndpointTypeDefinitionRenderer.cs b/src/activities/Elsa.Activities.Http/JavaScript/HttpEndpointTypeDefinitionRenderer.cs index 5ccc62528..c2a9fe36e 100644 --- a/src/activities/Elsa.Activities.Http/JavaScript/HttpEndpointTypeDefinitionRenderer.cs +++ b/src/activities/Elsa.Activities.Http/JavaScript/HttpEndpointTypeDefinitionRenderer.cs @@ -15,6 +15,8 @@ namespace Elsa.Activities.Http.JavaScript { public class HttpEndpointTypeDefinitionRenderer : DefaultActivityTypeDefinitionRenderer { + public override bool GetCanRenderType(ActivityType activityType) => activityType.Type == typeof(HttpEndpoint); + public override async ValueTask RenderTypeDeclarationAsync( RenderingTypeScriptDefinitions notification, ActivityType activityType, @@ -23,27 +25,24 @@ namespace Elsa.Activities.Http.JavaScript StringBuilder writer, CancellationToken cancellationToken = default) { - if (activityType.Type == typeof(HttpEndpoint)) + var targetTypeSchema = activityDefinition.Properties.First(x => x.Name == nameof(HttpEndpoint.Schema)).Expressions.Values.First(); + + if (!string.IsNullOrWhiteSpace(targetTypeSchema)) { - var targetTypeSchema = activityDefinition.Properties.First(x => x.Name == nameof(HttpEndpoint.Schema)).Expressions.Values.First(); - - if (!string.IsNullOrWhiteSpace(targetTypeSchema)) + var jsonSchema = await JsonSchema.FromJsonAsync(targetTypeSchema, cancellationToken); + var generator = new TypeScriptGenerator(jsonSchema, new TypeScriptGeneratorSettings { - var jsonSchema = await JsonSchema.FromJsonAsync(targetTypeSchema, cancellationToken); - var generator = new TypeScriptGenerator(jsonSchema, new TypeScriptGeneratorSettings - { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 4 - }); + TypeStyle = TypeScriptTypeStyle.Interface, + TypeScriptVersion = 4 + }); - var typeScriptType = $"{activityDefinition.Name}Output"; + var typeScriptType = $"{activityDefinition.Name}Output"; - var jsonSchemaTypes = generator.GenerateFile(typeScriptType) - .Replace("\r\n", "\n") - .Replace("export interface", "declare class"); + var jsonSchemaTypes = generator.GenerateFile(typeScriptType) + .Replace("\r\n", "\n") + .Replace("export interface", "declare class"); - writer.AppendLine(jsonSchemaTypes); - } + writer.AppendLine(jsonSchemaTypes); } await base.RenderTypeDeclarationAsync(notification, activityType, activityDescriptor, activityDefinition, writer, cancellationToken); diff --git a/src/scripting/Elsa.Scripting.JavaScript/Providers/DefaultActivityTypeDefinitionRenderer.cs b/src/scripting/Elsa.Scripting.JavaScript/Providers/DefaultActivityTypeDefinitionRenderer.cs index 69459537f..ae6e295dc 100644 --- a/src/scripting/Elsa.Scripting.JavaScript/Providers/DefaultActivityTypeDefinitionRenderer.cs +++ b/src/scripting/Elsa.Scripting.JavaScript/Providers/DefaultActivityTypeDefinitionRenderer.cs @@ -12,7 +12,7 @@ namespace Elsa.Scripting.JavaScript.Providers public class DefaultActivityTypeDefinitionRenderer : IActivityTypeDefinitionRenderer { public int Priority => -1; - public bool GetCanRenderType(ActivityType activityType) => true; + public virtual bool GetCanRenderType(ActivityType activityType) => true; public virtual async ValueTask RenderTypeDeclarationAsync( RenderingTypeScriptDefinitions notification,