diff --git a/examples/generated-rq/1password-connect/client.ts b/examples/generated-rq/1password-connect/client.ts index 1e627a7..3fa80e4 100644 --- a/examples/generated-rq/1password-connect/client.ts +++ b/examples/generated-rq/1password-connect/client.ts @@ -61,6 +61,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated-rq/adyen-checkout/client.ts b/examples/generated-rq/adyen-checkout/client.ts index 093b678..f472f29 100644 --- a/examples/generated-rq/adyen-checkout/client.ts +++ b/examples/generated-rq/adyen-checkout/client.ts @@ -114,6 +114,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedBasic diff --git a/examples/generated-rq/adyen-legal-entity/client.ts b/examples/generated-rq/adyen-legal-entity/client.ts index 0cbe0c2..75765b3 100644 --- a/examples/generated-rq/adyen-legal-entity/client.ts +++ b/examples/generated-rq/adyen-legal-entity/client.ts @@ -99,6 +99,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedBasic diff --git a/examples/generated-rq/canada_holidays/client.ts b/examples/generated-rq/canada_holidays/client.ts index 6ae4b2f..1aa71f3 100644 --- a/examples/generated-rq/canada_holidays/client.ts +++ b/examples/generated-rq/canada_holidays/client.ts @@ -58,6 +58,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/examples/generated-rq/devto/client.ts b/examples/generated-rq/devto/client.ts index b1082ad..f8a5a93 100644 --- a/examples/generated-rq/devto/client.ts +++ b/examples/generated-rq/devto/client.ts @@ -82,6 +82,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedApiKey ? { 'api-key': resolvedApiKey } : {}), diff --git a/examples/generated-rq/exchangerate/client.ts b/examples/generated-rq/exchangerate/client.ts index a2d4397..19f7b45 100644 --- a/examples/generated-rq/exchangerate/client.ts +++ b/examples/generated-rq/exchangerate/client.ts @@ -58,6 +58,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/examples/generated-rq/open-meteo/client.ts b/examples/generated-rq/open-meteo/client.ts index 4984ac2..fa673d9 100644 --- a/examples/generated-rq/open-meteo/client.ts +++ b/examples/generated-rq/open-meteo/client.ts @@ -58,6 +58,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/examples/generated-rq/openai/client.ts b/examples/generated-rq/openai/client.ts index a2065db..21129bc 100644 --- a/examples/generated-rq/openai/client.ts +++ b/examples/generated-rq/openai/client.ts @@ -272,6 +272,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated-rq/petstore-3.0/client.ts b/examples/generated-rq/petstore-3.0/client.ts index 5679e34..8319eb0 100644 --- a/examples/generated-rq/petstore-3.0/client.ts +++ b/examples/generated-rq/petstore-3.0/client.ts @@ -64,6 +64,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated-rq/redocly-museum/client.ts b/examples/generated-rq/redocly-museum/client.ts index 6d7a31e..bb8c7a8 100644 --- a/examples/generated-rq/redocly-museum/client.ts +++ b/examples/generated-rq/redocly-museum/client.ts @@ -68,6 +68,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedBasic diff --git a/examples/generated-rq/resend/client.ts b/examples/generated-rq/resend/client.ts index 84a5c72..89daffa 100644 --- a/examples/generated-rq/resend/client.ts +++ b/examples/generated-rq/resend/client.ts @@ -167,6 +167,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated-rq/spotify/client.ts b/examples/generated-rq/spotify/client.ts index 40169f6..47f25e3 100644 --- a/examples/generated-rq/spotify/client.ts +++ b/examples/generated-rq/spotify/client.ts @@ -60,6 +60,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated-rq/twitter/client.ts b/examples/generated-rq/twitter/client.ts index 5cdeea6..903760a 100644 --- a/examples/generated-rq/twitter/client.ts +++ b/examples/generated-rq/twitter/client.ts @@ -150,6 +150,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated/1password-connect/client.ts b/examples/generated/1password-connect/client.ts index aceeb24..403a389 100644 --- a/examples/generated/1password-connect/client.ts +++ b/examples/generated/1password-connect/client.ts @@ -70,6 +70,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated/adyen-checkout/client.ts b/examples/generated/adyen-checkout/client.ts index ceb2baa..047d658 100644 --- a/examples/generated/adyen-checkout/client.ts +++ b/examples/generated/adyen-checkout/client.ts @@ -165,6 +165,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedBasic diff --git a/examples/generated/adyen-legal-entity/client.ts b/examples/generated/adyen-legal-entity/client.ts index 9103bcc..87c73d9 100644 --- a/examples/generated/adyen-legal-entity/client.ts +++ b/examples/generated/adyen-legal-entity/client.ts @@ -134,6 +134,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedBasic diff --git a/examples/generated/canada_holidays/client.ts b/examples/generated/canada_holidays/client.ts index 6ae4b2f..1aa71f3 100644 --- a/examples/generated/canada_holidays/client.ts +++ b/examples/generated/canada_holidays/client.ts @@ -58,6 +58,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/examples/generated/devto/client.ts b/examples/generated/devto/client.ts index 1b1152f..ed48cac 100644 --- a/examples/generated/devto/client.ts +++ b/examples/generated/devto/client.ts @@ -105,6 +105,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedApiKey ? { 'api-key': resolvedApiKey } : {}), diff --git a/examples/generated/exchangerate/client.ts b/examples/generated/exchangerate/client.ts index a2d4397..19f7b45 100644 --- a/examples/generated/exchangerate/client.ts +++ b/examples/generated/exchangerate/client.ts @@ -58,6 +58,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/examples/generated/open-meteo/client.ts b/examples/generated/open-meteo/client.ts index 4984ac2..fa673d9 100644 --- a/examples/generated/open-meteo/client.ts +++ b/examples/generated/open-meteo/client.ts @@ -58,6 +58,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/examples/generated/openai/client.ts b/examples/generated/openai/client.ts index a2065db..21129bc 100644 --- a/examples/generated/openai/client.ts +++ b/examples/generated/openai/client.ts @@ -272,6 +272,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated/petstore-3.0/client.ts b/examples/generated/petstore-3.0/client.ts index f1120e4..e1fb681 100644 --- a/examples/generated/petstore-3.0/client.ts +++ b/examples/generated/petstore-3.0/client.ts @@ -66,6 +66,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated/redocly-museum/client.ts b/examples/generated/redocly-museum/client.ts index 7e9f0fa..c131da6 100644 --- a/examples/generated/redocly-museum/client.ts +++ b/examples/generated/redocly-museum/client.ts @@ -76,6 +76,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedBasic diff --git a/examples/generated/resend/client.ts b/examples/generated/resend/client.ts index f3ddf72..83b285a 100644 --- a/examples/generated/resend/client.ts +++ b/examples/generated/resend/client.ts @@ -273,6 +273,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated/spotify/client.ts b/examples/generated/spotify/client.ts index 40169f6..47f25e3 100644 --- a/examples/generated/spotify/client.ts +++ b/examples/generated/spotify/client.ts @@ -60,6 +60,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/examples/generated/twitter/client.ts b/examples/generated/twitter/client.ts index c86bdcc..35f8684 100644 --- a/examples/generated/twitter/client.ts +++ b/examples/generated/twitter/client.ts @@ -240,6 +240,7 @@ async function _request( let _init: RequestInit = { method, headers: { + Accept: 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, ...(resolvedToken ? { Authorization: `Bearer ${resolvedToken}` } : {}), diff --git a/packages/openapi-zod-ts/src/__tests__/__snapshots__/client.test.ts.snap b/packages/openapi-zod-ts/src/__tests__/__snapshots__/client.test.ts.snap index 9920388..5887be8 100644 --- a/packages/openapi-zod-ts/src/__tests__/__snapshots__/client.test.ts.snap +++ b/packages/openapi-zod-ts/src/__tests__/__snapshots__/client.test.ts.snap @@ -52,6 +52,7 @@ async function _request( let _init: RequestInit = { method, headers: { + 'Accept': 'application/json', ...(opts.body !== undefined ? { 'Content-Type': 'application/json' } : {}), ...headers, }, diff --git a/packages/openapi-zod-ts/src/plugins/client.ts b/packages/openapi-zod-ts/src/plugins/client.ts index f6a969a..3c2ac79 100644 --- a/packages/openapi-zod-ts/src/plugins/client.ts +++ b/packages/openapi-zod-ts/src/plugins/client.ts @@ -1037,6 +1037,11 @@ function emitContentTypeHeader(lines: string[], hasFormUrlencoded: boolean): voi } } +/** Emits the Accept: application/json header as the first entry in the headers block. */ +function emitAcceptHeader(lines: string[]): void { + lines.push(` 'Accept': 'application/json',`) +} + /** Emits the body field in the fetch options for JSON or form-urlencoded body. */ function emitBodyField(lines: string[], hasFormUrlencoded: boolean): void { if (hasFormUrlencoded) { @@ -1101,6 +1106,7 @@ function emitRequestFunction( lines.push(` method,`) if (features.hasCookieAuth) lines.push(` credentials,`) lines.push(` headers: {`) + emitAcceptHeader(lines) emitContentTypeHeader(lines, features.hasFormUrlencoded) lines.push(` ...headers,`) emitAuthHeaderSpreads(lines, hasToken, hasBasic, auth.apiKeyHeaderNames) @@ -1142,6 +1148,7 @@ function emitRequestFormFunction( lines.push(` method,`) if (features.hasCookieAuth) lines.push(` credentials,`) lines.push(` headers: {`) + emitAcceptHeader(lines) lines.push(` ...headers,`) emitAuthHeaderSpreads(lines, hasToken, hasBasic, auth.apiKeyHeaderNames) if (features.hasHeaderParams) lines.push(` ...opts.extraHeaders,`)