зеркало из https://github.com/microsoft/kiota.git
feat: adds dependency type parsing
Signed-off-by: Vincent Biret <vibiret@microsoft.com>
This commit is contained in:
Родитель
fe75ed2c4d
Коммит
9f5b327055
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Serialization;
|
||||
using Kiota.Builder.Extensions;
|
||||
using Microsoft.OpenApi.Any;
|
||||
using Microsoft.OpenApi.Interfaces;
|
||||
|
@ -72,6 +73,12 @@ public record LanguageDependency : IOpenApiSerializable
|
|||
{
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Version { get; set; } = string.Empty;
|
||||
[JsonPropertyName("Type")]
|
||||
public DependencyType? DependencyType
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
private const string TypePropertyName = "type";
|
||||
public void SerializeAsV2(IOpenApiWriter writer) => SerializeAsV3(writer);
|
||||
public void SerializeAsV3(IOpenApiWriter writer)
|
||||
{
|
||||
|
@ -79,6 +86,10 @@ public record LanguageDependency : IOpenApiSerializable
|
|||
writer.WriteStartObject();
|
||||
writer.WriteProperty(nameof(Name).ToFirstCharacterLowerCase(), Name);
|
||||
writer.WriteProperty(nameof(Version).ToFirstCharacterLowerCase(), Version);
|
||||
if (DependencyType is not null)
|
||||
{
|
||||
writer.WriteProperty(TypePropertyName, DependencyType.ToString());
|
||||
}
|
||||
writer.WriteEndObject();
|
||||
}
|
||||
public static LanguageDependency Parse(IOpenApiAny source)
|
||||
|
@ -93,6 +104,10 @@ public record LanguageDependency : IOpenApiSerializable
|
|||
{
|
||||
extension.Version = versionValue.Value;
|
||||
}
|
||||
if (rawObject.TryGetValue(TypePropertyName, out var typeValue) && typeValue is OpenApiString typeStringValue && Enum.TryParse<DependencyType>(typeStringValue.Value, true, out var parsedTypeValue))
|
||||
{
|
||||
extension.DependencyType = parsedTypeValue;
|
||||
}
|
||||
return extension;
|
||||
}
|
||||
}
|
||||
|
@ -103,3 +118,12 @@ public enum LanguageMaturityLevel
|
|||
Preview,
|
||||
Stable
|
||||
}
|
||||
|
||||
public enum DependencyType
|
||||
{
|
||||
Abstractions,
|
||||
Serialization,
|
||||
Authentication,
|
||||
Http,
|
||||
Bundle,
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ internal static class KiotaConfigurationExtensions
|
|||
{
|
||||
Version = dependency[nameof(LanguageDependency.Version)] ?? string.Empty,
|
||||
Name = dependency[nameof(LanguageDependency.Name)] ?? string.Empty,
|
||||
DependencyType = dependency["Type"] is string typeValue && !string.IsNullOrEmpty(typeValue) && Enum.TryParse<DependencyType>(typeValue, true, out var dt) ? dt : null,
|
||||
});
|
||||
}
|
||||
configObject.Languages.Add(section.Key, lngInfo);
|
||||
|
|
Загрузка…
Ссылка в новой задаче