fork of hey-api/openapi-ts because I need some additional things

Merge pull request #461 from hey-api/fix/params

fix: properly set formData and body when using options

authored by

Jordan Shatford and committed by
GitHub
8db9915d 5c166dd8

+57 -44
+5
.changeset/big-icons-sort.md
··· 1 + --- 2 + "@hey-api/openapi-ts": patch 3 + --- 4 + 5 + fix: properly set formData and body when using options
+10 -2
packages/openapi-ts/src/utils/write/services.ts
··· 141 141 } 142 142 if (operation.parametersBody) { 143 143 if (operation.parametersBody.in === 'formData') { 144 - obj.formData = operation.parametersBody.name; 144 + if (config.useOptions) { 145 + obj.formData = `data.${operation.parametersBody.name}`; 146 + } else { 147 + obj.formData = operation.parametersBody.name; 148 + } 145 149 } 146 150 if (operation.parametersBody.in === 'body') { 147 - obj.body = operation.parametersBody.name; 151 + if (config.useOptions) { 152 + obj.body = `data.${operation.parametersBody.name}`; 153 + } else { 154 + obj.body = operation.parametersBody.name; 155 + } 148 156 } 149 157 } 150 158 if (operation.parametersBody?.mediaType) {
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v2/services.gen.ts.snap
··· 148 148 formData: { 149 149 parameterForm: data.parameterForm 150 150 }, 151 - body: parameterBody 151 + body: data.parameterBody 152 152 }); 153 153 } 154 154 ··· 183 183 formData: { 184 184 parameter_form: data.parameterForm 185 185 }, 186 - body: parameterBody 186 + body: data.parameterBody 187 187 }); 188 188 } 189 189
+9 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3/services.gen.ts.snap
··· 26 26 return __request(OpenAPI, { 27 27 method: 'POST', 28 28 url: '/api/v{api-version}/no-tag', 29 - body: requestBody, 29 + body: data.requestBody, 30 30 mediaType: 'application/json' 31 31 }); 32 32 } ··· 168 168 formData: { 169 169 parameterForm: data.parameterForm 170 170 }, 171 - body: requestBody, 171 + body: data.requestBody, 172 172 mediaType: 'application/json' 173 173 }); 174 174 } ··· 208 208 formData: { 209 209 parameter_form: data.parameterForm 210 210 }, 211 - body: requestBody, 211 + body: data.requestBody, 212 212 mediaType: 'application/json' 213 213 }); 214 214 } ··· 226 226 query: { 227 227 parameter: data.parameter 228 228 }, 229 - body: requestBody, 229 + body: data.requestBody, 230 230 mediaType: 'application/json' 231 231 }); 232 232 } ··· 244 244 query: { 245 245 parameter: data.parameter 246 246 }, 247 - body: requestBody, 247 + body: data.requestBody, 248 248 mediaType: 'application/json' 249 249 }); 250 250 } ··· 315 315 query: { 316 316 parameter: data.parameter 317 317 }, 318 - body: foo, 318 + body: data.foo, 319 319 mediaType: 'application/json' 320 320 }); 321 321 } ··· 336 336 query: { 337 337 parameter: data.parameter 338 338 }, 339 - formData, 339 + formData: data.formData, 340 340 mediaType: 'multipart/form-data' 341 341 }); 342 342 } ··· 754 754 path: { 755 755 id: data.id 756 756 }, 757 - body: requestBody, 757 + body: data.requestBody, 758 758 mediaType: 'application/json-patch+json' 759 759 }); 760 760 } ··· 771 771 return __request(OpenAPI, { 772 772 method: 'POST', 773 773 url: '/api/v{api-version}/multipart', 774 - formData, 774 + formData: data.formData, 775 775 mediaType: 'multipart/form-data' 776 776 }); 777 777 }
+9 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_angular/services.gen.ts.snap
··· 33 33 return __request(OpenAPI, this.http, { 34 34 method: 'POST', 35 35 url: '/api/v{api-version}/no-tag', 36 - body: requestBody, 36 + body: data.requestBody, 37 37 mediaType: 'application/json' 38 38 }); 39 39 } ··· 185 185 formData: { 186 186 parameterForm: data.parameterForm 187 187 }, 188 - body: requestBody, 188 + body: data.requestBody, 189 189 mediaType: 'application/json' 190 190 }); 191 191 } ··· 225 225 formData: { 226 226 parameter_form: data.parameterForm 227 227 }, 228 - body: requestBody, 228 + body: data.requestBody, 229 229 mediaType: 'application/json' 230 230 }); 231 231 } ··· 243 243 query: { 244 244 parameter: data.parameter 245 245 }, 246 - body: requestBody, 246 + body: data.requestBody, 247 247 mediaType: 'application/json' 248 248 }); 249 249 } ··· 261 261 query: { 262 262 parameter: data.parameter 263 263 }, 264 - body: requestBody, 264 + body: data.requestBody, 265 265 mediaType: 'application/json' 266 266 }); 267 267 } ··· 347 347 query: { 348 348 parameter: data.parameter 349 349 }, 350 - body: foo, 350 + body: data.foo, 351 351 mediaType: 'application/json' 352 352 }); 353 353 } ··· 373 373 query: { 374 374 parameter: data.parameter 375 375 }, 376 - formData, 376 + formData: data.formData, 377 377 mediaType: 'multipart/form-data' 378 378 }); 379 379 } ··· 851 851 path: { 852 852 id: data.id 853 853 }, 854 - body: requestBody, 854 + body: data.requestBody, 855 855 mediaType: 'application/json-patch+json' 856 856 }); 857 857 } ··· 873 873 return __request(OpenAPI, this.http, { 874 874 method: 'POST', 875 875 url: '/api/v{api-version}/multipart', 876 - formData, 876 + formData: data.formData, 877 877 mediaType: 'multipart/form-data' 878 878 }); 879 879 }
+9 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_client/services.gen.ts.snap
··· 27 27 return this.httpRequest.request({ 28 28 method: 'POST', 29 29 url: '/api/v{api-version}/no-tag', 30 - body: requestBody, 30 + body: data.requestBody, 31 31 mediaType: 'application/json' 32 32 }); 33 33 } ··· 173 173 formData: { 174 174 parameterForm: data.parameterForm 175 175 }, 176 - body: requestBody, 176 + body: data.requestBody, 177 177 mediaType: 'application/json' 178 178 }); 179 179 } ··· 213 213 formData: { 214 214 parameter_form: data.parameterForm 215 215 }, 216 - body: requestBody, 216 + body: data.requestBody, 217 217 mediaType: 'application/json' 218 218 }); 219 219 } ··· 231 231 query: { 232 232 parameter: data.parameter 233 233 }, 234 - body: requestBody, 234 + body: data.requestBody, 235 235 mediaType: 'application/json' 236 236 }); 237 237 } ··· 249 249 query: { 250 250 parameter: data.parameter 251 251 }, 252 - body: requestBody, 252 + body: data.requestBody, 253 253 mediaType: 'application/json' 254 254 }); 255 255 } ··· 326 326 query: { 327 327 parameter: data.parameter 328 328 }, 329 - body: foo, 329 + body: data.foo, 330 330 mediaType: 'application/json' 331 331 }); 332 332 } ··· 349 349 query: { 350 350 parameter: data.parameter 351 351 }, 352 - formData, 352 + formData: data.formData, 353 353 mediaType: 'multipart/form-data' 354 354 }); 355 355 } ··· 791 791 path: { 792 792 id: data.id 793 793 }, 794 - body: requestBody, 794 + body: data.requestBody, 795 795 mediaType: 'application/json-patch+json' 796 796 }); 797 797 } ··· 810 810 return this.httpRequest.request({ 811 811 method: 'POST', 812 812 url: '/api/v{api-version}/multipart', 813 - formData, 813 + formData: data.formData, 814 814 mediaType: 'multipart/form-data' 815 815 }); 816 816 }
+9 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_enums_typescript/services.gen.ts.snap
··· 26 26 return __request(OpenAPI, { 27 27 method: 'POST', 28 28 url: '/api/v{api-version}/no-tag', 29 - body: requestBody, 29 + body: data.requestBody, 30 30 mediaType: 'application/json' 31 31 }); 32 32 } ··· 168 168 formData: { 169 169 parameterForm: data.parameterForm 170 170 }, 171 - body: requestBody, 171 + body: data.requestBody, 172 172 mediaType: 'application/json' 173 173 }); 174 174 } ··· 208 208 formData: { 209 209 parameter_form: data.parameterForm 210 210 }, 211 - body: requestBody, 211 + body: data.requestBody, 212 212 mediaType: 'application/json' 213 213 }); 214 214 } ··· 226 226 query: { 227 227 parameter: data.parameter 228 228 }, 229 - body: requestBody, 229 + body: data.requestBody, 230 230 mediaType: 'application/json' 231 231 }); 232 232 } ··· 244 244 query: { 245 245 parameter: data.parameter 246 246 }, 247 - body: requestBody, 247 + body: data.requestBody, 248 248 mediaType: 'application/json' 249 249 }); 250 250 } ··· 315 315 query: { 316 316 parameter: data.parameter 317 317 }, 318 - body: foo, 318 + body: data.foo, 319 319 mediaType: 'application/json' 320 320 }); 321 321 } ··· 336 336 query: { 337 337 parameter: data.parameter 338 338 }, 339 - formData, 339 + formData: data.formData, 340 340 mediaType: 'multipart/form-data' 341 341 }); 342 342 } ··· 754 754 path: { 755 755 id: data.id 756 756 }, 757 - body: requestBody, 757 + body: data.requestBody, 758 758 mediaType: 'application/json-patch+json' 759 759 }); 760 760 } ··· 771 771 return __request(OpenAPI, { 772 772 method: 'POST', 773 773 url: '/api/v{api-version}/multipart', 774 - formData, 774 + formData: data.formData, 775 775 mediaType: 'multipart/form-data' 776 776 }); 777 777 }
+4 -4
packages/openapi-ts/test/__snapshots__/test/generated/v3_services_name/services.gen.ts.snap
··· 139 139 formData: { 140 140 parameterForm: data.parameterForm 141 141 }, 142 - body: requestBody, 142 + body: data.requestBody, 143 143 mediaType: 'application/json' 144 144 }); 145 145 } ··· 179 179 formData: { 180 180 parameter_form: data.parameterForm 181 181 }, 182 - body: requestBody, 182 + body: data.requestBody, 183 183 mediaType: 'application/json' 184 184 }); 185 185 } ··· 197 197 query: { 198 198 parameter: data.parameter 199 199 }, 200 - body: requestBody, 200 + body: data.requestBody, 201 201 mediaType: 'application/json' 202 202 }); 203 203 } ··· 215 215 query: { 216 216 parameter: data.parameter 217 217 }, 218 - body: requestBody, 218 + body: data.requestBody, 219 219 mediaType: 'application/json' 220 220 }); 221 221 }