Skip to content

Commit bbf1c73

Browse files
committed
- adds a facilitation method to add all ms extensions to the reader
1 parent f03c551 commit bbf1c73

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

src/Microsoft.OpenApi.Readers/OpenApiReaderSettings.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using Microsoft.OpenApi.Any;
55
using Microsoft.OpenApi.Interfaces;
6+
using Microsoft.OpenApi.MicrosoftExtensions;
67
using Microsoft.OpenApi.Readers.Interface;
78
using Microsoft.OpenApi.Validations;
89
using System;
@@ -74,5 +75,31 @@ public class OpenApiReaderSettings
7475
/// from an <see cref="OpenApiStreamReader"/> object.
7576
/// </summary>
7677
public bool LeaveStreamOpen { get; set; }
78+
79+
/// <summary>
80+
/// Adds parsers for Microsoft OpenAPI extensions:
81+
/// - <see cref="OpenApiPagingExtension"/>
82+
/// - <see cref="OpenApiEnumValuesDescriptionExtension"/>
83+
/// - <see cref="OpenApiPrimaryErrorMessageExtension"/>
84+
/// - <see cref="OpenApiDeprecationExtension"/>
85+
/// - <see cref="OpenApiReservedParameterExtension"/>
86+
/// - <see cref="OpenApiEnumFlagsExtension"/>
87+
/// NOTE: The list of extensions is subject to change.
88+
/// </summary>
89+
public void AddMicrosoftExtensionParsers()
90+
{
91+
if (!ExtensionParsers.ContainsKey(OpenApiPagingExtension.Name))
92+
ExtensionParsers.Add(OpenApiPagingExtension.Name, static (i, _) => OpenApiPagingExtension.Parse(i));
93+
if (!ExtensionParsers.ContainsKey(OpenApiEnumValuesDescriptionExtension.Name))
94+
ExtensionParsers.Add(OpenApiEnumValuesDescriptionExtension.Name, static (i, _ ) => OpenApiEnumValuesDescriptionExtension.Parse(i));
95+
if (!ExtensionParsers.ContainsKey(OpenApiPrimaryErrorMessageExtension.Name))
96+
ExtensionParsers.Add(OpenApiPrimaryErrorMessageExtension.Name, static (i, _ ) => OpenApiPrimaryErrorMessageExtension.Parse(i));
97+
if (!ExtensionParsers.ContainsKey(OpenApiDeprecationExtension.Name))
98+
ExtensionParsers.Add(OpenApiDeprecationExtension.Name, static (i, _ ) => OpenApiDeprecationExtension.Parse(i));
99+
if (!ExtensionParsers.ContainsKey(OpenApiReservedParameterExtension.Name))
100+
ExtensionParsers.Add(OpenApiReservedParameterExtension.Name, static (i, _ ) => OpenApiReservedParameterExtension.Parse(i));
101+
if (!ExtensionParsers.ContainsKey(OpenApiEnumFlagsExtension.Name))
102+
ExtensionParsers.Add(OpenApiEnumFlagsExtension.Name, static (i, _ ) => OpenApiEnumFlagsExtension.Parse(i));
103+
}
77104
}
78105
}

0 commit comments

Comments
 (0)