Skip to content

Commit fa9b053

Browse files
committed
- Fixed ferdikoomen#891 added support for multiple files in form data
1 parent e263cb2 commit fa9b053

File tree

4 files changed

+64
-37
lines changed

4 files changed

+64
-37
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "openapi-typescript-codegen",
3-
"version": "0.12.3",
3+
"version": "0.12.4",
44
"description": "Library that generates Typescript clients based on the OpenAPI specification.",
55
"author": "Ferdi Koomen",
66
"homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen",

src/templates/core/functions/getFormData.hbs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@ function getFormData(options: ApiRequestOptions): FormData | undefined {
22
if (options.formData) {
33
const formData = new FormData();
44

5+
const append = (key: string, value: any) => {
6+
if (isString(value) || isBlob(value)) {
7+
formData.append(key, value);
8+
} else {
9+
formData.append(key, JSON.stringify(value));
10+
}
11+
};
12+
513
Object.entries(options.formData)
614
.filter(([_, value]) => isDefined(value))
715
.forEach(([key, value]) => {
8-
if (isString(value) || isBlob(value)) {
9-
formData.append(key, value);
16+
if (Array.isArray(value)) {
17+
value.forEach(v => append(key, v));
1018
} else {
11-
formData.append(key, JSON.stringify(value));
19+
append(key, value);
1220
}
1321
});
1422

src/templates/core/functions/getQueryString.hbs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
function getQueryString(params: Record<string, any>): string {
22
const qs: string[] = [];
33

4-
Object.keys(params).forEach(key => {
5-
const value = params[key];
6-
if (isDefined(value)) {
4+
const append = (key: string, value: any) => {
5+
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
6+
};
7+
8+
Object.entries(params)
9+
.filter(([_, value]) => isDefined(value))
10+
.forEach(([key, value]) => {
711
if (Array.isArray(value)) {
8-
value.forEach(value => {
9-
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
10-
});
12+
value.forEach(v => append(key, v));
1113
} else {
12-
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
14+
append(key, value);
1315
}
14-
}
15-
});
16+
});
1617

1718
if (qs.length > 0) {
1819
return `?${qs.join('&')}`;

test/__snapshots__/index.spec.js.snap

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -244,18 +244,19 @@ function base64(str: string): string {
244244
function getQueryString(params: Record<string, any>): string {
245245
const qs: string[] = [];
246246

247-
Object.keys(params).forEach(key => {
248-
const value = params[key];
249-
if (isDefined(value)) {
247+
const append = (key: string, value: any) => {
248+
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
249+
};
250+
251+
Object.entries(params)
252+
.filter(([_, value]) => isDefined(value))
253+
.forEach(([key, value]) => {
250254
if (Array.isArray(value)) {
251-
value.forEach(value => {
252-
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
253-
});
255+
value.forEach(v => append(key, v));
254256
} else {
255-
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
257+
append(key, value);
256258
}
257-
}
258-
});
259+
});
259260

260261
if (qs.length > 0) {
261262
return \`?\${qs.join('&')}\`;
@@ -278,13 +279,21 @@ function getFormData(options: ApiRequestOptions): FormData | undefined {
278279
if (options.formData) {
279280
const formData = new FormData();
280281

282+
const append = (key: string, value: any) => {
283+
if (isString(value) || isBlob(value)) {
284+
formData.append(key, value);
285+
} else {
286+
formData.append(key, JSON.stringify(value));
287+
}
288+
};
289+
281290
Object.entries(options.formData)
282291
.filter(([_, value]) => isDefined(value))
283292
.forEach(([key, value]) => {
284-
if (isString(value) || isBlob(value)) {
285-
formData.append(key, value);
293+
if (Array.isArray(value)) {
294+
value.forEach(v => append(key, v));
286295
} else {
287-
formData.append(key, JSON.stringify(value));
296+
append(key, value);
288297
}
289298
});
290299

@@ -2897,18 +2906,19 @@ function base64(str: string): string {
28972906
function getQueryString(params: Record<string, any>): string {
28982907
const qs: string[] = [];
28992908

2900-
Object.keys(params).forEach(key => {
2901-
const value = params[key];
2902-
if (isDefined(value)) {
2909+
const append = (key: string, value: any) => {
2910+
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
2911+
};
2912+
2913+
Object.entries(params)
2914+
.filter(([_, value]) => isDefined(value))
2915+
.forEach(([key, value]) => {
29032916
if (Array.isArray(value)) {
2904-
value.forEach(value => {
2905-
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
2906-
});
2917+
value.forEach(v => append(key, v));
29072918
} else {
2908-
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
2919+
append(key, value);
29092920
}
2910-
}
2911-
});
2921+
});
29122922

29132923
if (qs.length > 0) {
29142924
return \`?\${qs.join('&')}\`;
@@ -2931,13 +2941,21 @@ function getFormData(options: ApiRequestOptions): FormData | undefined {
29312941
if (options.formData) {
29322942
const formData = new FormData();
29332943

2944+
const append = (key: string, value: any) => {
2945+
if (isString(value) || isBlob(value)) {
2946+
formData.append(key, value);
2947+
} else {
2948+
formData.append(key, JSON.stringify(value));
2949+
}
2950+
};
2951+
29342952
Object.entries(options.formData)
29352953
.filter(([_, value]) => isDefined(value))
29362954
.forEach(([key, value]) => {
2937-
if (isString(value) || isBlob(value)) {
2938-
formData.append(key, value);
2955+
if (Array.isArray(value)) {
2956+
value.forEach(v => append(key, v));
29392957
} else {
2940-
formData.append(key, JSON.stringify(value));
2958+
append(key, value);
29412959
}
29422960
});
29432961

0 commit comments

Comments
 (0)