feature: first
All checks were successful
Build / Compute Version (push) Successful in 4s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 2m47s
Build / Build Nuget package (CringePlugins) (push) Successful in 5m31s
Build / Build Nuget package (NuGet) (push) Successful in 6m2s
Build / Build Nuget package (SharedCringe) (push) Successful in 7m25s
Build / Build Launcher (push) Successful in 9m11s
All checks were successful
Build / Compute Version (push) Successful in 4s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 2m47s
Build / Build Nuget package (CringePlugins) (push) Successful in 5m31s
Build / Build Nuget package (NuGet) (push) Successful in 6m2s
Build / Build Nuget package (SharedCringe) (push) Successful in 7m25s
Build / Build Launcher (push) Successful in 9m11s
This commit is contained in:
59
NuGet/Converters/FrameworkJsonConverter.cs
Normal file
59
NuGet/Converters/FrameworkJsonConverter.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using NuGet.Frameworks;
|
||||
|
||||
namespace NuGet.Converters;
|
||||
|
||||
public class FrameworkJsonConverter(FrameworkNameFormat format) : JsonConverter<NuGetFramework>
|
||||
{
|
||||
public override NuGetFramework Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
if (reader.TokenType != JsonTokenType.String)
|
||||
throw new JsonException("Invalid framework string");
|
||||
|
||||
var s = reader.GetString()!;
|
||||
return format switch
|
||||
{
|
||||
FrameworkNameFormat.ShortFolderName => NuGetFramework.ParseFolder(s),
|
||||
FrameworkNameFormat.FrameworkName => NuGetFramework.ParseFrameworkName(s,
|
||||
DefaultFrameworkNameProvider.Instance),
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, NuGetFramework value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStringValue(FormatValue(value));
|
||||
}
|
||||
|
||||
private string FormatValue(NuGetFramework value)
|
||||
{
|
||||
return format switch
|
||||
{
|
||||
FrameworkNameFormat.ShortFolderName => value.GetShortFolderName(),
|
||||
FrameworkNameFormat.FrameworkName => value.DotNetFrameworkName,
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
}
|
||||
|
||||
public override NuGetFramework ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert,
|
||||
JsonSerializerOptions options) => Read(ref reader, typeToConvert, options);
|
||||
|
||||
public override void WriteAsPropertyName(Utf8JsonWriter writer, NuGetFramework value,
|
||||
JsonSerializerOptions options)
|
||||
{
|
||||
writer.WritePropertyName(FormatValue(value));
|
||||
}
|
||||
}
|
||||
|
||||
public enum FrameworkNameFormat
|
||||
{
|
||||
/// <summary>
|
||||
/// The short folder name format (net8.0)
|
||||
/// </summary>
|
||||
ShortFolderName,
|
||||
/// <summary>
|
||||
/// Full framework name (.NETCoreApp,Version=v8.0)
|
||||
/// </summary>
|
||||
FrameworkName
|
||||
}
|
30
NuGet/Converters/ManifestPackageKeyJsonConverter.cs
Normal file
30
NuGet/Converters/ManifestPackageKeyJsonConverter.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using NuGet.Deps;
|
||||
|
||||
namespace NuGet.Converters;
|
||||
|
||||
public class ManifestPackageKeyJsonConverter : JsonConverter<ManifestPackageKey>
|
||||
{
|
||||
public override ManifestPackageKey Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
if (reader.TokenType != JsonTokenType.String)
|
||||
throw new JsonException("Invalid package key string");
|
||||
|
||||
return ManifestPackageKey.Parse(reader.GetString()!);
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, ManifestPackageKey value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStringValue(value.ToString());
|
||||
}
|
||||
|
||||
public override ManifestPackageKey ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert,
|
||||
JsonSerializerOptions options) => Read(ref reader, typeToConvert, options);
|
||||
|
||||
public override void WriteAsPropertyName(Utf8JsonWriter writer, ManifestPackageKey value,
|
||||
JsonSerializerOptions options)
|
||||
{
|
||||
writer.WritePropertyName(value.ToString());
|
||||
}
|
||||
}
|
21
NuGet/Converters/ResourceTypeJsonConverter.cs
Normal file
21
NuGet/Converters/ResourceTypeJsonConverter.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using NuGet.Models;
|
||||
|
||||
namespace NuGet.Converters;
|
||||
|
||||
public class ResourceTypeJsonConverter : JsonConverter<ResourceType>
|
||||
{
|
||||
public override ResourceType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
if (reader.TokenType != JsonTokenType.String)
|
||||
throw new JsonException("Invalid resource type");
|
||||
|
||||
return ResourceType.Parse(reader.GetString()!);
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, ResourceType value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStringValue(value.ToString());
|
||||
}
|
||||
}
|
21
NuGet/Converters/VersionJsonConverter.cs
Normal file
21
NuGet/Converters/VersionJsonConverter.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace NuGet.Converters;
|
||||
|
||||
public class VersionJsonConverter : JsonConverter<NuGetVersion>
|
||||
{
|
||||
public override NuGetVersion? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
if (reader.TokenType != JsonTokenType.String)
|
||||
throw new JsonException("Invalid version string");
|
||||
|
||||
return NuGetVersion.Parse(reader.GetString()!);
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, NuGetVersion value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStringValue(value.ToString());
|
||||
}
|
||||
}
|
21
NuGet/Converters/VersionRangeJsonConverter.cs
Normal file
21
NuGet/Converters/VersionRangeJsonConverter.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace NuGet.Converters;
|
||||
|
||||
public class VersionRangeJsonConverter : JsonConverter<VersionRange>
|
||||
{
|
||||
public override VersionRange? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
if (reader.TokenType != JsonTokenType.String)
|
||||
throw new JsonException("Invalid version range");
|
||||
|
||||
return VersionRange.Parse(reader.GetString()!);
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, VersionRange value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStringValue(value.ToString());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user