@bagelink/sdk 1.1.21 → 1.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +25 -11
- package/dist/index.mjs +25 -11
- package/package.json +1 -1
- package/src/openAPITools/functionGenerator.ts +36 -16
package/dist/index.cjs
CHANGED
|
@@ -146,14 +146,22 @@ function generateAxiosFunction(method, formattedPath, allParams, responseTypeStr
|
|
|
146
146
|
let axiosFunction = `async (${allParams})${responseTypeStr} => {`;
|
|
147
147
|
if (requestBodyPayload === "formData") {
|
|
148
148
|
const paramStr = parameters?.config?.params ? `params: {${parameters.config.params}}` : "";
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
if (allParams.includes("file: File")) {
|
|
150
|
+
axiosFunction += `
|
|
151
|
+
const formData = new FormData()
|
|
152
|
+
formData.append('upload', file)
|
|
153
|
+
return axios.${method}(${formattedPath}, formData, {
|
|
154
|
+
headers: { 'Content-Type': 'multipart/form-data' },
|
|
155
|
+
onUploadProgress: options?.onUploadProgress${paramStr ? `,
|
|
155
156
|
${paramStr}` : ""}
|
|
156
|
-
|
|
157
|
+
})`;
|
|
158
|
+
} else {
|
|
159
|
+
axiosFunction += `
|
|
160
|
+
return axios.${method}(${formattedPath}, formData, {
|
|
161
|
+
headers: { 'Content-Type': 'multipart/form-data' }${paramStr ? `,
|
|
162
|
+
${paramStr}` : ""}
|
|
163
|
+
})`;
|
|
164
|
+
}
|
|
157
165
|
} else {
|
|
158
166
|
const paramStr = parameters?.config?.params ? `, { params: {${parameters.config.params}} }` : "";
|
|
159
167
|
const bodyVar = requestBodyPayload ? `${requestBodyPayload}` : "{}";
|
|
@@ -176,14 +184,20 @@ function generateRequestBody(requestBody) {
|
|
|
176
184
|
if (!requestBody?.content)
|
|
177
185
|
return { requestBodyParam: "", requestBodyPayload: "" };
|
|
178
186
|
const { content } = requestBody;
|
|
179
|
-
|
|
180
|
-
|
|
187
|
+
if (content["multipart/form-data"]) {
|
|
188
|
+
const multipartFormData = content["multipart/form-data"];
|
|
189
|
+
if (multipartFormData.schema?.$ref?.includes("Body_upload_files")) {
|
|
190
|
+
return {
|
|
191
|
+
requestBodyParam: "file: File, options?: UploadOptions & { dirPath?: string, tags?: string[] }",
|
|
192
|
+
requestBodyPayload: "formData"
|
|
193
|
+
};
|
|
194
|
+
}
|
|
181
195
|
return {
|
|
182
|
-
requestBodyParam: "
|
|
196
|
+
requestBodyParam: "formData: FormData",
|
|
183
197
|
requestBodyPayload: "formData"
|
|
184
198
|
};
|
|
185
199
|
}
|
|
186
|
-
const jsonContent =
|
|
200
|
+
const jsonContent = content["application/json"];
|
|
187
201
|
if (!jsonContent || !jsonContent.schema) {
|
|
188
202
|
return { requestBodyParam: "", requestBodyPayload: "" };
|
|
189
203
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -140,14 +140,22 @@ function generateAxiosFunction(method, formattedPath, allParams, responseTypeStr
|
|
|
140
140
|
let axiosFunction = `async (${allParams})${responseTypeStr} => {`;
|
|
141
141
|
if (requestBodyPayload === "formData") {
|
|
142
142
|
const paramStr = parameters?.config?.params ? `params: {${parameters.config.params}}` : "";
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
143
|
+
if (allParams.includes("file: File")) {
|
|
144
|
+
axiosFunction += `
|
|
145
|
+
const formData = new FormData()
|
|
146
|
+
formData.append('upload', file)
|
|
147
|
+
return axios.${method}(${formattedPath}, formData, {
|
|
148
|
+
headers: { 'Content-Type': 'multipart/form-data' },
|
|
149
|
+
onUploadProgress: options?.onUploadProgress${paramStr ? `,
|
|
149
150
|
${paramStr}` : ""}
|
|
150
|
-
|
|
151
|
+
})`;
|
|
152
|
+
} else {
|
|
153
|
+
axiosFunction += `
|
|
154
|
+
return axios.${method}(${formattedPath}, formData, {
|
|
155
|
+
headers: { 'Content-Type': 'multipart/form-data' }${paramStr ? `,
|
|
156
|
+
${paramStr}` : ""}
|
|
157
|
+
})`;
|
|
158
|
+
}
|
|
151
159
|
} else {
|
|
152
160
|
const paramStr = parameters?.config?.params ? `, { params: {${parameters.config.params}} }` : "";
|
|
153
161
|
const bodyVar = requestBodyPayload ? `${requestBodyPayload}` : "{}";
|
|
@@ -170,14 +178,20 @@ function generateRequestBody(requestBody) {
|
|
|
170
178
|
if (!requestBody?.content)
|
|
171
179
|
return { requestBodyParam: "", requestBodyPayload: "" };
|
|
172
180
|
const { content } = requestBody;
|
|
173
|
-
|
|
174
|
-
|
|
181
|
+
if (content["multipart/form-data"]) {
|
|
182
|
+
const multipartFormData = content["multipart/form-data"];
|
|
183
|
+
if (multipartFormData.schema?.$ref?.includes("Body_upload_files")) {
|
|
184
|
+
return {
|
|
185
|
+
requestBodyParam: "file: File, options?: UploadOptions & { dirPath?: string, tags?: string[] }",
|
|
186
|
+
requestBodyPayload: "formData"
|
|
187
|
+
};
|
|
188
|
+
}
|
|
175
189
|
return {
|
|
176
|
-
requestBodyParam: "
|
|
190
|
+
requestBodyParam: "formData: FormData",
|
|
177
191
|
requestBodyPayload: "formData"
|
|
178
192
|
};
|
|
179
193
|
}
|
|
180
|
-
const jsonContent =
|
|
194
|
+
const jsonContent = content["application/json"];
|
|
181
195
|
if (!jsonContent || !jsonContent.schema) {
|
|
182
196
|
return { requestBodyParam: "", requestBodyPayload: "" };
|
|
183
197
|
}
|
package/package.json
CHANGED
|
@@ -100,13 +100,22 @@ function generateAxiosFunction(
|
|
|
100
100
|
? `params: {${parameters.config.params}}`
|
|
101
101
|
: ''
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
103
|
+
// Check if this is a file upload (with specific file parameter) or general form data
|
|
104
|
+
if (allParams.includes('file: File')) {
|
|
105
|
+
axiosFunction += `
|
|
106
|
+
const formData = new FormData()
|
|
107
|
+
formData.append('upload', file)
|
|
108
|
+
return axios.${method}(${formattedPath}, formData, {
|
|
109
|
+
headers: { 'Content-Type': 'multipart/form-data' },
|
|
110
|
+
onUploadProgress: options?.onUploadProgress${paramStr ? `,\n ${paramStr}` : ''}
|
|
111
|
+
})`
|
|
112
|
+
} else {
|
|
113
|
+
// Generic FormData handling
|
|
114
|
+
axiosFunction += `
|
|
115
|
+
return axios.${method}(${formattedPath}, formData, {
|
|
116
|
+
headers: { 'Content-Type': 'multipart/form-data' }${paramStr ? `,\n ${paramStr}` : ''}
|
|
117
|
+
})`
|
|
118
|
+
}
|
|
110
119
|
} else {
|
|
111
120
|
const paramStr = parameters?.config?.params
|
|
112
121
|
? `, { params: {${parameters.config.params}} }`
|
|
@@ -141,17 +150,29 @@ function generateRequestBody(requestBody?: RequestBodyObject): {
|
|
|
141
150
|
return { requestBodyParam: '', requestBodyPayload: '' }
|
|
142
151
|
|
|
143
152
|
const { content } = requestBody
|
|
144
|
-
|
|
145
|
-
if
|
|
153
|
+
|
|
154
|
+
// Check if this is a multipart/form-data request
|
|
155
|
+
if (content['multipart/form-data']) {
|
|
156
|
+
const multipartFormData = content['multipart/form-data']
|
|
157
|
+
|
|
158
|
+
// Special case for file uploads
|
|
159
|
+
if (multipartFormData.schema?.$ref?.includes('Body_upload_files')) {
|
|
160
|
+
return {
|
|
161
|
+
requestBodyParam:
|
|
162
|
+
'file: File, options?: UploadOptions & { dirPath?: string, tags?: string[] }',
|
|
163
|
+
requestBodyPayload: 'formData',
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Generic form data handling
|
|
146
168
|
return {
|
|
147
|
-
requestBodyParam:
|
|
148
|
-
'file: File, options?: UploadOptions & { dirPath?: string, tags?: string[] }',
|
|
169
|
+
requestBodyParam: 'formData: FormData',
|
|
149
170
|
requestBodyPayload: 'formData',
|
|
150
171
|
}
|
|
151
172
|
}
|
|
152
173
|
|
|
153
174
|
// Handle regular JSON requests
|
|
154
|
-
const jsonContent =
|
|
175
|
+
const jsonContent = content['application/json']
|
|
155
176
|
if (!jsonContent || !jsonContent.schema) {
|
|
156
177
|
return { requestBodyParam: '', requestBodyPayload: '' }
|
|
157
178
|
}
|
|
@@ -159,10 +180,9 @@ function generateRequestBody(requestBody?: RequestBodyObject): {
|
|
|
159
180
|
const bodySchema = jsonContent.schema
|
|
160
181
|
const requestBodyType = schemaToType(bodySchema)
|
|
161
182
|
collectTypeForImportStatement(requestBodyType)
|
|
162
|
-
const requestBodyPayload
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|| 'requestBody'
|
|
183
|
+
const requestBodyPayload = (
|
|
184
|
+
toCamelCase(bodySchema.title) || toCamelCase(requestBodyType) || 'requestBody'
|
|
185
|
+
)
|
|
166
186
|
|
|
167
187
|
const requestBodyParam = formatVarType({
|
|
168
188
|
varName: requestBodyPayload,
|