From 5a5f6d6922243df0fca33f12ba3fa7f8fd12da7a Mon Sep 17 00:00:00 2001 From: Ivan ROGER Date: Wed, 29 Oct 2025 10:35:39 +0100 Subject: [PATCH] Fix explode query params for typescript-fetch Fixes: #10438 --- .../main/resources/typescript-fetch/apis.mustache | 12 ++++++++++++ .../builds/default-v3.0/apis/FakeApi.ts | 4 +++- .../builds/snakecase-discriminator/apis/FakeApi.ts | 4 +++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache index ab7411c8bb14..5f14d753c854 100644 --- a/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache @@ -133,6 +133,17 @@ export class {{classname}} extends runtime.BaseAPI { {{/isArray}} {{^isArray}} if (requestParameters['{{paramName}}'] != null) { + {{#isExplode}} + {{#isContainer}} + for (let key of Object.keys(requestParameters['{{paramName}}'])) { + queryParameters[key] = requestParameters['{{paramName}}'][key]; + } + {{/isContainer}} + {{^isContainer}} + queryParameters['{{baseName}}'] = requestParameters['{{paramName}}']; + {{/isContainer}} + {{/isExplode}} + {{^isExplode}} {{#isDateTimeType}} queryParameters['{{baseName}}'] = (requestParameters['{{paramName}}'] as any).toISOString(); {{/isDateTimeType}} @@ -144,6 +155,7 @@ export class {{classname}} extends runtime.BaseAPI { queryParameters['{{baseName}}'] = requestParameters['{{paramName}}']; {{/isDateType}} {{/isDateTimeType}} + {{/isExplode}} } {{/isArray}} diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts index 72800d8405f2..0eef4125671b 100644 --- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts +++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts @@ -1214,7 +1214,9 @@ export class FakeApi extends runtime.BaseAPI { } if (requestParameters['language'] != null) { - queryParameters['language'] = requestParameters['language']; + for (let key of Object.keys(requestParameters['language'])) { + queryParameters[key] = requestParameters['language'][key]; + } } if (requestParameters['allowEmpty'] != null) { diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts index 4c6c8605a6d7..21ad0984b848 100644 --- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts +++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts @@ -1072,7 +1072,9 @@ export class FakeApi extends runtime.BaseAPI { } if (requestParameters['language'] != null) { - queryParameters['language'] = requestParameters['language']; + for (let key of Object.keys(requestParameters['language'])) { + queryParameters[key] = requestParameters['language'][key]; + } } if (requestParameters['allowEmpty'] != null) {