@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 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
- axiosFunction += `
150
- const formData = new FormData()
151
- formData.append('upload', file)
152
- return axios.${method}(${formattedPath}, formData, {
153
- headers: { 'Content-Type': 'multipart/form-data' },
154
- onUploadProgress: options?.onUploadProgress${paramStr ? `,
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
- const multipartFormData = content["multipart/form-data"] || {};
180
- if (multipartFormData.schema?.$ref?.includes("Body_upload_files")) {
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: "file: File, options?: UploadOptions & { dirPath?: string, tags?: string[] }",
196
+ requestBodyParam: "formData: FormData",
183
197
  requestBodyPayload: "formData"
184
198
  };
185
199
  }
186
- const jsonContent = requestBody.content["application/json"];
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
- axiosFunction += `
144
- const formData = new FormData()
145
- formData.append('upload', file)
146
- return axios.${method}(${formattedPath}, formData, {
147
- headers: { 'Content-Type': 'multipart/form-data' },
148
- onUploadProgress: options?.onUploadProgress${paramStr ? `,
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
- const multipartFormData = content["multipart/form-data"] || {};
174
- if (multipartFormData.schema?.$ref?.includes("Body_upload_files")) {
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: "file: File, options?: UploadOptions & { dirPath?: string, tags?: string[] }",
190
+ requestBodyParam: "formData: FormData",
177
191
  requestBodyPayload: "formData"
178
192
  };
179
193
  }
180
- const jsonContent = requestBody.content["application/json"];
194
+ const jsonContent = content["application/json"];
181
195
  if (!jsonContent || !jsonContent.schema) {
182
196
  return { requestBodyParam: "", requestBodyPayload: "" };
183
197
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/sdk",
3
3
  "type": "module",
4
- "version": "1.1.21",
4
+ "version": "1.1.27",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -100,13 +100,22 @@ function generateAxiosFunction(
100
100
  ? `params: {${parameters.config.params}}`
101
101
  : ''
102
102
 
103
- axiosFunction += `
104
- const formData = new FormData()
105
- formData.append('upload', file)
106
- return axios.${method}(${formattedPath}, formData, {
107
- headers: { 'Content-Type': 'multipart/form-data' },
108
- onUploadProgress: options?.onUploadProgress${paramStr ? `,\n ${paramStr}` : ''}
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
- const multipartFormData = content['multipart/form-data'] || {}
145
- if (multipartFormData.schema?.$ref?.includes('Body_upload_files')) {
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 = requestBody.content['application/json']
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
- = toCamelCase(bodySchema.title)
164
- || toCamelCase(requestBodyType)
165
- || 'requestBody'
183
+ const requestBodyPayload = (
184
+ toCamelCase(bodySchema.title) || toCamelCase(requestBodyType) || 'requestBody'
185
+ )
166
186
 
167
187
  const requestBodyParam = formatVarType({
168
188
  varName: requestBodyPayload,