From 4b5060ed014aae39c4e65a7dc74ce3fce64d89b1 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Mon, 11 Oct 2021 22:38:58 +0200 Subject: [PATCH] - Simplified sort - Updated axios client to use getHeaders when available --- src/openApi/v2/parser/sortByRequired.ts | 22 ++++------------------ src/openApi/v3/parser/sortByRequired.ts | 22 ++++------------------ src/templates/core/axios/getHeaders.hbs | 3 ++- 3 files changed, 10 insertions(+), 37 deletions(-) diff --git a/src/openApi/v2/parser/sortByRequired.ts b/src/openApi/v2/parser/sortByRequired.ts index 62d380db..d9533264 100644 --- a/src/openApi/v2/parser/sortByRequired.ts +++ b/src/openApi/v2/parser/sortByRequired.ts @@ -1,23 +1,9 @@ import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; export function sortByRequired(a: OperationParameter, b: OperationParameter): number { - const aIsRequiredWithoutDefaultValue = a.isRequired && a.default === undefined; - const bIsRequiredWithoutDefaultValue = b.isRequired && b.default === undefined; - const aIsRequiredWithDefaultValue = a.isRequired && a.default !== undefined; - const bIsRequiredWithDefaultValue = b.isRequired && b.default !== undefined; - const aIsOptionalWithDefaultValue = !a.isRequired && a.default !== undefined; - const bIsOptionalWithDefaultValue = !b.isRequired && b.default !== undefined; - const aIsOptionalWithoutDefaultValue = !a.isRequired && a.default === undefined; - const bIsOptionalWithoutDefaultValue = !b.isRequired && b.default === undefined; - - if (aIsRequiredWithoutDefaultValue && !bIsRequiredWithoutDefaultValue) return -1; - if (bIsRequiredWithoutDefaultValue && !aIsRequiredWithoutDefaultValue) return 1; - if (aIsRequiredWithDefaultValue && !bIsRequiredWithDefaultValue) return -1; - if (bIsRequiredWithDefaultValue && !aIsRequiredWithDefaultValue) return 1; - if (aIsOptionalWithDefaultValue && !bIsOptionalWithDefaultValue) return -1; - if (bIsOptionalWithDefaultValue && !aIsOptionalWithDefaultValue) return 1; - if (aIsOptionalWithoutDefaultValue && !bIsOptionalWithoutDefaultValue) return -1; - if (bIsOptionalWithoutDefaultValue && !aIsOptionalWithoutDefaultValue) return 1; - + const aNeedsValue = a.isRequired && a.default === undefined; + const bNeedsValue = b.isRequired && b.default === undefined; + if (aNeedsValue && !bNeedsValue) return -1; + if (bNeedsValue && !aNeedsValue) return 1; return 0; } diff --git a/src/openApi/v3/parser/sortByRequired.ts b/src/openApi/v3/parser/sortByRequired.ts index 62d380db..d9533264 100644 --- a/src/openApi/v3/parser/sortByRequired.ts +++ b/src/openApi/v3/parser/sortByRequired.ts @@ -1,23 +1,9 @@ import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; export function sortByRequired(a: OperationParameter, b: OperationParameter): number { - const aIsRequiredWithoutDefaultValue = a.isRequired && a.default === undefined; - const bIsRequiredWithoutDefaultValue = b.isRequired && b.default === undefined; - const aIsRequiredWithDefaultValue = a.isRequired && a.default !== undefined; - const bIsRequiredWithDefaultValue = b.isRequired && b.default !== undefined; - const aIsOptionalWithDefaultValue = !a.isRequired && a.default !== undefined; - const bIsOptionalWithDefaultValue = !b.isRequired && b.default !== undefined; - const aIsOptionalWithoutDefaultValue = !a.isRequired && a.default === undefined; - const bIsOptionalWithoutDefaultValue = !b.isRequired && b.default === undefined; - - if (aIsRequiredWithoutDefaultValue && !bIsRequiredWithoutDefaultValue) return -1; - if (bIsRequiredWithoutDefaultValue && !aIsRequiredWithoutDefaultValue) return 1; - if (aIsRequiredWithDefaultValue && !bIsRequiredWithDefaultValue) return -1; - if (bIsRequiredWithDefaultValue && !aIsRequiredWithDefaultValue) return 1; - if (aIsOptionalWithDefaultValue && !bIsOptionalWithDefaultValue) return -1; - if (bIsOptionalWithDefaultValue && !aIsOptionalWithDefaultValue) return 1; - if (aIsOptionalWithoutDefaultValue && !bIsOptionalWithoutDefaultValue) return -1; - if (bIsOptionalWithoutDefaultValue && !aIsOptionalWithoutDefaultValue) return 1; - + const aNeedsValue = a.isRequired && a.default === undefined; + const bNeedsValue = b.isRequired && b.default === undefined; + if (aNeedsValue && !bNeedsValue) return -1; + if (bNeedsValue && !aNeedsValue) return 1; return 0; } diff --git a/src/templates/core/axios/getHeaders.hbs b/src/templates/core/axios/getHeaders.hbs index d930b28f..82202ba8 100644 --- a/src/templates/core/axios/getHeaders.hbs +++ b/src/templates/core/axios/getHeaders.hbs @@ -3,12 +3,13 @@ async function getHeaders(options: ApiRequestOptions, formData?: FormData): Prom const username = await resolve(options, OpenAPI.USERNAME); const password = await resolve(options, OpenAPI.PASSWORD); const additionalHeaders = await resolve(options, OpenAPI.HEADERS); + const formHeaders = typeof formData?.getHeaders === 'function' && formData?.getHeaders() || {} const headers = Object.entries({ Accept: 'application/json', ...additionalHeaders, ...options.headers, - ...formData?.getHeaders() + ...formHeaders, }) .filter(([key, value]) => isDefined(value)) .reduce((headers, [key, value]) => ({