|
1 |
| -// Copyright (c) Microsoft Corporation. All rights reserved. |
| 1 | +// Copyright (c) Microsoft Corporation. All rights reserved. |
2 | 2 | // Licensed under the MIT license.
|
3 | 3 |
|
4 | 4 | using System;
|
@@ -29,93 +29,19 @@ public static class OpenApiTypeMapper
|
29 | 29 | [typeof(char)] = () => new JsonSchemaBuilder().Type(SchemaValueType.String).Format("string").Build(),
|
30 | 30 |
|
31 | 31 | // Nullable types
|
32 |
| - [typeof(bool?)] = () => new JsonSchemaBuilder() |
33 |
| - .AnyOf( |
34 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
35 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Boolean).Build() |
36 |
| - ).Build(), |
37 |
| - |
38 |
| - [typeof(byte?)] = () => new JsonSchemaBuilder() |
39 |
| - .AnyOf( |
40 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
41 |
| - new JsonSchemaBuilder().Type(SchemaValueType.String).Build() |
42 |
| - ) |
43 |
| - .Format("byte").Build(), |
44 |
| - |
45 |
| - [typeof(int?)] = () => new JsonSchemaBuilder() |
46 |
| - .AnyOf( |
47 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
48 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Integer).Build() |
49 |
| - ) |
50 |
| - .Format("int32").Build(), |
51 |
| - |
52 |
| - [typeof(uint?)] = () => new JsonSchemaBuilder().AnyOf( |
53 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
54 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Integer).Build() |
55 |
| - ) |
56 |
| - .Format("int32").Build(), |
57 |
| - |
58 |
| - [typeof(long?)] = () => new JsonSchemaBuilder() |
59 |
| - .AnyOf( |
60 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
61 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Integer).Build() |
62 |
| - ) |
63 |
| - .Format("int64").Build(), |
64 |
| - |
65 |
| - [typeof(ulong?)] = () => new JsonSchemaBuilder() |
66 |
| - .AnyOf( |
67 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
68 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Integer).Build() |
69 |
| - ) |
70 |
| - .Format("int64").Build(), |
71 |
| - |
72 |
| - [typeof(float?)] = () => new JsonSchemaBuilder() |
73 |
| - .AnyOf( |
74 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
75 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Integer).Build() |
76 |
| - ) |
77 |
| - .Format("float").Build(), |
78 |
| - |
79 |
| - [typeof(double?)] = () => new JsonSchemaBuilder() |
80 |
| - .AnyOf( |
81 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
82 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Number).Build()) |
83 |
| - .Format("double").Build(), |
84 |
| - |
85 |
| - [typeof(decimal?)] = () => new JsonSchemaBuilder() |
86 |
| - .AnyOf( |
87 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
88 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Number).Build() |
89 |
| - ) |
90 |
| - .Format("double").Build(), |
91 |
| - |
92 |
| - [typeof(DateTime?)] = () => new JsonSchemaBuilder() |
93 |
| - .AnyOf( |
94 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
95 |
| - new JsonSchemaBuilder().Type(SchemaValueType.String).Build() |
96 |
| - ) |
97 |
| - .Format("date-time").Build(), |
98 |
| - |
99 |
| - [typeof(DateTimeOffset?)] = () => new JsonSchemaBuilder() |
100 |
| - .AnyOf( |
101 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
102 |
| - new JsonSchemaBuilder().Type(SchemaValueType.String).Build() |
103 |
| - ) |
104 |
| - .Format("date-time").Build(), |
105 |
| - |
106 |
| - [typeof(Guid?)] = () => new JsonSchemaBuilder() |
107 |
| - .AnyOf( |
108 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
109 |
| - new JsonSchemaBuilder().Type(SchemaValueType.String).Build() |
110 |
| - ) |
111 |
| - .Format("string").Build(), |
112 |
| - |
113 |
| - [typeof(char?)] = () => new JsonSchemaBuilder() |
114 |
| - .AnyOf( |
115 |
| - new JsonSchemaBuilder().Type(SchemaValueType.Null).Build(), |
116 |
| - new JsonSchemaBuilder().Type(SchemaValueType.String).Build() |
117 |
| - ) |
118 |
| - .Format("string").Build(), |
| 32 | + [typeof(bool?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Boolean).Build(), |
| 33 | + [typeof(byte?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.String).Format("byte").Build(), |
| 34 | + [typeof(int?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Integer).Format("int32").Build(), |
| 35 | + [typeof(uint?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Integer).Format("int32").Build(), |
| 36 | + [typeof(long?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Integer).Format("int64").Build(), |
| 37 | + [typeof(ulong?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Integer).Format("int64").Build(), |
| 38 | + [typeof(float?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Integer).Format("float").Build(), |
| 39 | + [typeof(double?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Number).Format("double").Build(), |
| 40 | + [typeof(decimal?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.Integer).Format("double").Build(), |
| 41 | + [typeof(DateTime?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.String).Format("date-time").Build(), |
| 42 | + [typeof(DateTimeOffset?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.String).Format("date-time").Build(), |
| 43 | + [typeof(Guid?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.String).Format("string").Build(), |
| 44 | + [typeof(char?)] = () => new JsonSchemaBuilder().Type(SchemaValueType.Null | SchemaValueType.String).Format("string").Build(), |
119 | 45 |
|
120 | 46 | [typeof(Uri)] = () => new JsonSchemaBuilder().Type(SchemaValueType.String).Format("uri").Build(), // Uri is treated as simple string
|
121 | 47 | [typeof(string)] = () => new JsonSchemaBuilder().Type(SchemaValueType.String).Build(),
|
|
0 commit comments