- Fixed #891 added support for multiple files in form data

This commit is contained in:
Ferdi Koomen 2021-11-29 16:05:37 -05:00
parent e263cb27f6
commit fa9b0536bf
4 changed files with 64 additions and 37 deletions

View File

@ -1,6 +1,6 @@
{
"name": "openapi-typescript-codegen",
"version": "0.12.3",
"version": "0.12.4",
"description": "Library that generates Typescript clients based on the OpenAPI specification.",
"author": "Ferdi Koomen",
"homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen",

View File

@ -2,13 +2,21 @@ function getFormData(options: ApiRequestOptions): FormData | undefined {
if (options.formData) {
const formData = new FormData();
const append = (key: string, value: any) => {
if (isString(value) || isBlob(value)) {
formData.append(key, value);
} else {
formData.append(key, JSON.stringify(value));
}
};
Object.entries(options.formData)
.filter(([_, value]) => isDefined(value))
.forEach(([key, value]) => {
if (isString(value) || isBlob(value)) {
formData.append(key, value);
if (Array.isArray(value)) {
value.forEach(v => append(key, v));
} else {
formData.append(key, JSON.stringify(value));
append(key, value);
}
});

View File

@ -1,18 +1,19 @@
function getQueryString(params: Record<string, any>): string {
const qs: string[] = [];
Object.keys(params).forEach(key => {
const value = params[key];
if (isDefined(value)) {
const append = (key: string, value: any) => {
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
};
Object.entries(params)
.filter(([_, value]) => isDefined(value))
.forEach(([key, value]) => {
if (Array.isArray(value)) {
value.forEach(value => {
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
});
value.forEach(v => append(key, v));
} else {
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
append(key, value);
}
}
});
});
if (qs.length > 0) {
return `?${qs.join('&')}`;

View File

@ -244,18 +244,19 @@ function base64(str: string): string {
function getQueryString(params: Record<string, any>): string {
const qs: string[] = [];
Object.keys(params).forEach(key => {
const value = params[key];
if (isDefined(value)) {
const append = (key: string, value: any) => {
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
};
Object.entries(params)
.filter(([_, value]) => isDefined(value))
.forEach(([key, value]) => {
if (Array.isArray(value)) {
value.forEach(value => {
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
});
value.forEach(v => append(key, v));
} else {
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
append(key, value);
}
}
});
});
if (qs.length > 0) {
return \`?\${qs.join('&')}\`;
@ -278,13 +279,21 @@ function getFormData(options: ApiRequestOptions): FormData | undefined {
if (options.formData) {
const formData = new FormData();
const append = (key: string, value: any) => {
if (isString(value) || isBlob(value)) {
formData.append(key, value);
} else {
formData.append(key, JSON.stringify(value));
}
};
Object.entries(options.formData)
.filter(([_, value]) => isDefined(value))
.forEach(([key, value]) => {
if (isString(value) || isBlob(value)) {
formData.append(key, value);
if (Array.isArray(value)) {
value.forEach(v => append(key, v));
} else {
formData.append(key, JSON.stringify(value));
append(key, value);
}
});
@ -2897,18 +2906,19 @@ function base64(str: string): string {
function getQueryString(params: Record<string, any>): string {
const qs: string[] = [];
Object.keys(params).forEach(key => {
const value = params[key];
if (isDefined(value)) {
const append = (key: string, value: any) => {
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
};
Object.entries(params)
.filter(([_, value]) => isDefined(value))
.forEach(([key, value]) => {
if (Array.isArray(value)) {
value.forEach(value => {
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
});
value.forEach(v => append(key, v));
} else {
qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`);
append(key, value);
}
}
});
});
if (qs.length > 0) {
return \`?\${qs.join('&')}\`;
@ -2931,13 +2941,21 @@ function getFormData(options: ApiRequestOptions): FormData | undefined {
if (options.formData) {
const formData = new FormData();
const append = (key: string, value: any) => {
if (isString(value) || isBlob(value)) {
formData.append(key, value);
} else {
formData.append(key, JSON.stringify(value));
}
};
Object.entries(options.formData)
.filter(([_, value]) => isDefined(value))
.forEach(([key, value]) => {
if (isString(value) || isBlob(value)) {
formData.append(key, value);
if (Array.isArray(value)) {
value.forEach(v => append(key, v));
} else {
formData.append(key, JSON.stringify(value));
append(key, value);
}
});