Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 28, 2026

Optional Content-Type headers were incorrectly transformed into extensible enums by the type converter. They must remain as constants.

Changes

Emitter (type-converter.ts)

  • Skip enum transformation for Content-Type headers, preserving constant type regardless of optionality

Emitter (operation-converter.ts)

  • Pass header parameter to fromSdkType to enable Content-Type detection

Emitter Tests (operation-converter.test.ts)

  • Added tests to verify Content-Type remains as constant type for both optional and required bodies

Result

Content-Type headers now remain as constants in the type model instead of being transformed to enums when the body parameter is optional. This prevents the enum transformation while preserving the constant type information for downstream processing.

Note

This PR focuses solely on the emitter-side fix to prevent unwanted enum transformation. Generator-side handling of optional Content-Type parameters (if needed for conditional setting) will be addressed separately.

Original prompt

This section details on the original issue you should resolve

<issue_title>Fix optional contentType issue</issue_title>
<issue_description>As described in Azure/azure-sdk-for-net#55300, but the issue belongs in this repo.</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

…t to Method for optional Content-Type headers

Co-authored-by: JoshLove-msft <[email protected]>
@microsoft-github-policy-service microsoft-github-policy-service bot added the emitter:client:csharp Issue for the C# client emitter: @typespec/http-client-csharp label Jan 28, 2026
Copilot AI changed the title [WIP] Fix optional contentType issue Fix optional Content-Type headers treated as constants Jan 28, 2026
Copilot AI requested a review from JoshLove-msft January 28, 2026 20:12
Copilot AI changed the title Fix optional Content-Type headers treated as constants Fix optional Content-Type headers being transformed to enums Jan 28, 2026
Copilot AI changed the title Fix optional Content-Type headers being transformed to enums Fix optional Content-Type headers being transformed to enums (emitter-only) Jan 28, 2026
Copilot AI requested a review from JoshLove-msft January 28, 2026 20:43
@JoshLove-msft JoshLove-msft marked this pull request as ready for review January 28, 2026 21:46
@github-actions
Copy link
Contributor

No changes needing a change description found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

emitter:client:csharp Issue for the C# client emitter: @typespec/http-client-csharp

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix optional contentType issue

3 participants