diff --git a/package.json b/package.json index f11f9aa1..a0fe05bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.9.3", + "version": "0.10.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/core/node/getHeaders.hbs b/src/templates/core/node/getHeaders.hbs index 040ef27a..de5db27b 100644 --- a/src/templates/core/node/getHeaders.hbs +++ b/src/templates/core/node/getHeaders.hbs @@ -29,7 +29,7 @@ async function getHeaders(options: ApiRequestOptions): Promise { if (options.body) { if (options.mediaType) { headers.append('Content-Type', options.mediaType); - } else if (isBinary(options.body)) { + } else if (isBlob(options.body)) { headers.append('Content-Type', 'application/octet-stream'); } else if (isString(options.body)) { headers.append('Content-Type', 'text/plain'); diff --git a/src/templates/core/node/getRequestBody.hbs b/src/templates/core/node/getRequestBody.hbs index e6a827d7..734f03db 100644 --- a/src/templates/core/node/getRequestBody.hbs +++ b/src/templates/core/node/getRequestBody.hbs @@ -5,7 +5,7 @@ function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { if (options.body) { if (options.mediaType?.includes('/json')) { return JSON.stringify(options.body) - } else if (isString(options.body) || isBinary(options.body)) { + } else if (isString(options.body) || isBlob(options.body)) { return options.body; } else { return JSON.stringify(options.body); diff --git a/src/templates/core/node/request.hbs b/src/templates/core/node/request.hbs index 1bf15050..8ca4bb9c 100644 --- a/src/templates/core/node/request.hbs +++ b/src/templates/core/node/request.hbs @@ -18,7 +18,7 @@ import { OpenAPI } from './OpenAPI'; {{>functions/isStringWithValue}} -{{>functions/isBinary}} +{{>functions/isBlob}} {{>functions/getQueryString}} diff --git a/src/templates/partials/base.hbs b/src/templates/partials/base.hbs index 46772416..54655581 100644 --- a/src/templates/partials/base.hbs +++ b/src/templates/partials/base.hbs @@ -1,7 +1,7 @@ {{~#equals base 'File'~}} {{~#equals @root.httpClient 'fetch'}}Blob{{/equals~}} {{~#equals @root.httpClient 'xhr'}}Blob{{/equals~}} -{{~#equals @root.httpClient 'node'}}Buffer | ArrayBuffer | ArrayBufferView{{/equals~}} +{{~#equals @root.httpClient 'node'}}Blob{{/equals~}} {{~else~}} {{{base}}} {{~/equals~}} diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 59571869..0e91ff78 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -163,22 +163,20 @@ async function getHeaders(options: ApiRequestOptions): Promise { const token = await resolve(options, OpenAPI.TOKEN); const username = await resolve(options, OpenAPI.USERNAME); const password = await resolve(options, OpenAPI.PASSWORD); - const defaultHeaders = await resolve(options, OpenAPI.HEADERS); + const additionalHeaders = await resolve(options, OpenAPI.HEADERS); - const filteredHeaders = Object.entries({ + const defaultHeaders = Object.entries({ Accept: 'application/json', - ...defaultHeaders, + ...additionalHeaders, ...options.headers, - }).reduce((acc, [headerKey, headerValue]) => { - if (typeof headerValue !== 'undefined') { - return { - ...acc, - [headerKey]: headerValue, - }; - } - return acc; - }, {}); - const headers = new Headers(filteredHeaders); + }) + .filter(([key, value]) => isDefined(value)) + .reduce((headers, [key, value]) => ({ + ...headers, + [key]: value, + }), {}); + + const headers = new Headers(defaultHeaders); if (isStringWithValue(token)) { headers.append('Authorization', \`Bearer \${token}\`); @@ -2527,22 +2525,20 @@ async function getHeaders(options: ApiRequestOptions): Promise { const token = await resolve(options, OpenAPI.TOKEN); const username = await resolve(options, OpenAPI.USERNAME); const password = await resolve(options, OpenAPI.PASSWORD); - const defaultHeaders = await resolve(options, OpenAPI.HEADERS); + const additionalHeaders = await resolve(options, OpenAPI.HEADERS); - const filteredHeaders = Object.entries({ + const defaultHeaders = Object.entries({ Accept: 'application/json', - ...defaultHeaders, + ...additionalHeaders, ...options.headers, - }).reduce((acc, [headerKey, headerValue]) => { - if (typeof headerValue !== 'undefined') { - return { - ...acc, - [headerKey]: headerValue, - }; - } - return acc; - }, {}); - const headers = new Headers(filteredHeaders); + }) + .filter(([key, value]) => isDefined(value)) + .reduce((headers, [key, value]) => ({ + ...headers, + [key]: value, + }), {}); + + const headers = new Headers(defaultHeaders); if (isStringWithValue(token)) { headers.append('Authorization', \`Bearer \${token}\`); diff --git a/test/index.js b/test/index.js index 3f2fd866..9ff966a1 100644 --- a/test/index.js +++ b/test/index.js @@ -13,7 +13,7 @@ async function generateV2() { exportSchemas: true, exportModels: true, exportServices: true, - request: './test/custom/request.ts', + // request: './test/custom/request.ts', }); } @@ -28,7 +28,7 @@ async function generateV3() { exportSchemas: true, exportModels: true, exportServices: true, - request: './test/custom/request.ts', + // request: './test/custom/request.ts', }); }