-
Notifications
You must be signed in to change notification settings - Fork 207
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
184 changed files
with
1,730 additions
and
1,871 deletions.
There are no files selected for viewing
7 changes: 7 additions & 0 deletions
7
.chronus/changes/fix-discriminator-should-be-requiered-2024-9-9-17-24-19.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
changeKind: fix | ||
packages: | ||
- "@typespec/openapi3" | ||
--- | ||
|
||
Discriminator properties are marked as required regardless if they are in TypeSpec to match OpenAPI3 spec. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
changeKind: fix | ||
packages: | ||
- "@typespec/playground" | ||
--- | ||
|
||
Fix dark theme not applying |
7 changes: 7 additions & 0 deletions
7
.chronus/changes/tsp-openapi3-common-params-2024-9-11-14-26-2.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
changeKind: fix | ||
packages: | ||
- "@typespec/openapi3" | ||
--- | ||
|
||
Updates tsp-openapi3 to include path-level parameters in generated typespec operations. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
23 changes: 23 additions & 0 deletions
23
...a/ClientProviderCustomizationTests/CanReplaceStructMethod(True)/CanReplaceStructMethod.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
|
||
using System; | ||
using System.ClientModel; | ||
using System.ClientModel.Primitives; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
|
||
namespace Sample | ||
{ | ||
/// <summary></summary> | ||
public partial class TestClient | ||
{ | ||
public virtual ClientResult HelloAgain(MyStruct? p1) | ||
{ | ||
|
||
} | ||
|
||
public readonly partial struct MyStruct | ||
{ | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
145 changes: 145 additions & 0 deletions
145
...Definitions/TestData/SerializationCustomizationTests/CanCustomizeExtensibleEnum(int32).cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
// <auto-generated/> | ||
|
||
#nullable disable | ||
|
||
using System; | ||
using System.ClientModel; | ||
using System.ClientModel.Primitives; | ||
using System.Collections.Generic; | ||
using System.Text.Json; | ||
using Sample; | ||
|
||
namespace Sample.Models | ||
{ | ||
/// <summary></summary> | ||
public partial class MockInputModel : global::System.ClientModel.Primitives.IJsonModel<global::Sample.Models.MockInputModel> | ||
{ | ||
void global::System.ClientModel.Primitives.IJsonModel<global::Sample.Models.MockInputModel>.Write(global::System.Text.Json.Utf8JsonWriter writer, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) | ||
{ | ||
writer.WriteStartObject(); | ||
this.JsonModelWriteCore(writer, options); | ||
writer.WriteEndObject(); | ||
} | ||
|
||
/// <param name="writer"> The JSON writer. </param> | ||
/// <param name="options"> The client options for reading and writing models. </param> | ||
protected virtual void JsonModelWriteCore(global::System.Text.Json.Utf8JsonWriter writer, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) | ||
{ | ||
string format = (options.Format == "W") ? ((global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>)this).GetFormatFromOptions(options) : options.Format; | ||
if ((format != "J")) | ||
{ | ||
throw new global::System.FormatException($"The model {nameof(global::Sample.Models.MockInputModel)} does not support writing '{format}' format."); | ||
} | ||
writer.WritePropertyName("prop1"u8); | ||
writer.WriteNumberValue(Prop1.ToSerialInt32()); | ||
if (((options.Format != "W") && (_additionalBinaryDataProperties != null))) | ||
{ | ||
foreach (var item in _additionalBinaryDataProperties) | ||
{ | ||
writer.WritePropertyName(item.Key); | ||
#if NET6_0_OR_GREATER | ||
writer.WriteRawValue(item.Value); | ||
#else | ||
using (global::System.Text.Json.JsonDocument document = global::System.Text.Json.JsonDocument.Parse(item.Value)) | ||
{ | ||
global::System.Text.Json.JsonSerializer.Serialize(writer, document.RootElement); | ||
} | ||
#endif | ||
} | ||
} | ||
} | ||
|
||
global::Sample.Models.MockInputModel global::System.ClientModel.Primitives.IJsonModel<global::Sample.Models.MockInputModel>.Create(ref global::System.Text.Json.Utf8JsonReader reader, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) => ((global::Sample.Models.MockInputModel)this.JsonModelCreateCore(ref reader, options)); | ||
|
||
/// <param name="reader"> The JSON reader. </param> | ||
/// <param name="options"> The client options for reading and writing models. </param> | ||
protected virtual global::Sample.Models.MockInputModel JsonModelCreateCore(ref global::System.Text.Json.Utf8JsonReader reader, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) | ||
{ | ||
string format = (options.Format == "W") ? ((global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>)this).GetFormatFromOptions(options) : options.Format; | ||
if ((format != "J")) | ||
{ | ||
throw new global::System.FormatException($"The model {nameof(global::Sample.Models.MockInputModel)} does not support reading '{format}' format."); | ||
} | ||
using global::System.Text.Json.JsonDocument document = global::System.Text.Json.JsonDocument.ParseValue(ref reader); | ||
return global::Sample.Models.MockInputModel.DeserializeMockInputModel(document.RootElement, options); | ||
} | ||
|
||
internal static global::Sample.Models.MockInputModel DeserializeMockInputModel(global::System.Text.Json.JsonElement element, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) | ||
{ | ||
if ((element.ValueKind == global::System.Text.Json.JsonValueKind.Null)) | ||
{ | ||
return null; | ||
} | ||
global::Sample.Models.EnumType prop1 = default; | ||
global::System.Collections.Generic.IDictionary<string, global::System.BinaryData> additionalBinaryDataProperties = new global::Sample.ChangeTrackingDictionary<string, global::System.BinaryData>(); | ||
foreach (var prop in element.EnumerateObject()) | ||
{ | ||
if (prop.NameEquals("prop1"u8)) | ||
{ | ||
if ((prop.Value.ValueKind == global::System.Text.Json.JsonValueKind.Null)) | ||
{ | ||
prop1 = null; | ||
continue; | ||
} | ||
prop1 = new global::Sample.Models.EnumType(prop.Value.GetInt32()); | ||
continue; | ||
} | ||
if ((options.Format != "W")) | ||
{ | ||
additionalBinaryDataProperties.Add(prop.Name, global::System.BinaryData.FromString(prop.Value.GetRawText())); | ||
} | ||
} | ||
return new global::Sample.Models.MockInputModel(prop1, additionalBinaryDataProperties); | ||
} | ||
|
||
global::System.BinaryData global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>.Write(global::System.ClientModel.Primitives.ModelReaderWriterOptions options) => this.PersistableModelWriteCore(options); | ||
|
||
/// <param name="options"> The client options for reading and writing models. </param> | ||
protected virtual global::System.BinaryData PersistableModelWriteCore(global::System.ClientModel.Primitives.ModelReaderWriterOptions options) | ||
{ | ||
string format = (options.Format == "W") ? ((global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>)this).GetFormatFromOptions(options) : options.Format; | ||
switch (format) | ||
{ | ||
case "J": | ||
return global::System.ClientModel.Primitives.ModelReaderWriter.Write(this, options); | ||
default: | ||
throw new global::System.FormatException($"The model {nameof(global::Sample.Models.MockInputModel)} does not support writing '{options.Format}' format."); | ||
} | ||
} | ||
|
||
global::Sample.Models.MockInputModel global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>.Create(global::System.BinaryData data, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) => ((global::Sample.Models.MockInputModel)this.PersistableModelCreateCore(data, options)); | ||
|
||
/// <param name="data"> The data to parse. </param> | ||
/// <param name="options"> The client options for reading and writing models. </param> | ||
protected virtual global::Sample.Models.MockInputModel PersistableModelCreateCore(global::System.BinaryData data, global::System.ClientModel.Primitives.ModelReaderWriterOptions options) | ||
{ | ||
string format = (options.Format == "W") ? ((global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>)this).GetFormatFromOptions(options) : options.Format; | ||
switch (format) | ||
{ | ||
case "J": | ||
using (global::System.Text.Json.JsonDocument document = global::System.Text.Json.JsonDocument.Parse(data)) | ||
{ | ||
return global::Sample.Models.MockInputModel.DeserializeMockInputModel(document.RootElement, options); | ||
} | ||
default: | ||
throw new global::System.FormatException($"The model {nameof(global::Sample.Models.MockInputModel)} does not support reading '{options.Format}' format."); | ||
} | ||
} | ||
|
||
string global::System.ClientModel.Primitives.IPersistableModel<global::Sample.Models.MockInputModel>.GetFormatFromOptions(global::System.ClientModel.Primitives.ModelReaderWriterOptions options) => "J"; | ||
|
||
/// <param name="mockInputModel"> The <see cref="global::Sample.Models.MockInputModel"/> to serialize into <see cref="global::System.ClientModel.BinaryContent"/>. </param> | ||
public static implicit operator BinaryContent(global::Sample.Models.MockInputModel mockInputModel) | ||
{ | ||
return global::System.ClientModel.BinaryContent.Create(mockInputModel, global::Sample.ModelSerializationExtensions.WireOptions); | ||
} | ||
|
||
/// <param name="result"> The <see cref="global::System.ClientModel.ClientResult"/> to deserialize the <see cref="global::Sample.Models.MockInputModel"/> from. </param> | ||
public static explicit operator MockInputModel(global::System.ClientModel.ClientResult result) | ||
{ | ||
using global::System.ClientModel.Primitives.PipelineResponse response = result.GetRawResponse(); | ||
using global::System.Text.Json.JsonDocument document = global::System.Text.Json.JsonDocument.Parse(response.Content); | ||
return global::Sample.Models.MockInputModel.DeserializeMockInputModel(document.RootElement, global::Sample.ModelSerializationExtensions.WireOptions); | ||
} | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
...tData/SerializationCustomizationTests/CanCustomizeExtensibleEnum(int32)/MockInputModel.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#nullable disable | ||
|
||
using Microsoft.Generator.CSharp.Customization; | ||
using Microsoft.Generator.CSharp.Primitives; | ||
|
||
namespace Sample.Models | ||
{ | ||
public partial class MockInputModel | ||
{ | ||
public EnumType Prop1 { get; set; } | ||
} | ||
|
||
public readonly partial struct EnumType | ||
{ | ||
public static EnumType Foo = new EnumType(1); | ||
} | ||
} |
Oops, something went wrong.