Skip to content

Commit 55c3036

Browse files
committed
Add support for transforming 3.1 docs
1 parent e0a3bb2 commit 55c3036

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

src/Microsoft.OpenApi.Hidi/OpenApiSpecVersionHelper.cs

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// Licensed under the MIT license.
33

44
using System;
5-
using System.Linq;
65

76
namespace Microsoft.OpenApi.Hidi
87
{
@@ -14,17 +13,30 @@ public static OpenApiSpecVersion TryParseOpenApiSpecVersion(string value)
1413
{
1514
throw new InvalidOperationException("Please provide a version");
1615
}
17-
var res = value.Split('.', StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
16+
// Split the version string by the dot
17+
var versionSegments = value.Split('.', StringSplitOptions.RemoveEmptyEntries);
1818

19-
if (int.TryParse(res, out var result))
19+
if (!int.TryParse(versionSegments[0], out var majorVersion)
20+
|| !int.TryParse(versionSegments[1], out var minorVersion))
2021
{
21-
if (result is >= 2 and < 3)
22-
{
23-
return OpenApiSpecVersion.OpenApi2_0;
24-
}
22+
throw new InvalidOperationException("Invalid version format. Please provide a valid OpenAPI version (e.g., 2.0, 3.0, 3.1).");
2523
}
2624

27-
return OpenApiSpecVersion.OpenApi3_0; // default
25+
// Check for specific version matches
26+
if (majorVersion == 2)
27+
{
28+
return OpenApiSpecVersion.OpenApi2_0;
29+
}
30+
else if (majorVersion == 3 && minorVersion == 0)
31+
{
32+
return OpenApiSpecVersion.OpenApi3_0;
33+
}
34+
else if (majorVersion == 3 && minorVersion == 1)
35+
{
36+
return OpenApiSpecVersion.OpenApi3_1;
37+
}
38+
39+
return OpenApiSpecVersion.OpenApi3_1; // default
2840
}
2941
}
3042
}

0 commit comments

Comments
 (0)