From a5f6367f78767c63a3aacec6755f9370aa45e583 Mon Sep 17 00:00:00 2001 From: kulczy Date: Tue, 7 Jun 2022 22:40:56 +0200 Subject: [PATCH 1/2] Prevent duplication of parameter names --- src/openApi/v3/parser/getOperationParameterName.spec.ts | 2 ++ src/openApi/v3/parser/getOperationParameterName.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/src/openApi/v3/parser/getOperationParameterName.spec.ts b/src/openApi/v3/parser/getOperationParameterName.spec.ts index 72501153..07074959 100644 --- a/src/openApi/v3/parser/getOperationParameterName.spec.ts +++ b/src/openApi/v3/parser/getOperationParameterName.spec.ts @@ -13,5 +13,7 @@ describe('getOperationParameterName', () => { expect(getOperationParameterName('123.foo.bar')).toEqual('fooBar'); expect(getOperationParameterName('Foo-Bar')).toEqual('fooBar'); expect(getOperationParameterName('FOO-BAR')).toEqual('fooBar'); + expect(getOperationParameterName('foo[bar]')).toEqual('fooBar'); + expect(getOperationParameterName('foo.bar[]')).toEqual('fooBarArray'); }); }); diff --git a/src/openApi/v3/parser/getOperationParameterName.ts b/src/openApi/v3/parser/getOperationParameterName.ts index de9b154b..d08ca34b 100644 --- a/src/openApi/v3/parser/getOperationParameterName.ts +++ b/src/openApi/v3/parser/getOperationParameterName.ts @@ -10,6 +10,7 @@ const reservedWords = export const getOperationParameterName = (value: string): string => { const clean = value .replace(/^[^a-zA-Z]+/g, '') + .replace('[]', 'Array') .replace(/[^\w\-]+/g, '-') .trim(); return camelCase(clean).replace(reservedWords, '_$1'); From a8fde3df30849351637604283883712e4c0678fd Mon Sep 17 00:00:00 2001 From: Seivan Date: Mon, 14 Nov 2022 23:16:09 +0100 Subject: [PATCH 2/2] Support exactOptionalPropertyTypes A key being optional is different than the value being optional. Former indicates missing keys, while latter indicate, required key but missing value. --- src/templates/core/OpenAPI.hbs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/templates/core/OpenAPI.hbs b/src/templates/core/OpenAPI.hbs index 19e66fbf..7b9560a2 100644 --- a/src/templates/core/OpenAPI.hbs +++ b/src/templates/core/OpenAPI.hbs @@ -10,11 +10,11 @@ export type OpenAPIConfig = { VERSION: string; WITH_CREDENTIALS: boolean; CREDENTIALS: 'include' | 'omit' | 'same-origin'; - TOKEN?: string | Resolver; - USERNAME?: string | Resolver; - PASSWORD?: string | Resolver; - HEADERS?: Headers | Resolver; - ENCODE_PATH?: (path: string) => string; + TOKEN?: string | Resolver | undefined; + USERNAME?: string | Resolver | undefined; + PASSWORD?: string | Resolver | undefined; + HEADERS?: Headers | Resolver | undefined; + ENCODE_PATH?: ((path: string) => string) | undefined; }; export const OpenAPI: OpenAPIConfig = {