Skip to content

Commit 047a71c

Browse files
authored
[typescript-axios] Support array query arguments (#8772)
* [typescript-axios] Support array query arguments typescript-axios does not correctly output query arguments when you use `explode: true` for a parameter. fixes #7966 fixes #7973 * Fix mistake in query parameter setting
1 parent a9e797c commit 047a71c

File tree

9 files changed

+72
-9
lines changed

9 files changed

+72
-9
lines changed

modules/openapi-generator/src/main/resources/typescript-axios/common.mustache

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
8080
const searchParams = new URLSearchParams(url.search);
8181
for (const object of objects) {
8282
for (const key in object) {
83-
searchParams.set(key, object[key]);
83+
if (Array.isArray(object[key])) {
84+
searchParams.delete(key);
85+
for (const item of object[key]) {
86+
searchParams.append(key, item);
87+
}
88+
} else {
89+
searchParams.set(key, object[key]);
90+
}
8491
}
8592
}
8693
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/composed-schemas/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/default/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/es6-target/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/with-complex-headers/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/with-interfaces/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/with-npm-version/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

samples/client/petstore/typescript-axios/builds/with-single-request-parameters/common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export const setSearchParams = function (url: URL, ...objects: any[]) {
9191
const searchParams = new URLSearchParams(url.search);
9292
for (const object of objects) {
9393
for (const key in object) {
94-
searchParams.set(key, object[key]);
94+
if (Array.isArray(object[key])) {
95+
searchParams.delete(key);
96+
for (const item of object[key]) {
97+
searchParams.append(key, item);
98+
}
99+
} else {
100+
searchParams.set(key, object[key]);
101+
}
95102
}
96103
}
97104
url.search = searchParams.toString();

0 commit comments

Comments
 (0)