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

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #864 from hey-api/chore/tanstack-query-wip-2

chore: progress on TanStack Query plugin

authored by

Lubos and committed by
GitHub
7355ab4b 9338037a

+1748 -1040
+6
.changeset/calm-lemons-flash.md
··· 1 + --- 2 + '@hey-api/client-axios': patch 3 + '@hey-api/client-fetch': patch 4 + --- 5 + 6 + fix: infer response shape based on throwOnError option value
+123 -37
examples/openapi-ts-axios/src/client/services.gen.ts
··· 62 62 * Add a new pet to the store 63 63 * Add a new pet to the store 64 64 */ 65 - export const addPet = (options: Options<AddPetData>) => 66 - (options?.client ?? client).post<AddPetResponse, AddPetError>({ 65 + export const addPet = <ThrowOnError extends boolean = false>( 66 + options: Options<AddPetData, ThrowOnError>, 67 + ) => 68 + (options?.client ?? client).post<ThrowOnError, AddPetResponse, AddPetError>({ 67 69 ...options, 68 70 url: '/pet', 69 71 }); ··· 72 74 * Update an existing pet 73 75 * Update an existing pet by Id 74 76 */ 75 - export const updatePet = (options: Options<UpdatePetData>) => 76 - (options?.client ?? client).put<UpdatePetResponse, UpdatePetError>({ 77 + export const updatePet = <ThrowOnError extends boolean = false>( 78 + options: Options<UpdatePetData, ThrowOnError>, 79 + ) => 80 + (options?.client ?? client).put< 81 + ThrowOnError, 82 + UpdatePetResponse, 83 + UpdatePetError 84 + >({ 77 85 ...options, 78 86 url: '/pet', 79 87 }); ··· 82 90 * Finds Pets by status 83 91 * Multiple status values can be provided with comma separated strings 84 92 */ 85 - export const findPetsByStatus = (options?: Options<FindPetsByStatusData>) => 93 + export const findPetsByStatus = <ThrowOnError extends boolean = false>( 94 + options?: Options<FindPetsByStatusData, ThrowOnError>, 95 + ) => 86 96 (options?.client ?? client).get< 97 + ThrowOnError, 87 98 FindPetsByStatusResponse, 88 99 FindPetsByStatusError 89 100 >({ ··· 95 106 * Finds Pets by tags 96 107 * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. 97 108 */ 98 - export const findPetsByTags = (options?: Options<FindPetsByTagsData>) => 99 - (options?.client ?? client).get<FindPetsByTagsResponse, FindPetsByTagsError>({ 109 + export const findPetsByTags = <ThrowOnError extends boolean = false>( 110 + options?: Options<FindPetsByTagsData, ThrowOnError>, 111 + ) => 112 + (options?.client ?? client).get< 113 + ThrowOnError, 114 + FindPetsByTagsResponse, 115 + FindPetsByTagsError 116 + >({ 100 117 ...options, 101 118 url: '/pet/findByTags', 102 119 }); ··· 105 122 * Find pet by ID 106 123 * Returns a single pet 107 124 */ 108 - export const getPetById = (options: Options<GetPetByIdData>) => 109 - (options?.client ?? client).get<GetPetByIdResponse, GetPetByIdError>({ 125 + export const getPetById = <ThrowOnError extends boolean = false>( 126 + options: Options<GetPetByIdData, ThrowOnError>, 127 + ) => 128 + (options?.client ?? client).get< 129 + ThrowOnError, 130 + GetPetByIdResponse, 131 + GetPetByIdError 132 + >({ 110 133 ...options, 111 134 url: '/pet/{petId}', 112 135 }); ··· 114 137 /** 115 138 * Updates a pet in the store with form data 116 139 */ 117 - export const updatePetWithForm = (options: Options<UpdatePetWithFormData>) => 118 - (options?.client ?? client).post<void>({ 140 + export const updatePetWithForm = <ThrowOnError extends boolean = false>( 141 + options: Options<UpdatePetWithFormData, ThrowOnError>, 142 + ) => 143 + (options?.client ?? client).post<ThrowOnError, void>({ 119 144 ...options, 120 145 url: '/pet/{petId}', 121 146 }); ··· 123 148 /** 124 149 * Deletes a pet 125 150 */ 126 - export const deletePet = (options: Options<DeletePetData>) => 127 - (options?.client ?? client).delete<void>({ 151 + export const deletePet = <ThrowOnError extends boolean = false>( 152 + options: Options<DeletePetData, ThrowOnError>, 153 + ) => 154 + (options?.client ?? client).delete<ThrowOnError, void>({ 128 155 ...options, 129 156 url: '/pet/{petId}', 130 157 }); ··· 132 159 /** 133 160 * uploads an image 134 161 */ 135 - export const uploadFile = (options: Options<UploadFileData>) => 136 - (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 162 + export const uploadFile = <ThrowOnError extends boolean = false>( 163 + options: Options<UploadFileData, ThrowOnError>, 164 + ) => 165 + (options?.client ?? client).post< 166 + ThrowOnError, 167 + UploadFileResponse, 168 + UploadFileError 169 + >({ 137 170 ...options, 138 171 url: '/pet/{petId}/uploadImage', 139 172 }); ··· 142 175 * Returns pet inventories by status 143 176 * Returns a map of status codes to quantities 144 177 */ 145 - export const getInventory = (options?: Options) => 146 - (options?.client ?? client).get<GetInventoryResponse, GetInventoryError>({ 178 + export const getInventory = <ThrowOnError extends boolean = false>( 179 + options?: Options<unknown, ThrowOnError>, 180 + ) => 181 + (options?.client ?? client).get< 182 + ThrowOnError, 183 + GetInventoryResponse, 184 + GetInventoryError 185 + >({ 147 186 ...options, 148 187 url: '/store/inventory', 149 188 }); ··· 152 191 * Place an order for a pet 153 192 * Place a new order in the store 154 193 */ 155 - export const placeOrder = (options?: Options<PlaceOrderData>) => 156 - (options?.client ?? client).post<PlaceOrderResponse, PlaceOrderError>({ 194 + export const placeOrder = <ThrowOnError extends boolean = false>( 195 + options?: Options<PlaceOrderData, ThrowOnError>, 196 + ) => 197 + (options?.client ?? client).post< 198 + ThrowOnError, 199 + PlaceOrderResponse, 200 + PlaceOrderError 201 + >({ 157 202 ...options, 158 203 url: '/store/order', 159 204 }); ··· 162 207 * Find purchase order by ID 163 208 * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. 164 209 */ 165 - export const getOrderById = (options: Options<GetOrderByIdData>) => 166 - (options?.client ?? client).get<GetOrderByIdResponse, GetOrderByIdError>({ 210 + export const getOrderById = <ThrowOnError extends boolean = false>( 211 + options: Options<GetOrderByIdData, ThrowOnError>, 212 + ) => 213 + (options?.client ?? client).get< 214 + ThrowOnError, 215 + GetOrderByIdResponse, 216 + GetOrderByIdError 217 + >({ 167 218 ...options, 168 219 url: '/store/order/{orderId}', 169 220 }); ··· 172 223 * Delete purchase order by ID 173 224 * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors 174 225 */ 175 - export const deleteOrder = (options: Options<DeleteOrderData>) => 176 - (options?.client ?? client).delete<void>({ 226 + export const deleteOrder = <ThrowOnError extends boolean = false>( 227 + options: Options<DeleteOrderData, ThrowOnError>, 228 + ) => 229 + (options?.client ?? client).delete<ThrowOnError, void>({ 177 230 ...options, 178 231 url: '/store/order/{orderId}', 179 232 }); ··· 182 235 * Create user 183 236 * This can only be done by the logged in user. 184 237 */ 185 - export const createUser = (options?: Options<CreateUserData>) => 186 - (options?.client ?? client).post<CreateUserResponse, CreateUserError>({ 238 + export const createUser = <ThrowOnError extends boolean = false>( 239 + options?: Options<CreateUserData, ThrowOnError>, 240 + ) => 241 + (options?.client ?? client).post< 242 + ThrowOnError, 243 + CreateUserResponse, 244 + CreateUserError 245 + >({ 187 246 ...options, 188 247 url: '/user', 189 248 }); ··· 192 251 * Creates list of users with given input array 193 252 * Creates list of users with given input array 194 253 */ 195 - export const createUsersWithListInput = ( 196 - options?: Options<CreateUsersWithListInputData>, 254 + export const createUsersWithListInput = <ThrowOnError extends boolean = false>( 255 + options?: Options<CreateUsersWithListInputData, ThrowOnError>, 197 256 ) => 198 257 (options?.client ?? client).post< 258 + ThrowOnError, 199 259 CreateUsersWithListInputResponse, 200 260 CreateUsersWithListInputError 201 261 >({ ··· 206 266 /** 207 267 * Logs user into the system 208 268 */ 209 - export const loginUser = (options?: Options<LoginUserData>) => 210 - (options?.client ?? client).get<LoginUserResponse, LoginUserError>({ 269 + export const loginUser = <ThrowOnError extends boolean = false>( 270 + options?: Options<LoginUserData, ThrowOnError>, 271 + ) => 272 + (options?.client ?? client).get< 273 + ThrowOnError, 274 + LoginUserResponse, 275 + LoginUserError 276 + >({ 211 277 ...options, 212 278 url: '/user/login', 213 279 }); ··· 215 281 /** 216 282 * Logs out current logged in user session 217 283 */ 218 - export const logoutUser = (options?: Options) => 219 - (options?.client ?? client).get<LogoutUserResponse, LogoutUserError>({ 284 + export const logoutUser = <ThrowOnError extends boolean = false>( 285 + options?: Options<unknown, ThrowOnError>, 286 + ) => 287 + (options?.client ?? client).get< 288 + ThrowOnError, 289 + LogoutUserResponse, 290 + LogoutUserError 291 + >({ 220 292 ...options, 221 293 url: '/user/logout', 222 294 }); ··· 224 296 /** 225 297 * Get user by user name 226 298 */ 227 - export const getUserByName = (options: Options<GetUserByNameData>) => 228 - (options?.client ?? client).get<GetUserByNameResponse, GetUserByNameError>({ 299 + export const getUserByName = <ThrowOnError extends boolean = false>( 300 + options: Options<GetUserByNameData, ThrowOnError>, 301 + ) => 302 + (options?.client ?? client).get< 303 + ThrowOnError, 304 + GetUserByNameResponse, 305 + GetUserByNameError 306 + >({ 229 307 ...options, 230 308 url: '/user/{username}', 231 309 }); ··· 234 312 * Update user 235 313 * This can only be done by the logged in user. 236 314 */ 237 - export const updateUser = (options: Options<UpdateUserData>) => 238 - (options?.client ?? client).put<UpdateUserResponse, UpdateUserError>({ 315 + export const updateUser = <ThrowOnError extends boolean = false>( 316 + options: Options<UpdateUserData, ThrowOnError>, 317 + ) => 318 + (options?.client ?? client).put< 319 + ThrowOnError, 320 + UpdateUserResponse, 321 + UpdateUserError 322 + >({ 239 323 ...options, 240 324 url: '/user/{username}', 241 325 }); ··· 244 328 * Delete user 245 329 * This can only be done by the logged in user. 246 330 */ 247 - export const deleteUser = (options: Options<DeleteUserData>) => 248 - (options?.client ?? client).delete<void>({ 331 + export const deleteUser = <ThrowOnError extends boolean = false>( 332 + options: Options<DeleteUserData, ThrowOnError>, 333 + ) => 334 + (options?.client ?? client).delete<ThrowOnError, void>({ 249 335 ...options, 250 336 url: '/user/{username}', 251 337 });
+123 -37
examples/openapi-ts-fetch/src/client/services.gen.ts
··· 62 62 * Add a new pet to the store 63 63 * Add a new pet to the store 64 64 */ 65 - export const addPet = (options: Options<AddPetData>) => 66 - (options?.client ?? client).post<AddPetResponse, AddPetError>({ 65 + export const addPet = <ThrowOnError extends boolean = false>( 66 + options: Options<AddPetData, ThrowOnError>, 67 + ) => 68 + (options?.client ?? client).post<ThrowOnError, AddPetResponse, AddPetError>({ 67 69 ...options, 68 70 url: '/pet', 69 71 }); ··· 72 74 * Update an existing pet 73 75 * Update an existing pet by Id 74 76 */ 75 - export const updatePet = (options: Options<UpdatePetData>) => 76 - (options?.client ?? client).put<UpdatePetResponse, UpdatePetError>({ 77 + export const updatePet = <ThrowOnError extends boolean = false>( 78 + options: Options<UpdatePetData, ThrowOnError>, 79 + ) => 80 + (options?.client ?? client).put< 81 + ThrowOnError, 82 + UpdatePetResponse, 83 + UpdatePetError 84 + >({ 77 85 ...options, 78 86 url: '/pet', 79 87 }); ··· 82 90 * Finds Pets by status 83 91 * Multiple status values can be provided with comma separated strings 84 92 */ 85 - export const findPetsByStatus = (options?: Options<FindPetsByStatusData>) => 93 + export const findPetsByStatus = <ThrowOnError extends boolean = false>( 94 + options?: Options<FindPetsByStatusData, ThrowOnError>, 95 + ) => 86 96 (options?.client ?? client).get< 97 + ThrowOnError, 87 98 FindPetsByStatusResponse, 88 99 FindPetsByStatusError 89 100 >({ ··· 95 106 * Finds Pets by tags 96 107 * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. 97 108 */ 98 - export const findPetsByTags = (options?: Options<FindPetsByTagsData>) => 99 - (options?.client ?? client).get<FindPetsByTagsResponse, FindPetsByTagsError>({ 109 + export const findPetsByTags = <ThrowOnError extends boolean = false>( 110 + options?: Options<FindPetsByTagsData, ThrowOnError>, 111 + ) => 112 + (options?.client ?? client).get< 113 + ThrowOnError, 114 + FindPetsByTagsResponse, 115 + FindPetsByTagsError 116 + >({ 100 117 ...options, 101 118 url: '/pet/findByTags', 102 119 }); ··· 105 122 * Find pet by ID 106 123 * Returns a single pet 107 124 */ 108 - export const getPetById = (options: Options<GetPetByIdData>) => 109 - (options?.client ?? client).get<GetPetByIdResponse, GetPetByIdError>({ 125 + export const getPetById = <ThrowOnError extends boolean = false>( 126 + options: Options<GetPetByIdData, ThrowOnError>, 127 + ) => 128 + (options?.client ?? client).get< 129 + ThrowOnError, 130 + GetPetByIdResponse, 131 + GetPetByIdError 132 + >({ 110 133 ...options, 111 134 url: '/pet/{petId}', 112 135 }); ··· 114 137 /** 115 138 * Updates a pet in the store with form data 116 139 */ 117 - export const updatePetWithForm = (options: Options<UpdatePetWithFormData>) => 118 - (options?.client ?? client).post<void>({ 140 + export const updatePetWithForm = <ThrowOnError extends boolean = false>( 141 + options: Options<UpdatePetWithFormData, ThrowOnError>, 142 + ) => 143 + (options?.client ?? client).post<ThrowOnError, void>({ 119 144 ...options, 120 145 url: '/pet/{petId}', 121 146 }); ··· 123 148 /** 124 149 * Deletes a pet 125 150 */ 126 - export const deletePet = (options: Options<DeletePetData>) => 127 - (options?.client ?? client).delete<void>({ 151 + export const deletePet = <ThrowOnError extends boolean = false>( 152 + options: Options<DeletePetData, ThrowOnError>, 153 + ) => 154 + (options?.client ?? client).delete<ThrowOnError, void>({ 128 155 ...options, 129 156 url: '/pet/{petId}', 130 157 }); ··· 132 159 /** 133 160 * uploads an image 134 161 */ 135 - export const uploadFile = (options: Options<UploadFileData>) => 136 - (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 162 + export const uploadFile = <ThrowOnError extends boolean = false>( 163 + options: Options<UploadFileData, ThrowOnError>, 164 + ) => 165 + (options?.client ?? client).post< 166 + ThrowOnError, 167 + UploadFileResponse, 168 + UploadFileError 169 + >({ 137 170 ...options, 138 171 url: '/pet/{petId}/uploadImage', 139 172 }); ··· 142 175 * Returns pet inventories by status 143 176 * Returns a map of status codes to quantities 144 177 */ 145 - export const getInventory = (options?: Options) => 146 - (options?.client ?? client).get<GetInventoryResponse, GetInventoryError>({ 178 + export const getInventory = <ThrowOnError extends boolean = false>( 179 + options?: Options<unknown, ThrowOnError>, 180 + ) => 181 + (options?.client ?? client).get< 182 + ThrowOnError, 183 + GetInventoryResponse, 184 + GetInventoryError 185 + >({ 147 186 ...options, 148 187 url: '/store/inventory', 149 188 }); ··· 152 191 * Place an order for a pet 153 192 * Place a new order in the store 154 193 */ 155 - export const placeOrder = (options?: Options<PlaceOrderData>) => 156 - (options?.client ?? client).post<PlaceOrderResponse, PlaceOrderError>({ 194 + export const placeOrder = <ThrowOnError extends boolean = false>( 195 + options?: Options<PlaceOrderData, ThrowOnError>, 196 + ) => 197 + (options?.client ?? client).post< 198 + ThrowOnError, 199 + PlaceOrderResponse, 200 + PlaceOrderError 201 + >({ 157 202 ...options, 158 203 url: '/store/order', 159 204 }); ··· 162 207 * Find purchase order by ID 163 208 * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. 164 209 */ 165 - export const getOrderById = (options: Options<GetOrderByIdData>) => 166 - (options?.client ?? client).get<GetOrderByIdResponse, GetOrderByIdError>({ 210 + export const getOrderById = <ThrowOnError extends boolean = false>( 211 + options: Options<GetOrderByIdData, ThrowOnError>, 212 + ) => 213 + (options?.client ?? client).get< 214 + ThrowOnError, 215 + GetOrderByIdResponse, 216 + GetOrderByIdError 217 + >({ 167 218 ...options, 168 219 url: '/store/order/{orderId}', 169 220 }); ··· 172 223 * Delete purchase order by ID 173 224 * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors 174 225 */ 175 - export const deleteOrder = (options: Options<DeleteOrderData>) => 176 - (options?.client ?? client).delete<void>({ 226 + export const deleteOrder = <ThrowOnError extends boolean = false>( 227 + options: Options<DeleteOrderData, ThrowOnError>, 228 + ) => 229 + (options?.client ?? client).delete<ThrowOnError, void>({ 177 230 ...options, 178 231 url: '/store/order/{orderId}', 179 232 }); ··· 182 235 * Create user 183 236 * This can only be done by the logged in user. 184 237 */ 185 - export const createUser = (options?: Options<CreateUserData>) => 186 - (options?.client ?? client).post<CreateUserResponse, CreateUserError>({ 238 + export const createUser = <ThrowOnError extends boolean = false>( 239 + options?: Options<CreateUserData, ThrowOnError>, 240 + ) => 241 + (options?.client ?? client).post< 242 + ThrowOnError, 243 + CreateUserResponse, 244 + CreateUserError 245 + >({ 187 246 ...options, 188 247 url: '/user', 189 248 }); ··· 192 251 * Creates list of users with given input array 193 252 * Creates list of users with given input array 194 253 */ 195 - export const createUsersWithListInput = ( 196 - options?: Options<CreateUsersWithListInputData>, 254 + export const createUsersWithListInput = <ThrowOnError extends boolean = false>( 255 + options?: Options<CreateUsersWithListInputData, ThrowOnError>, 197 256 ) => 198 257 (options?.client ?? client).post< 258 + ThrowOnError, 199 259 CreateUsersWithListInputResponse, 200 260 CreateUsersWithListInputError 201 261 >({ ··· 206 266 /** 207 267 * Logs user into the system 208 268 */ 209 - export const loginUser = (options?: Options<LoginUserData>) => 210 - (options?.client ?? client).get<LoginUserResponse, LoginUserError>({ 269 + export const loginUser = <ThrowOnError extends boolean = false>( 270 + options?: Options<LoginUserData, ThrowOnError>, 271 + ) => 272 + (options?.client ?? client).get< 273 + ThrowOnError, 274 + LoginUserResponse, 275 + LoginUserError 276 + >({ 211 277 ...options, 212 278 url: '/user/login', 213 279 }); ··· 215 281 /** 216 282 * Logs out current logged in user session 217 283 */ 218 - export const logoutUser = (options?: Options) => 219 - (options?.client ?? client).get<LogoutUserResponse, LogoutUserError>({ 284 + export const logoutUser = <ThrowOnError extends boolean = false>( 285 + options?: Options<unknown, ThrowOnError>, 286 + ) => 287 + (options?.client ?? client).get< 288 + ThrowOnError, 289 + LogoutUserResponse, 290 + LogoutUserError 291 + >({ 220 292 ...options, 221 293 url: '/user/logout', 222 294 }); ··· 224 296 /** 225 297 * Get user by user name 226 298 */ 227 - export const getUserByName = (options: Options<GetUserByNameData>) => 228 - (options?.client ?? client).get<GetUserByNameResponse, GetUserByNameError>({ 299 + export const getUserByName = <ThrowOnError extends boolean = false>( 300 + options: Options<GetUserByNameData, ThrowOnError>, 301 + ) => 302 + (options?.client ?? client).get< 303 + ThrowOnError, 304 + GetUserByNameResponse, 305 + GetUserByNameError 306 + >({ 229 307 ...options, 230 308 url: '/user/{username}', 231 309 }); ··· 234 312 * Update user 235 313 * This can only be done by the logged in user. 236 314 */ 237 - export const updateUser = (options: Options<UpdateUserData>) => 238 - (options?.client ?? client).put<UpdateUserResponse, UpdateUserError>({ 315 + export const updateUser = <ThrowOnError extends boolean = false>( 316 + options: Options<UpdateUserData, ThrowOnError>, 317 + ) => 318 + (options?.client ?? client).put< 319 + ThrowOnError, 320 + UpdateUserResponse, 321 + UpdateUserError 322 + >({ 239 323 ...options, 240 324 url: '/user/{username}', 241 325 }); ··· 244 328 * Delete user 245 329 * This can only be done by the logged in user. 246 330 */ 247 - export const deleteUser = (options: Options<DeleteUserData>) => 248 - (options?.client ?? client).delete<void>({ 331 + export const deleteUser = <ThrowOnError extends boolean = false>( 332 + options: Options<DeleteUserData, ThrowOnError>, 333 + ) => 334 + (options?.client ?? client).delete<ThrowOnError, void>({ 249 335 ...options, 250 336 url: '/user/{username}', 251 337 });
+52 -26
packages/client-axios/src/types.ts
··· 11 11 12 12 type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>; 13 13 14 - export interface Config extends Omit<CreateAxiosDefaults, 'headers'> { 14 + export interface Config<ThrowOnError extends boolean = false> 15 + extends Omit<CreateAxiosDefaults, 'headers'> { 15 16 /** 16 17 * Axios implementation. You can use this option to provide a custom 17 18 * Axios instance. ··· 72 73 * Throw an error instead of returning it in the response? 73 74 * @default false 74 75 */ 75 - throwOnError?: boolean; 76 + throwOnError?: ThrowOnError; 76 77 } 77 78 78 - interface RequestOptionsBase extends Config { 79 + interface RequestOptionsBase<ThrowOnError extends boolean> 80 + extends Config<ThrowOnError> { 79 81 path?: Record<string, unknown>; 80 82 query?: Record<string, unknown>; 81 83 url: string; 82 84 } 83 85 84 - export type RequestResult<Data = unknown, Error = unknown> = Promise< 85 - | (AxiosResponse<Data> & { error: never }) 86 - | (AxiosError<Error> & { data: never; error: Error }) 87 - >; 86 + export type RequestResult< 87 + ThrowOnError extends boolean, 88 + Data = unknown, 89 + TError = unknown, 90 + > = ThrowOnError extends true 91 + ? Promise<AxiosResponse<Data>> 92 + : Promise< 93 + | (AxiosResponse<Data> & { error: undefined }) 94 + | (AxiosError<TError> & { data: undefined; error: TError }) 95 + >; 88 96 89 - type MethodFn = <Data = unknown, Error = unknown>( 90 - options: Omit<RequestOptionsBase, 'method'>, 91 - ) => RequestResult<Data, Error>; 97 + type MethodFn = < 98 + ThrowOnError extends boolean, 99 + Data = unknown, 100 + TError = unknown, 101 + >( 102 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'>, 103 + ) => RequestResult<ThrowOnError, Data, TError>; 92 104 93 - type RequestFn = <Data = unknown, Error = unknown>( 94 - options: Omit<RequestOptionsBase, 'method'> & 95 - Pick<Required<RequestOptionsBase>, 'method'>, 96 - ) => RequestResult<Data, Error>; 105 + type RequestFn = < 106 + ThrowOnError extends boolean, 107 + Data = unknown, 108 + TError = unknown, 109 + >( 110 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'> & 111 + Pick<Required<RequestOptionsBase<ThrowOnError>>, 'method'>, 112 + ) => RequestResult<ThrowOnError, Data, TError>; 97 113 98 114 export interface Client { 99 115 delete: MethodFn; 100 116 get: MethodFn; 101 - getConfig: () => Config; 117 + getConfig: () => Config<false>; 102 118 head: MethodFn; 103 119 instance: AxiosInstance; 104 120 options: MethodFn; ··· 106 122 post: MethodFn; 107 123 put: MethodFn; 108 124 request: RequestFn; 109 - setConfig: (config: Config) => Config; 125 + setConfig: (config: Config<false>) => Config<false>; 110 126 } 111 127 112 - export type RequestOptions = RequestOptionsBase & 113 - Config & { 128 + export type RequestOptions = RequestOptionsBase<false> & 129 + Config<false> & { 114 130 headers: AxiosRequestConfig['headers']; 115 131 }; 116 132 117 - type OptionsBase = Omit<RequestOptionsBase, 'url'> & { 133 + type OptionsBase<ThrowOnError extends boolean> = Omit< 134 + RequestOptionsBase<ThrowOnError>, 135 + 'url' 136 + > & { 118 137 /** 119 138 * You can provide a client instance returned by `createClient()` instead of 120 139 * individual options. This might be also useful if you want to implement a ··· 123 142 client?: Client; 124 143 }; 125 144 126 - export type Options<T = unknown> = T extends { body?: any } 145 + export type Options< 146 + T = unknown, 147 + ThrowOnError extends boolean = false, 148 + > = T extends { body?: any } 127 149 ? T extends { headers?: any } 128 - ? OmitKeys<OptionsBase, 'body' | 'headers' | 'responseTransformer'> & T 129 - : OmitKeys<OptionsBase, 'body' | 'responseTransformer'> & 150 + ? OmitKeys< 151 + OptionsBase<ThrowOnError>, 152 + 'body' | 'headers' | 'responseTransformer' 153 + > & 154 + T 155 + : OmitKeys<OptionsBase<ThrowOnError>, 'body' | 'responseTransformer'> & 130 156 T & 131 - Pick<OptionsBase, 'headers'> 157 + Pick<OptionsBase<ThrowOnError>, 'headers'> 132 158 : T extends { headers?: any } 133 - ? OmitKeys<OptionsBase, 'headers' | 'responseTransformer'> & 159 + ? OmitKeys<OptionsBase<ThrowOnError>, 'headers' | 'responseTransformer'> & 134 160 T & 135 - Pick<OptionsBase, 'body'> 136 - : OptionsBase & T; 161 + Pick<OptionsBase<ThrowOnError>, 'body'> 162 + : OptionsBase<ThrowOnError> & T;
+1
packages/client-fetch/src/index.ts
··· 28 28 29 29 // @ts-ignore 30 30 const request: Client['request'] = async (options) => { 31 + // @ts-ignore 31 32 const opts: RequestOptions = { 32 33 ..._config, 33 34 ...options,
+60 -28
packages/client-fetch/src/types.ts
··· 7 7 8 8 type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>; 9 9 10 - export interface Config 10 + export interface Config<ThrowOnError extends boolean = false> 11 11 extends Omit<RequestInit, 'body' | 'headers' | 'method'> { 12 12 /** 13 13 * Base URL for all requests made by this client. ··· 95 95 * Throw an error instead of returning it in the response? 96 96 * @default false 97 97 */ 98 - throwOnError?: boolean; 98 + throwOnError?: ThrowOnError; 99 99 } 100 100 101 - interface RequestOptionsBase extends Config { 101 + interface RequestOptionsBase<ThrowOnError extends boolean> 102 + extends Config<ThrowOnError> { 102 103 path?: Record<string, unknown>; 103 104 query?: Record<string, unknown>; 104 105 url: string; 105 106 } 106 107 107 - export type RequestResult<Data = unknown, Error = unknown> = Promise< 108 - ({ data: Data; error: undefined } | { data: undefined; error: Error }) & { 109 - request: Request; 110 - response: Response; 111 - } 112 - >; 108 + export type RequestResult< 109 + ThrowOnError extends boolean, 110 + Data = unknown, 111 + TError = unknown, 112 + > = ThrowOnError extends true 113 + ? Promise<{ 114 + data: Data; 115 + request: Request; 116 + response: Response; 117 + }> 118 + : Promise< 119 + ( 120 + | { data: Data; error: undefined } 121 + | { data: undefined; error: TError } 122 + ) & { 123 + request: Request; 124 + response: Response; 125 + } 126 + >; 113 127 114 - type MethodFn = <Data = unknown, Error = unknown>( 115 - options: Omit<RequestOptionsBase, 'method'>, 116 - ) => RequestResult<Data, Error>; 128 + type MethodFn = < 129 + ThrowOnError extends boolean, 130 + Data = unknown, 131 + TError = unknown, 132 + >( 133 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'>, 134 + ) => RequestResult<ThrowOnError, Data, TError>; 117 135 118 - type RequestFn = <Data = unknown, Error = unknown>( 119 - options: Omit<RequestOptionsBase, 'method'> & 120 - Pick<Required<RequestOptionsBase>, 'method'>, 121 - ) => RequestResult<Data, Error>; 136 + type RequestFn = < 137 + ThrowOnError extends boolean, 138 + Data = unknown, 139 + TError = unknown, 140 + >( 141 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'> & 142 + Pick<Required<RequestOptionsBase<ThrowOnError>>, 'method'>, 143 + ) => RequestResult<ThrowOnError, Data, TError>; 122 144 123 145 export interface Client< 124 146 Req = Request, ··· 128 150 connect: MethodFn; 129 151 delete: MethodFn; 130 152 get: MethodFn; 131 - getConfig: () => Config; 153 + getConfig: () => Config<false>; 132 154 head: MethodFn; 133 155 interceptors: Middleware<Req, Res, Options>; 134 156 options: MethodFn; ··· 136 158 post: MethodFn; 137 159 put: MethodFn; 138 160 request: RequestFn; 139 - setConfig: (config: Config) => Config; 161 + setConfig: (config: Config<false>) => Config<false>; 140 162 trace: MethodFn; 141 163 } 142 164 143 - export type RequestOptions = RequestOptionsBase & 144 - Config & { 165 + export type RequestOptions = RequestOptionsBase<false> & 166 + Config<false> & { 145 167 headers: Headers; 146 168 }; 147 169 148 - type OptionsBase = Omit<RequestOptionsBase, 'url'> & { 170 + type OptionsBase<ThrowOnError extends boolean> = Omit< 171 + RequestOptionsBase<ThrowOnError>, 172 + 'url' 173 + > & { 149 174 /** 150 175 * You can provide a client instance returned by `createClient()` instead of 151 176 * individual options. This might be also useful if you want to implement a ··· 154 179 client?: Client; 155 180 }; 156 181 157 - export type Options<T = unknown> = T extends { body?: any } 182 + export type Options< 183 + T = unknown, 184 + ThrowOnError extends boolean = false, 185 + > = T extends { body?: any } 158 186 ? T extends { headers?: any } 159 - ? OmitKeys<OptionsBase, 'body' | 'headers' | 'responseTransformer'> & T 160 - : OmitKeys<OptionsBase, 'body' | 'responseTransformer'> & 187 + ? OmitKeys< 188 + OptionsBase<ThrowOnError>, 189 + 'body' | 'headers' | 'responseTransformer' 190 + > & 191 + T 192 + : OmitKeys<OptionsBase<ThrowOnError>, 'body' | 'responseTransformer'> & 161 193 T & 162 - Pick<OptionsBase, 'headers'> 194 + Pick<OptionsBase<ThrowOnError>, 'headers'> 163 195 : T extends { headers?: any } 164 - ? OmitKeys<OptionsBase, 'headers' | 'responseTransformer'> & 196 + ? OmitKeys<OptionsBase<ThrowOnError>, 'headers' | 'responseTransformer'> & 165 197 T & 166 - Pick<OptionsBase, 'body'> 167 - : OptionsBase & T; 198 + Pick<OptionsBase<ThrowOnError>, 'body'> 199 + : OptionsBase<ThrowOnError> & T;
+9 -1
packages/openapi-ts/src/compiler/index.ts
··· 1 - import { PathLike, rmSync, writeFileSync } from 'node:fs'; 1 + import { type PathLike, rmSync, writeFileSync } from 'node:fs'; 2 2 import path from 'node:path'; 3 3 4 4 import ts from 'typescript'; 5 5 6 + import { ensureDirSync } from '../generate/utils'; 6 7 import * as classes from './classes'; 7 8 import * as convert from './convert'; 8 9 import * as module from './module'; ··· 122 123 this.remove({ force: true }); 123 124 return; 124 125 } 126 + 127 + let dir = this._path; 128 + if (typeof this._path === 'string') { 129 + const parts = this._path.split(path.sep); 130 + dir = parts.slice(0, parts.length - 1).join(path.sep); 131 + } 132 + ensureDirSync(dir); 125 133 writeFileSync(this._path, this.toString(seperator)); 126 134 } 127 135 }
+2 -1
packages/openapi-ts/src/compiler/module.ts
··· 26 26 return statement; 27 27 }; 28 28 29 - type ImportExportItem = ImportExportItemObject | string; 29 + export type ImportExportItem = ImportExportItemObject | string; 30 30 31 31 export const createCallExpression = ({ 32 32 parameters = [], ··· 114 114 exportConst?: boolean; 115 115 expression: ts.Expression; 116 116 name: string; 117 + // TODO: support a more intuitive definition of generics for example 117 118 typeName?: string; 118 119 }): ts.VariableStatement => { 119 120 const initializer = constAssertion
+29 -3
packages/openapi-ts/src/compiler/types.ts
··· 11 11 12 12 export type AccessLevel = 'public' | 'protected' | 'private'; 13 13 14 - export type FunctionParameter = { 14 + export interface FunctionParameter { 15 15 accessLevel?: AccessLevel; 16 16 default?: any; 17 17 destructure?: boolean; ··· 19 19 isRequired?: boolean; 20 20 name: string; 21 21 type?: any | ts.TypeNode; 22 - }; 22 + } 23 + 24 + export interface FunctionTypeParameter { 25 + default?: any; 26 + extends?: any | ts.TypeNode; 27 + name: string; 28 + } 23 29 24 30 /** 25 31 * Convert an unknown value to an expression. ··· 139 145 ); 140 146 }); 141 147 148 + export const toTypeParameters = (types: FunctionTypeParameter[]) => 149 + types.map((type) => 150 + ts.factory.createTypeParameterDeclaration( 151 + undefined, 152 + type.name, 153 + // TODO: support other extends values 154 + type.extends 155 + ? ts.factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword) 156 + : undefined, 157 + // TODO: support other default types 158 + type.default !== undefined 159 + ? ts.factory.createLiteralTypeNode( 160 + type.default ? ts.factory.createTrue() : ts.factory.createFalse(), 161 + ) 162 + : undefined, 163 + ), 164 + ); 165 + 142 166 /** 143 167 * Create arrow function type expression. 144 168 */ ··· 149 173 parameters = [], 150 174 returnType, 151 175 statements = [], 176 + types = [], 152 177 }: { 153 178 async?: boolean; 154 179 comment?: Comments; ··· 156 181 parameters?: FunctionParameter[]; 157 182 returnType?: string | ts.TypeNode; 158 183 statements?: ts.Statement[] | ts.Expression; 184 + types?: FunctionTypeParameter[]; 159 185 }) => { 160 186 const expression = ts.factory.createArrowFunction( 161 187 async ? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)] : undefined, 162 - undefined, 188 + types ? toTypeParameters(types) : undefined, 163 189 toParameterDeclarations(parameters), 164 190 returnType ? createTypeNode(returnType) : undefined, 165 191 undefined,
+4 -2
packages/openapi-ts/src/generate/class.ts
··· 7 7 import { getHttpRequestName } from '../utils/getHttpRequestName'; 8 8 import type { Templates } from '../utils/handlebars'; 9 9 import { sortByName } from '../utils/sort'; 10 + import { ensureDirSync } from './utils'; 10 11 11 12 /** 12 13 * Generate the OpenAPI client index file using the Handlebar template and write it to disk. ··· 22 23 outputPath: string, 23 24 client: Client, 24 25 templates: Templates, 25 - ): Promise<void> => { 26 + ) => { 26 27 const config = getConfig(); 27 28 28 29 const templateResult = templates.client({ ··· 34 35 }); 35 36 36 37 if (config.name) { 37 - await writeFileSync( 38 + ensureDirSync(outputPath); 39 + writeFileSync( 38 40 path.resolve(outputPath, `${config.name}.ts`), 39 41 templateResult, 40 42 );
-3
packages/openapi-ts/src/generate/output.ts
··· 14 14 import { generateServices } from './services'; 15 15 import { generateResponseTransformers } from './transformers'; 16 16 import { generateTypes } from './types'; 17 - import { ensureDirSync } from './utils'; 18 17 19 18 /** 20 19 * Write our OpenAPI client, using the given templates at the given output ··· 42 41 } 43 42 44 43 const outputPath = path.resolve(config.output.path); 45 - 46 - ensureDirSync(outputPath); 47 44 48 45 const files: Files = {}; 49 46
+203 -92
packages/openapi-ts/src/generate/plugins.ts
··· 1 + import path from 'node:path'; 2 + 1 3 import { compiler, TypeScriptFile } from '../compiler'; 4 + import type { ImportExportItem } from '../compiler/module'; 5 + import type { ImportExportItemObject } from '../compiler/utils'; 2 6 import type { Operation } from '../openApi'; 7 + import { Method } from '../openApi/common/interfaces/client'; 3 8 import { isOperationParameterRequired } from '../openApi/common/parser/operation'; 4 9 import type { Client } from '../types/client'; 5 10 import type { Files } from '../types/utils'; 6 11 import { getConfig, isStandaloneClient } from '../utils/config'; 7 - import { setUniqueTypeName } from '../utils/type'; 8 12 import { unique } from '../utils/unique'; 9 13 import { clientModulePath, clientOptionsTypeName } from './client'; 10 14 import { 11 15 generateImport, 12 16 operationDataTypeName, 17 + operationErrorTypeName, 13 18 operationOptionsType, 19 + operationResponseTypeName, 14 20 toOperationName, 15 21 } from './services'; 16 22 23 + const toMutationOptionsName = (operation: Operation) => 24 + `${toOperationName(operation, false)}Mutation`; 25 + 17 26 const toQueryOptionsName = (operation: Operation) => 18 27 `${toOperationName(operation, false)}Options`; 19 28 ··· 34 43 } 35 44 36 45 for (const plugin of config.plugins) { 46 + const outputParts = plugin.output.split('/'); 47 + const outputDir = path.resolve( 48 + config.output.path, 49 + ...outputParts.slice(0, outputParts.length - 1), 50 + ); 37 51 files[plugin.name] = new TypeScriptFile({ 38 - dir: config.output.path, 39 - name: `${plugin.output}.ts`, 52 + dir: outputDir, 53 + name: `${outputParts[outputParts.length - 1]}.ts`, 40 54 }); 41 55 42 56 if (plugin.name === '@tanstack/react-query') { ··· 54 68 55 69 const queryOptionsId = 'queryOptions'; 56 70 57 - let importsServices: Parameters< 58 - TypeScriptFile['addImport'] 59 - >[0]['imports'] = []; 60 - let importsTanStackQuery: Parameters< 61 - TypeScriptFile['addImport'] 62 - >[0]['imports'] = []; 71 + let importsServices: ImportExportItem[] = []; 72 + 73 + // TODO: `addTanStackQueryImport()` should be a method of file class to create 74 + // unique imports. It could be made more performant too 75 + let importsTanStackQuery: ImportExportItemObject[] = []; 76 + const addTanStackQueryImport = (imported: ImportExportItem) => { 77 + const importedItem: ImportExportItemObject = 78 + typeof imported === 'string' 79 + ? { 80 + name: imported, 81 + } 82 + : imported; 83 + if ( 84 + importsTanStackQuery.every((item) => item.name !== importedItem.name) 85 + ) { 86 + importsTanStackQuery = [...importsTanStackQuery, importedItem]; 87 + } 88 + }; 63 89 64 90 for (const service of client.services) { 65 91 for (const operation of service.operations) { 66 - if (operation.parameters.length) { 67 - generateImport({ 68 - client, 69 - meta: { 70 - // TODO: this should be exact ref to operation for consistency, 71 - // but name should work too as operation ID is unique 72 - $ref: operation.name, 73 - name: operation.name, 74 - }, 75 - nameTransformer: operationDataTypeName, 76 - onImport: (imported) => { 77 - imports = [...imports, imported]; 78 - }, 79 - }); 80 - } 81 - 82 - const queryFn = toOperationName(operation, true); 83 - 84 - const awaitServiceExpression = compiler.awaitExpression({ 85 - expression: compiler.callExpression({ 86 - functionName: queryFn, 87 - parameters: [ 88 - compiler.objectExpression({ 89 - multiLine: true, 90 - obj: [ 91 - { 92 - spread: 'queryKey[0].params', 93 - }, 94 - { 95 - key: 'throwOnError', 96 - value: true, 97 - }, 98 - ], 99 - }), 100 - ], 101 - }), 102 - }); 103 - 104 - const { name: importedType } = setUniqueTypeName({ 92 + const { name: nameTypeData } = generateImport({ 105 93 client, 106 - meta: { 107 - // TODO: this should be exact ref to operation for consistency, 108 - // but name should work too as operation ID is unique 109 - $ref: operation.name, 110 - name: operation.name, 94 + meta: operation.parameters.length 95 + ? { 96 + // TODO: this should be exact ref to operation for consistency, 97 + // but name should work too as operation ID is unique 98 + $ref: operation.name, 99 + name: operation.name, 100 + } 101 + : undefined, 102 + nameTransformer: operationDataTypeName, 103 + onImport: (imported) => { 104 + imports = [...imports, imported]; 111 105 }, 112 - nameTransformer: operationDataTypeName, 113 106 }); 114 107 115 - const queryFnArrowFunction = compiler.types.arrowFunction({ 116 - async: true, 117 - multiLine: true, 118 - parameters: [ 119 - { 120 - destructure: true, 121 - name: 'queryKey', 122 - }, 123 - ], 124 - statements: [ 125 - compiler.constVariable({ 126 - destructure: true, 127 - expression: awaitServiceExpression, 128 - name: 'data', 129 - }), 130 - compiler.returnVariable({ 131 - name: 'data', 132 - }), 133 - ], 134 - }); 108 + const queryFn = toOperationName(operation, true); 135 109 136 110 const isRequired = isOperationParameterRequired(operation.parameters); 111 + const typeOptions = operationOptionsType(nameTypeData); 137 112 138 113 const expression = compiler.types.arrowFunction({ 139 114 parameters: [ 140 115 { 141 116 isRequired, 142 117 name: 'options', 143 - type: operationOptionsType(importedType), 144 - }, 145 - { 146 - isRequired: false, 147 - name: 'queryOpts', 148 - type: 'object', 118 + type: typeOptions, 149 119 }, 150 120 ], 151 121 statements: [ ··· 154 124 compiler.objectExpression({ 155 125 obj: [ 156 126 { 157 - spread: 'queryOpts', 158 - }, 159 - { 160 127 key: 'queryFn', 161 - value: queryFnArrowFunction, 128 + value: compiler.types.arrowFunction({ 129 + async: true, 130 + multiLine: true, 131 + parameters: [ 132 + { 133 + destructure: true, 134 + name: 'queryKey', 135 + }, 136 + ], 137 + statements: [ 138 + compiler.constVariable({ 139 + destructure: true, 140 + expression: compiler.awaitExpression({ 141 + expression: compiler.callExpression({ 142 + functionName: queryFn, 143 + parameters: [ 144 + compiler.objectExpression({ 145 + multiLine: true, 146 + obj: [ 147 + { 148 + spread: 'options', 149 + }, 150 + { 151 + spread: 'queryKey[0].params', 152 + }, 153 + { 154 + key: 'throwOnError', 155 + value: true, 156 + }, 157 + ], 158 + }), 159 + ], 160 + }), 161 + }), 162 + name: 'data', 163 + }), 164 + compiler.returnVariable({ 165 + name: 'data', 166 + }), 167 + ], 168 + }), 162 169 }, 163 170 { 164 171 key: 'queryKey', 165 - // TODO: queryKey strategy 166 172 value: compiler.arrayLiteralExpression({ 167 173 elements: [ 168 174 compiler.objectExpression({ ··· 219 225 ], 220 226 }); 221 227 const statement = compiler.constVariable({ 222 - comment: [ 223 - 'TODO: describe arguments, options is Hey API, queryOpts is TanStack Query', 224 - ], 228 + // TODO: describe options, same as the actual function call 229 + comment: [], 225 230 exportConst: true, 226 231 expression, 227 232 name: toQueryOptionsName(operation), 228 233 }); 229 234 files[plugin.name].add(statement); 230 235 231 - if (!importsTanStackQuery.includes(queryOptionsId)) { 232 - importsTanStackQuery = [...importsTanStackQuery, queryOptionsId]; 236 + if ( 237 + plugin.mutationOptions && 238 + ( 239 + ['DELETE', 'PATCH', 'POST', 'PUT'] as ReadonlyArray<Method> 240 + ).includes(operation.method) 241 + ) { 242 + addTanStackQueryImport({ 243 + asType: true, 244 + name: 'UseMutationOptions', 245 + }); 246 + 247 + const { name: nameTypeError } = generateImport({ 248 + client, 249 + meta: { 250 + // TODO: this should be exact ref to operation for consistency, 251 + // but name should work too as operation ID is unique 252 + $ref: operation.name, 253 + name: operation.name, 254 + }, 255 + nameTransformer: operationErrorTypeName, 256 + onImport: (imported) => { 257 + imports = [...imports, imported]; 258 + }, 259 + }); 260 + 261 + let typeError: ImportExportItem = nameTypeError; 262 + if (!typeError) { 263 + typeError = { 264 + asType: true, 265 + name: 'DefaultError', 266 + }; 267 + addTanStackQueryImport(typeError); 268 + } 269 + 270 + const { name: nameTypeResponse } = generateImport({ 271 + client, 272 + meta: { 273 + // TODO: this should be exact ref to operation for consistency, 274 + // but name should work too as operation ID is unique 275 + $ref: operation.name, 276 + name: operation.name, 277 + }, 278 + nameTransformer: operationResponseTypeName, 279 + onImport: (imported) => { 280 + imports = [...imports, imported]; 281 + }, 282 + }); 283 + 284 + const typeResponse = nameTypeResponse || 'void'; 285 + 286 + const statement = compiler.constVariable({ 287 + // TODO: describe options, same as the actual function call 288 + comment: [], 289 + exportConst: true, 290 + expression: compiler.objectExpression({ 291 + obj: [ 292 + { 293 + key: 'mutationFn', 294 + value: compiler.types.arrowFunction({ 295 + async: true, 296 + multiLine: true, 297 + parameters: [ 298 + { 299 + name: 'options', 300 + }, 301 + ], 302 + statements: [ 303 + compiler.constVariable({ 304 + destructure: true, 305 + expression: compiler.awaitExpression({ 306 + expression: compiler.callExpression({ 307 + functionName: queryFn, 308 + parameters: [ 309 + compiler.objectExpression({ 310 + multiLine: true, 311 + obj: [ 312 + { 313 + spread: 'options', 314 + }, 315 + { 316 + key: 'throwOnError', 317 + value: true, 318 + }, 319 + ], 320 + }), 321 + ], 322 + }), 323 + }), 324 + name: 'data', 325 + }), 326 + compiler.returnVariable({ 327 + name: 'data', 328 + }), 329 + ], 330 + }), 331 + }, 332 + ], 333 + }), 334 + name: toMutationOptionsName(operation), 335 + // TODO: better types syntax 336 + typeName: `UseMutationOptions<${typeResponse}, ${typeof typeError === 'string' ? typeError : typeError.name}, ${typeOptions}>`, 337 + }); 338 + files[plugin.name].add(statement); 233 339 } 234 340 341 + addTanStackQueryImport(queryOptionsId); 342 + 235 343 if (!importsServices.includes(queryFn)) { 236 344 importsServices = [...importsServices, queryFn]; 237 345 } ··· 244 352 module: '@tanstack/react-query', 245 353 }); 246 354 } 355 + 356 + const relativePath = 357 + new Array(outputParts.length).fill('').join('../') || './'; 247 358 248 359 if (importsServices.length && files.services) { 249 360 files[plugin.name].addImport({ 250 361 imports: importsServices, 251 - module: `./${files.services.getName(false)}`, 362 + module: relativePath + files.services.getName(false), 252 363 }); 253 364 } 254 365 ··· 260 371 if (importedTypes.length) { 261 372 files[plugin.name].addImport({ 262 373 imports: importedTypes, 263 - module: `./${files.types.getName(false)}`, 374 + module: relativePath + files.types.getName(false), 264 375 }); 265 376 } 266 377 }
+30 -7
packages/openapi-ts/src/generate/services.ts
··· 34 34 }) => { 35 35 // generate imports only for top-level models 36 36 if (!meta) { 37 - return; 37 + // TODO: this used to return undefined. We could refactor this function to 38 + // return undefined again, but we will need to improve types so we can safely 39 + // do `const { name } = generateImport({ meta: ... })` (note when meta is defined 40 + // we guarantee the response to be an object). For now, nothing relies on this 41 + // response shape except for plugins, so it was acceptable to patch it that way 42 + return { created: false, name: '' }; 38 43 } 39 44 40 - const { name } = setUniqueTypeName({ meta, ...setUniqueTypeNameArgs }); 45 + const { created, name } = setUniqueTypeName({ 46 + meta, 47 + ...setUniqueTypeNameArgs, 48 + }); 41 49 if (name) { 42 50 onImport(name); 43 51 } 52 + return { created, name }; 44 53 }; 45 54 46 55 export const modelResponseTransformerTypeName = (name: string) => ··· 63 72 * @param importedType unique type name returned from `setUniqueTypeName()` 64 73 * @returns options type 65 74 */ 66 - export const operationOptionsType = (importedType?: string) => { 75 + export const operationOptionsType = ( 76 + importedType?: string, 77 + throwOnError?: string, 78 + ) => { 67 79 const optionsName = clientOptionsTypeName(); 80 + // TODO: refactor this to be more generic, works for now 81 + if (throwOnError) { 82 + return `${optionsName}<${importedType || 'unknown'}, ${throwOnError}>`; 83 + } 68 84 return importedType ? `${optionsName}<${importedType}>` : optionsName; 69 85 }; 70 86 ··· 92 108 { 93 109 isRequired, 94 110 name: 'options', 95 - type: operationOptionsType(importedType), 111 + type: operationOptionsType(importedType, 'ThrowOnError'), 96 112 }, 97 113 ]; 98 114 } ··· 476 492 name: `(options?.client ?? client).${operation.method.toLocaleLowerCase()}`, 477 493 types: 478 494 errorType && responseType 479 - ? [responseType, errorType] 495 + ? ['ThrowOnError', responseType, errorType] 480 496 : errorType 481 - ? ['unknown', errorType] 497 + ? ['ThrowOnError', 'unknown', errorType] 482 498 : responseType 483 - ? [responseType] 499 + ? ['ThrowOnError', responseType] 484 500 : [], 485 501 }), 486 502 ]; ··· 589 605 onImport, 590 606 onClientImport, 591 607 ), 608 + types: [ 609 + { 610 + default: false, 611 + extends: 'boolean', 612 + name: 'ThrowOnError', 613 + }, 614 + ], 592 615 }); 593 616 const statement = compiler.constVariable({ 594 617 comment: toOperationComment(operation),
+2 -2
packages/openapi-ts/src/generate/utils.ts
··· 1 - import { existsSync, mkdirSync } from 'node:fs'; 1 + import { existsSync, mkdirSync, type PathLike } from 'node:fs'; 2 2 3 - export const ensureDirSync = (path: string) => { 3 + export const ensureDirSync = (path: PathLike) => { 4 4 if (!existsSync(path)) { 5 5 mkdirSync(path, { recursive: true }); 6 6 }
+8 -2
packages/openapi-ts/src/plugins/@tanstack/react-query/config.ts
··· 1 1 export interface PluginTanStackReactQuery { 2 2 /** 3 + * Generate {@link https://github.com/TanStack/query/blob/0696b514ce71dffc8acb38c55e0c93c43b781146/packages/react-query/src/types.ts#L128-L136 `mutationOptions()`} helpers? These will be generated from DELETE, PATCH, POST, and PUT requests. 4 + * @default true 5 + */ 6 + mutationOptions?: boolean; 7 + /** 3 8 * Generate TanStack React Query output from the provided input. 4 9 */ 5 10 name: '@tanstack/react-query'; ··· 9 14 */ 10 15 output?: string; 11 16 /** 12 - * Generate {@link https://tanstack.com/query/latest/docs/framework/react/guides/query-options `queryOptions()`} and {@link https://tanstack.com/query/latest/docs/framework/react/reference/infiniteQueryOptions `infiniteQueryOptions()`} helpers? 17 + * Generate {@link https://tanstack.com/query/latest/docs/framework/react/guides/query-options `queryOptions()`} and {@link https://tanstack.com/query/latest/docs/framework/react/reference/infiniteQueryOptions `infiniteQueryOptions()`} helpers? These will be generated from all requests. 13 18 * @default true 14 19 */ 15 20 queryOptions?: boolean; ··· 17 22 18 23 export const pluginTanStackReactQueryDefaultConfig: Required<PluginTanStackReactQuery> = 19 24 { 25 + mutationOptions: true, 20 26 name: '@tanstack/react-query', 21 - output: 'tanstack-query', 27 + output: '@tanstack/query', 22 28 queryOptions: true, 23 29 };
+45 -45
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-axios/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const export_ = (options?: Options) => { return (options?.client ?? client).get<void>({ 8 + export const export_ = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 9 9 ...options, 10 10 url: '/api/v{api-version}/no-tag' 11 11 }); }; 12 12 13 - export const import_ = (options: Options<ImportData>) => { return (options?.client ?? client).post<ImportResponse, ImportError>({ 13 + export const import_ = <ThrowOnError extends boolean = false>(options: Options<ImportData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ImportResponse, ImportError>({ 14 14 ...options, 15 15 url: '/api/v{api-version}/no-tag' 16 16 }); }; 17 17 18 - export const apiVVersionOdataControllerCount = (options?: Options) => { return (options?.client ?? client).get<ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 18 + export const apiVVersionOdataControllerCount = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 19 19 ...options, 20 20 url: '/api/v{api-version}/simple/$count' 21 21 }); }; 22 22 23 - export const getCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).get<void>({ 23 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 24 24 ...options, 25 25 url: '/api/v{api-version}/simple' 26 26 }); }; 27 27 28 - export const putCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).put<void>({ 28 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 29 29 ...options, 30 30 url: '/api/v{api-version}/simple' 31 31 }); }; 32 32 33 - export const postCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).post<void>({ 33 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 34 34 ...options, 35 35 url: '/api/v{api-version}/simple' 36 36 }); }; 37 37 38 - export const deleteCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).delete<void>({ 38 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 39 39 ...options, 40 40 url: '/api/v{api-version}/simple' 41 41 }); }; 42 42 43 - export const optionsCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).options<void>({ 43 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).options<ThrowOnError, void>({ 44 44 ...options, 45 45 url: '/api/v{api-version}/simple' 46 46 }); }; 47 47 48 - export const headCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).head<void>({ 48 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).head<ThrowOnError, void>({ 49 49 ...options, 50 50 url: '/api/v{api-version}/simple' 51 51 }); }; 52 52 53 - export const patchCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).patch<void>({ 53 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).patch<ThrowOnError, void>({ 54 54 ...options, 55 55 url: '/api/v{api-version}/simple' 56 56 }); }; 57 57 58 - export const deleteFoo = (options: Options<DeleteFooData3>) => { return (options?.client ?? client).delete<void>({ 58 + export const deleteFoo = <ThrowOnError extends boolean = false>(options: Options<DeleteFooData3, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 59 59 ...options, 60 60 url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}' 61 61 }); }; 62 62 63 - export const callWithDescriptions = (options?: Options<CallWithDescriptionsData>) => { return (options?.client ?? client).post<void>({ 63 + export const callWithDescriptions = <ThrowOnError extends boolean = false>(options?: Options<CallWithDescriptionsData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 64 64 ...options, 65 65 url: '/api/v{api-version}/descriptions/' 66 66 }); }; ··· 68 68 /** 69 69 * @deprecated 70 70 */ 71 - export const deprecatedCall = (options: Options<DeprecatedCallData>) => { return (options?.client ?? client).post<void>({ 71 + export const deprecatedCall = <ThrowOnError extends boolean = false>(options: Options<DeprecatedCallData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 72 72 ...options, 73 73 url: '/api/v{api-version}/parameters/deprecated' 74 74 }); }; 75 75 76 - export const callWithParameters = (options: Options<CallWithParametersData>) => { return (options?.client ?? client).post<void>({ 76 + export const callWithParameters = <ThrowOnError extends boolean = false>(options: Options<CallWithParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 77 77 ...options, 78 78 url: '/api/v{api-version}/parameters/{parameterPath}' 79 79 }); }; 80 80 81 - export const callWithWeirdParameterNames = (options: Options<CallWithWeirdParameterNamesData>) => { return (options?.client ?? client).post<void>({ 81 + export const callWithWeirdParameterNames = <ThrowOnError extends boolean = false>(options: Options<CallWithWeirdParameterNamesData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 82 82 ...options, 83 83 url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}' 84 84 }); }; 85 85 86 - export const getCallWithOptionalParam = (options: Options<GetCallWithOptionalParamData>) => { return (options?.client ?? client).get<void>({ 86 + export const getCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<GetCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 87 87 ...options, 88 88 url: '/api/v{api-version}/parameters/' 89 89 }); }; 90 90 91 - export const postCallWithOptionalParam = (options: Options<PostCallWithOptionalParamData>) => { return (options?.client ?? client).post<void>({ 91 + export const postCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<PostCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 92 92 ...options, 93 93 url: '/api/v{api-version}/parameters/' 94 94 }); }; 95 95 96 - export const postApiVbyApiVersionRequestBody = (options?: Options<PostApiVbyApiVersionRequestBodyData>) => { return (options?.client ?? client).post<void>({ 96 + export const postApiVbyApiVersionRequestBody = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionRequestBodyData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 97 97 ...options, 98 98 url: '/api/v{api-version}/requestBody/' 99 99 }); }; 100 100 101 - export const postApiVbyApiVersionFormData = (options?: Options<PostApiVbyApiVersionFormDataData>) => { return (options?.client ?? client).post<void>({ 101 + export const postApiVbyApiVersionFormData = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionFormDataData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 102 102 ...options, 103 103 ...formDataBodySerializer, 104 104 headers: { ··· 107 107 url: '/api/v{api-version}/formData/' 108 108 }); }; 109 109 110 - export const callWithDefaultParameters = (options?: Options<CallWithDefaultParametersData>) => { return (options?.client ?? client).get<void>({ 110 + export const callWithDefaultParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultParametersData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 111 111 ...options, 112 112 url: '/api/v{api-version}/defaults' 113 113 }); }; 114 114 115 - export const callWithDefaultOptionalParameters = (options?: Options<CallWithDefaultOptionalParametersData>) => { return (options?.client ?? client).post<void>({ 115 + export const callWithDefaultOptionalParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultOptionalParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 116 116 ...options, 117 117 url: '/api/v{api-version}/defaults' 118 118 }); }; 119 119 120 - export const callToTestOrderOfParams = (options: Options<CallToTestOrderOfParamsData>) => { return (options?.client ?? client).put<void>({ 120 + export const callToTestOrderOfParams = <ThrowOnError extends boolean = false>(options: Options<CallToTestOrderOfParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 121 121 ...options, 122 122 url: '/api/v{api-version}/defaults' 123 123 }); }; 124 124 125 - export const duplicateName = (options?: Options) => { return (options?.client ?? client).get<void>({ 125 + export const duplicateName = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 126 126 ...options, 127 127 url: '/api/v{api-version}/duplicate' 128 128 }); }; 129 129 130 - export const duplicateName1 = (options?: Options) => { return (options?.client ?? client).post<void>({ 130 + export const duplicateName1 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 131 131 ...options, 132 132 url: '/api/v{api-version}/duplicate' 133 133 }); }; 134 134 135 - export const duplicateName2 = (options?: Options) => { return (options?.client ?? client).put<void>({ 135 + export const duplicateName2 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 136 136 ...options, 137 137 url: '/api/v{api-version}/duplicate' 138 138 }); }; 139 139 140 - export const duplicateName3 = (options?: Options) => { return (options?.client ?? client).delete<void>({ 140 + export const duplicateName3 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 141 141 ...options, 142 142 url: '/api/v{api-version}/duplicate' 143 143 }); }; 144 144 145 - export const callWithNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 145 + export const callWithNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 146 146 ...options, 147 147 url: '/api/v{api-version}/no-content' 148 148 }); }; 149 149 150 - export const callWithResponseAndNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 150 + export const callWithResponseAndNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 151 151 ...options, 152 152 url: '/api/v{api-version}/multiple-tags/response-and-no-content' 153 153 }); }; 154 154 155 - export const dummyA = (options?: Options) => { return (options?.client ?? client).get<DummyAResponse, DummyAError>({ 155 + export const dummyA = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyAResponse, DummyAError>({ 156 156 ...options, 157 157 url: '/api/v{api-version}/multiple-tags/a' 158 158 }); }; 159 159 160 - export const dummyB = (options?: Options) => { return (options?.client ?? client).get<DummyBResponse, DummyBError>({ 160 + export const dummyB = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyBResponse, DummyBError>({ 161 161 ...options, 162 162 url: '/api/v{api-version}/multiple-tags/b' 163 163 }); }; 164 164 165 - export const callWithResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseResponse, CallWithResponseError>({ 165 + export const callWithResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseResponse, CallWithResponseError>({ 166 166 ...options, 167 167 url: '/api/v{api-version}/response' 168 168 }); }; 169 169 170 - export const callWithDuplicateResponses = (options?: Options) => { return (options?.client ?? client).post<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 170 + export const callWithDuplicateResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 171 171 ...options, 172 172 url: '/api/v{api-version}/response' 173 173 }); }; 174 174 175 - export const callWithResponses = (options?: Options) => { return (options?.client ?? client).put<CallWithResponsesResponse, CallWithResponsesError>({ 175 + export const callWithResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, CallWithResponsesResponse, CallWithResponsesError>({ 176 176 ...options, 177 177 url: '/api/v{api-version}/response' 178 178 }); }; 179 179 180 - export const collectionFormat = (options: Options<CollectionFormatData>) => { return (options?.client ?? client).get<void>({ 180 + export const collectionFormat = <ThrowOnError extends boolean = false>(options: Options<CollectionFormatData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 181 181 ...options, 182 182 url: '/api/v{api-version}/collectionFormat' 183 183 }); }; 184 184 185 - export const types = (options: Options<TypesData>) => { return (options?.client ?? client).get<TypesResponse, TypesError>({ 185 + export const types = <ThrowOnError extends boolean = false>(options: Options<TypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, TypesResponse, TypesError>({ 186 186 ...options, 187 187 url: '/api/v{api-version}/types' 188 188 }); }; 189 189 190 - export const uploadFile = (options: Options<UploadFileData>) => { return (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 190 + export const uploadFile = <ThrowOnError extends boolean = false>(options: Options<UploadFileData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, UploadFileResponse, UploadFileError>({ 191 191 ...options, 192 192 ...urlSearchParamsBodySerializer, 193 193 headers: { ··· 196 196 url: '/api/v{api-version}/upload' 197 197 }); }; 198 198 199 - export const fileResponse = (options: Options<FileResponseData>) => { return (options?.client ?? client).get<FileResponseResponse, FileResponseError>({ 199 + export const fileResponse = <ThrowOnError extends boolean = false>(options: Options<FileResponseData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, FileResponseResponse, FileResponseError>({ 200 200 ...options, 201 201 url: '/api/v{api-version}/file/{id}' 202 202 }); }; 203 203 204 - export const complexTypes = (options: Options<ComplexTypesData>) => { return (options?.client ?? client).get<ComplexTypesResponse, ComplexTypesError>({ 204 + export const complexTypes = <ThrowOnError extends boolean = false>(options: Options<ComplexTypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ComplexTypesResponse, ComplexTypesError>({ 205 205 ...options, 206 206 url: '/api/v{api-version}/complex' 207 207 }); }; 208 208 209 - export const multipartRequest = (options?: Options<MultipartRequestData>) => { return (options?.client ?? client).post<void>({ 209 + export const multipartRequest = <ThrowOnError extends boolean = false>(options?: Options<MultipartRequestData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 210 210 ...options, 211 211 ...formDataBodySerializer, 212 212 headers: { ··· 215 215 url: '/api/v{api-version}/multipart' 216 216 }); }; 217 217 218 - export const multipartResponse = (options?: Options) => { return (options?.client ?? client).get<MultipartResponseResponse, MultipartResponseError>({ 218 + export const multipartResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, MultipartResponseResponse, MultipartResponseError>({ 219 219 ...options, 220 220 url: '/api/v{api-version}/multipart' 221 221 }); }; 222 222 223 - export const complexParams = (options: Options<ComplexParamsData>) => { return (options?.client ?? client).put<ComplexParamsResponse, ComplexParamsError>({ 223 + export const complexParams = <ThrowOnError extends boolean = false>(options: Options<ComplexParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ComplexParamsResponse, ComplexParamsError>({ 224 224 ...options, 225 225 url: '/api/v{api-version}/complex/{id}' 226 226 }); }; 227 227 228 - export const callWithResultFromHeader = (options?: Options) => { return (options?.client ?? client).post<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 228 + export const callWithResultFromHeader = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 229 229 ...options, 230 230 url: '/api/v{api-version}/header' 231 231 }); }; 232 232 233 - export const testErrorCode = (options: Options<TestErrorCodeData>) => { return (options?.client ?? client).post<TestErrorCodeResponse, TestErrorCodeError>({ 233 + export const testErrorCode = <ThrowOnError extends boolean = false>(options: Options<TestErrorCodeData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, TestErrorCodeResponse, TestErrorCodeError>({ 234 234 ...options, 235 235 url: '/api/v{api-version}/error' 236 236 }); }; 237 237 238 - export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return (options?.client ?? client).post<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 238 + export const nonAsciiæøåÆøÅöôêÊ字符串 = <ThrowOnError extends boolean = false>(options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 239 239 ...options, 240 240 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串' 241 241 }); }; ··· 243 243 /** 244 244 * Login User 245 245 */ 246 - export const putWithFormUrlEncoded = (options: Options<PutWithFormUrlEncodedData>) => { return (options?.client ?? client).put<void>({ 246 + export const putWithFormUrlEncoded = <ThrowOnError extends boolean = false>(options: Options<PutWithFormUrlEncodedData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 247 247 ...options, 248 248 ...urlSearchParamsBodySerializer, 249 249 headers: {
+52 -26
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-axios_bundle/core/types.ts.snap
··· 11 11 12 12 type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>; 13 13 14 - export interface Config extends Omit<CreateAxiosDefaults, 'headers'> { 14 + export interface Config<ThrowOnError extends boolean = false> 15 + extends Omit<CreateAxiosDefaults, 'headers'> { 15 16 /** 16 17 * Axios implementation. You can use this option to provide a custom 17 18 * Axios instance. ··· 72 73 * Throw an error instead of returning it in the response? 73 74 * @default false 74 75 */ 75 - throwOnError?: boolean; 76 + throwOnError?: ThrowOnError; 76 77 } 77 78 78 - interface RequestOptionsBase extends Config { 79 + interface RequestOptionsBase<ThrowOnError extends boolean> 80 + extends Config<ThrowOnError> { 79 81 path?: Record<string, unknown>; 80 82 query?: Record<string, unknown>; 81 83 url: string; 82 84 } 83 85 84 - export type RequestResult<Data = unknown, Error = unknown> = Promise< 85 - | (AxiosResponse<Data> & { error: never }) 86 - | (AxiosError<Error> & { data: never; error: Error }) 87 - >; 86 + export type RequestResult< 87 + ThrowOnError extends boolean, 88 + Data = unknown, 89 + TError = unknown, 90 + > = ThrowOnError extends true 91 + ? Promise<AxiosResponse<Data>> 92 + : Promise< 93 + | (AxiosResponse<Data> & { error: undefined }) 94 + | (AxiosError<TError> & { data: undefined; error: TError }) 95 + >; 88 96 89 - type MethodFn = <Data = unknown, Error = unknown>( 90 - options: Omit<RequestOptionsBase, 'method'>, 91 - ) => RequestResult<Data, Error>; 97 + type MethodFn = < 98 + ThrowOnError extends boolean, 99 + Data = unknown, 100 + TError = unknown, 101 + >( 102 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'>, 103 + ) => RequestResult<ThrowOnError, Data, TError>; 92 104 93 - type RequestFn = <Data = unknown, Error = unknown>( 94 - options: Omit<RequestOptionsBase, 'method'> & 95 - Pick<Required<RequestOptionsBase>, 'method'>, 96 - ) => RequestResult<Data, Error>; 105 + type RequestFn = < 106 + ThrowOnError extends boolean, 107 + Data = unknown, 108 + TError = unknown, 109 + >( 110 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'> & 111 + Pick<Required<RequestOptionsBase<ThrowOnError>>, 'method'>, 112 + ) => RequestResult<ThrowOnError, Data, TError>; 97 113 98 114 export interface Client { 99 115 delete: MethodFn; 100 116 get: MethodFn; 101 - getConfig: () => Config; 117 + getConfig: () => Config<false>; 102 118 head: MethodFn; 103 119 instance: AxiosInstance; 104 120 options: MethodFn; ··· 106 122 post: MethodFn; 107 123 put: MethodFn; 108 124 request: RequestFn; 109 - setConfig: (config: Config) => Config; 125 + setConfig: (config: Config<false>) => Config<false>; 110 126 } 111 127 112 - export type RequestOptions = RequestOptionsBase & 113 - Config & { 128 + export type RequestOptions = RequestOptionsBase<false> & 129 + Config<false> & { 114 130 headers: AxiosRequestConfig['headers']; 115 131 }; 116 132 117 - type OptionsBase = Omit<RequestOptionsBase, 'url'> & { 133 + type OptionsBase<ThrowOnError extends boolean> = Omit< 134 + RequestOptionsBase<ThrowOnError>, 135 + 'url' 136 + > & { 118 137 /** 119 138 * You can provide a client instance returned by `createClient()` instead of 120 139 * individual options. This might be also useful if you want to implement a ··· 123 142 client?: Client; 124 143 }; 125 144 126 - export type Options<T = unknown> = T extends { body?: any } 145 + export type Options< 146 + T = unknown, 147 + ThrowOnError extends boolean = false, 148 + > = T extends { body?: any } 127 149 ? T extends { headers?: any } 128 - ? OmitKeys<OptionsBase, 'body' | 'headers' | 'responseTransformer'> & T 129 - : OmitKeys<OptionsBase, 'body' | 'responseTransformer'> & 150 + ? OmitKeys< 151 + OptionsBase<ThrowOnError>, 152 + 'body' | 'headers' | 'responseTransformer' 153 + > & 154 + T 155 + : OmitKeys<OptionsBase<ThrowOnError>, 'body' | 'responseTransformer'> & 130 156 T & 131 - Pick<OptionsBase, 'headers'> 157 + Pick<OptionsBase<ThrowOnError>, 'headers'> 132 158 : T extends { headers?: any } 133 - ? OmitKeys<OptionsBase, 'headers' | 'responseTransformer'> & 159 + ? OmitKeys<OptionsBase<ThrowOnError>, 'headers' | 'responseTransformer'> & 134 160 T & 135 - Pick<OptionsBase, 'body'> 136 - : OptionsBase & T; 161 + Pick<OptionsBase<ThrowOnError>, 'body'> 162 + : OptionsBase<ThrowOnError> & T;
+45 -45
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-axios_bundle/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const export_ = (options?: Options) => { return (options?.client ?? client).get<void>({ 8 + export const export_ = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 9 9 ...options, 10 10 url: '/api/v{api-version}/no-tag' 11 11 }); }; 12 12 13 - export const import_ = (options: Options<ImportData>) => { return (options?.client ?? client).post<ImportResponse, ImportError>({ 13 + export const import_ = <ThrowOnError extends boolean = false>(options: Options<ImportData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ImportResponse, ImportError>({ 14 14 ...options, 15 15 url: '/api/v{api-version}/no-tag' 16 16 }); }; 17 17 18 - export const apiVVersionOdataControllerCount = (options?: Options) => { return (options?.client ?? client).get<ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 18 + export const apiVVersionOdataControllerCount = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 19 19 ...options, 20 20 url: '/api/v{api-version}/simple/$count' 21 21 }); }; 22 22 23 - export const getCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).get<void>({ 23 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 24 24 ...options, 25 25 url: '/api/v{api-version}/simple' 26 26 }); }; 27 27 28 - export const putCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).put<void>({ 28 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 29 29 ...options, 30 30 url: '/api/v{api-version}/simple' 31 31 }); }; 32 32 33 - export const postCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).post<void>({ 33 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 34 34 ...options, 35 35 url: '/api/v{api-version}/simple' 36 36 }); }; 37 37 38 - export const deleteCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).delete<void>({ 38 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 39 39 ...options, 40 40 url: '/api/v{api-version}/simple' 41 41 }); }; 42 42 43 - export const optionsCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).options<void>({ 43 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).options<ThrowOnError, void>({ 44 44 ...options, 45 45 url: '/api/v{api-version}/simple' 46 46 }); }; 47 47 48 - export const headCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).head<void>({ 48 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).head<ThrowOnError, void>({ 49 49 ...options, 50 50 url: '/api/v{api-version}/simple' 51 51 }); }; 52 52 53 - export const patchCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).patch<void>({ 53 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).patch<ThrowOnError, void>({ 54 54 ...options, 55 55 url: '/api/v{api-version}/simple' 56 56 }); }; 57 57 58 - export const deleteFoo = (options: Options<DeleteFooData3>) => { return (options?.client ?? client).delete<void>({ 58 + export const deleteFoo = <ThrowOnError extends boolean = false>(options: Options<DeleteFooData3, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 59 59 ...options, 60 60 url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}' 61 61 }); }; 62 62 63 - export const callWithDescriptions = (options?: Options<CallWithDescriptionsData>) => { return (options?.client ?? client).post<void>({ 63 + export const callWithDescriptions = <ThrowOnError extends boolean = false>(options?: Options<CallWithDescriptionsData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 64 64 ...options, 65 65 url: '/api/v{api-version}/descriptions/' 66 66 }); }; ··· 68 68 /** 69 69 * @deprecated 70 70 */ 71 - export const deprecatedCall = (options: Options<DeprecatedCallData>) => { return (options?.client ?? client).post<void>({ 71 + export const deprecatedCall = <ThrowOnError extends boolean = false>(options: Options<DeprecatedCallData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 72 72 ...options, 73 73 url: '/api/v{api-version}/parameters/deprecated' 74 74 }); }; 75 75 76 - export const callWithParameters = (options: Options<CallWithParametersData>) => { return (options?.client ?? client).post<void>({ 76 + export const callWithParameters = <ThrowOnError extends boolean = false>(options: Options<CallWithParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 77 77 ...options, 78 78 url: '/api/v{api-version}/parameters/{parameterPath}' 79 79 }); }; 80 80 81 - export const callWithWeirdParameterNames = (options: Options<CallWithWeirdParameterNamesData>) => { return (options?.client ?? client).post<void>({ 81 + export const callWithWeirdParameterNames = <ThrowOnError extends boolean = false>(options: Options<CallWithWeirdParameterNamesData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 82 82 ...options, 83 83 url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}' 84 84 }); }; 85 85 86 - export const getCallWithOptionalParam = (options: Options<GetCallWithOptionalParamData>) => { return (options?.client ?? client).get<void>({ 86 + export const getCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<GetCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 87 87 ...options, 88 88 url: '/api/v{api-version}/parameters/' 89 89 }); }; 90 90 91 - export const postCallWithOptionalParam = (options: Options<PostCallWithOptionalParamData>) => { return (options?.client ?? client).post<void>({ 91 + export const postCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<PostCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 92 92 ...options, 93 93 url: '/api/v{api-version}/parameters/' 94 94 }); }; 95 95 96 - export const postApiVbyApiVersionRequestBody = (options?: Options<PostApiVbyApiVersionRequestBodyData>) => { return (options?.client ?? client).post<void>({ 96 + export const postApiVbyApiVersionRequestBody = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionRequestBodyData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 97 97 ...options, 98 98 url: '/api/v{api-version}/requestBody/' 99 99 }); }; 100 100 101 - export const postApiVbyApiVersionFormData = (options?: Options<PostApiVbyApiVersionFormDataData>) => { return (options?.client ?? client).post<void>({ 101 + export const postApiVbyApiVersionFormData = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionFormDataData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 102 102 ...options, 103 103 ...formDataBodySerializer, 104 104 headers: { ··· 107 107 url: '/api/v{api-version}/formData/' 108 108 }); }; 109 109 110 - export const callWithDefaultParameters = (options?: Options<CallWithDefaultParametersData>) => { return (options?.client ?? client).get<void>({ 110 + export const callWithDefaultParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultParametersData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 111 111 ...options, 112 112 url: '/api/v{api-version}/defaults' 113 113 }); }; 114 114 115 - export const callWithDefaultOptionalParameters = (options?: Options<CallWithDefaultOptionalParametersData>) => { return (options?.client ?? client).post<void>({ 115 + export const callWithDefaultOptionalParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultOptionalParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 116 116 ...options, 117 117 url: '/api/v{api-version}/defaults' 118 118 }); }; 119 119 120 - export const callToTestOrderOfParams = (options: Options<CallToTestOrderOfParamsData>) => { return (options?.client ?? client).put<void>({ 120 + export const callToTestOrderOfParams = <ThrowOnError extends boolean = false>(options: Options<CallToTestOrderOfParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 121 121 ...options, 122 122 url: '/api/v{api-version}/defaults' 123 123 }); }; 124 124 125 - export const duplicateName = (options?: Options) => { return (options?.client ?? client).get<void>({ 125 + export const duplicateName = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 126 126 ...options, 127 127 url: '/api/v{api-version}/duplicate' 128 128 }); }; 129 129 130 - export const duplicateName1 = (options?: Options) => { return (options?.client ?? client).post<void>({ 130 + export const duplicateName1 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 131 131 ...options, 132 132 url: '/api/v{api-version}/duplicate' 133 133 }); }; 134 134 135 - export const duplicateName2 = (options?: Options) => { return (options?.client ?? client).put<void>({ 135 + export const duplicateName2 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 136 136 ...options, 137 137 url: '/api/v{api-version}/duplicate' 138 138 }); }; 139 139 140 - export const duplicateName3 = (options?: Options) => { return (options?.client ?? client).delete<void>({ 140 + export const duplicateName3 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 141 141 ...options, 142 142 url: '/api/v{api-version}/duplicate' 143 143 }); }; 144 144 145 - export const callWithNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 145 + export const callWithNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 146 146 ...options, 147 147 url: '/api/v{api-version}/no-content' 148 148 }); }; 149 149 150 - export const callWithResponseAndNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 150 + export const callWithResponseAndNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 151 151 ...options, 152 152 url: '/api/v{api-version}/multiple-tags/response-and-no-content' 153 153 }); }; 154 154 155 - export const dummyA = (options?: Options) => { return (options?.client ?? client).get<DummyAResponse, DummyAError>({ 155 + export const dummyA = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyAResponse, DummyAError>({ 156 156 ...options, 157 157 url: '/api/v{api-version}/multiple-tags/a' 158 158 }); }; 159 159 160 - export const dummyB = (options?: Options) => { return (options?.client ?? client).get<DummyBResponse, DummyBError>({ 160 + export const dummyB = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyBResponse, DummyBError>({ 161 161 ...options, 162 162 url: '/api/v{api-version}/multiple-tags/b' 163 163 }); }; 164 164 165 - export const callWithResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseResponse, CallWithResponseError>({ 165 + export const callWithResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseResponse, CallWithResponseError>({ 166 166 ...options, 167 167 url: '/api/v{api-version}/response' 168 168 }); }; 169 169 170 - export const callWithDuplicateResponses = (options?: Options) => { return (options?.client ?? client).post<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 170 + export const callWithDuplicateResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 171 171 ...options, 172 172 url: '/api/v{api-version}/response' 173 173 }); }; 174 174 175 - export const callWithResponses = (options?: Options) => { return (options?.client ?? client).put<CallWithResponsesResponse, CallWithResponsesError>({ 175 + export const callWithResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, CallWithResponsesResponse, CallWithResponsesError>({ 176 176 ...options, 177 177 url: '/api/v{api-version}/response' 178 178 }); }; 179 179 180 - export const collectionFormat = (options: Options<CollectionFormatData>) => { return (options?.client ?? client).get<void>({ 180 + export const collectionFormat = <ThrowOnError extends boolean = false>(options: Options<CollectionFormatData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 181 181 ...options, 182 182 url: '/api/v{api-version}/collectionFormat' 183 183 }); }; 184 184 185 - export const types = (options: Options<TypesData>) => { return (options?.client ?? client).get<TypesResponse, TypesError>({ 185 + export const types = <ThrowOnError extends boolean = false>(options: Options<TypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, TypesResponse, TypesError>({ 186 186 ...options, 187 187 url: '/api/v{api-version}/types' 188 188 }); }; 189 189 190 - export const uploadFile = (options: Options<UploadFileData>) => { return (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 190 + export const uploadFile = <ThrowOnError extends boolean = false>(options: Options<UploadFileData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, UploadFileResponse, UploadFileError>({ 191 191 ...options, 192 192 ...urlSearchParamsBodySerializer, 193 193 headers: { ··· 196 196 url: '/api/v{api-version}/upload' 197 197 }); }; 198 198 199 - export const fileResponse = (options: Options<FileResponseData>) => { return (options?.client ?? client).get<FileResponseResponse, FileResponseError>({ 199 + export const fileResponse = <ThrowOnError extends boolean = false>(options: Options<FileResponseData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, FileResponseResponse, FileResponseError>({ 200 200 ...options, 201 201 url: '/api/v{api-version}/file/{id}' 202 202 }); }; 203 203 204 - export const complexTypes = (options: Options<ComplexTypesData>) => { return (options?.client ?? client).get<ComplexTypesResponse, ComplexTypesError>({ 204 + export const complexTypes = <ThrowOnError extends boolean = false>(options: Options<ComplexTypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ComplexTypesResponse, ComplexTypesError>({ 205 205 ...options, 206 206 url: '/api/v{api-version}/complex' 207 207 }); }; 208 208 209 - export const multipartRequest = (options?: Options<MultipartRequestData>) => { return (options?.client ?? client).post<void>({ 209 + export const multipartRequest = <ThrowOnError extends boolean = false>(options?: Options<MultipartRequestData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 210 210 ...options, 211 211 ...formDataBodySerializer, 212 212 headers: { ··· 215 215 url: '/api/v{api-version}/multipart' 216 216 }); }; 217 217 218 - export const multipartResponse = (options?: Options) => { return (options?.client ?? client).get<MultipartResponseResponse, MultipartResponseError>({ 218 + export const multipartResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, MultipartResponseResponse, MultipartResponseError>({ 219 219 ...options, 220 220 url: '/api/v{api-version}/multipart' 221 221 }); }; 222 222 223 - export const complexParams = (options: Options<ComplexParamsData>) => { return (options?.client ?? client).put<ComplexParamsResponse, ComplexParamsError>({ 223 + export const complexParams = <ThrowOnError extends boolean = false>(options: Options<ComplexParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ComplexParamsResponse, ComplexParamsError>({ 224 224 ...options, 225 225 url: '/api/v{api-version}/complex/{id}' 226 226 }); }; 227 227 228 - export const callWithResultFromHeader = (options?: Options) => { return (options?.client ?? client).post<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 228 + export const callWithResultFromHeader = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 229 229 ...options, 230 230 url: '/api/v{api-version}/header' 231 231 }); }; 232 232 233 - export const testErrorCode = (options: Options<TestErrorCodeData>) => { return (options?.client ?? client).post<TestErrorCodeResponse, TestErrorCodeError>({ 233 + export const testErrorCode = <ThrowOnError extends boolean = false>(options: Options<TestErrorCodeData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, TestErrorCodeResponse, TestErrorCodeError>({ 234 234 ...options, 235 235 url: '/api/v{api-version}/error' 236 236 }); }; 237 237 238 - export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return (options?.client ?? client).post<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 238 + export const nonAsciiæøåÆøÅöôêÊ字符串 = <ThrowOnError extends boolean = false>(options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 239 239 ...options, 240 240 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串' 241 241 }); }; ··· 243 243 /** 244 244 * Login User 245 245 */ 246 - export const putWithFormUrlEncoded = (options: Options<PutWithFormUrlEncodedData>) => { return (options?.client ?? client).put<void>({ 246 + export const putWithFormUrlEncoded = <ThrowOnError extends boolean = false>(options: Options<PutWithFormUrlEncodedData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 247 247 ...options, 248 248 ...urlSearchParamsBodySerializer, 249 249 headers: {
+52 -26
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-axios_bundle_transform/core/types.ts.snap
··· 11 11 12 12 type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>; 13 13 14 - export interface Config extends Omit<CreateAxiosDefaults, 'headers'> { 14 + export interface Config<ThrowOnError extends boolean = false> 15 + extends Omit<CreateAxiosDefaults, 'headers'> { 15 16 /** 16 17 * Axios implementation. You can use this option to provide a custom 17 18 * Axios instance. ··· 72 73 * Throw an error instead of returning it in the response? 73 74 * @default false 74 75 */ 75 - throwOnError?: boolean; 76 + throwOnError?: ThrowOnError; 76 77 } 77 78 78 - interface RequestOptionsBase extends Config { 79 + interface RequestOptionsBase<ThrowOnError extends boolean> 80 + extends Config<ThrowOnError> { 79 81 path?: Record<string, unknown>; 80 82 query?: Record<string, unknown>; 81 83 url: string; 82 84 } 83 85 84 - export type RequestResult<Data = unknown, Error = unknown> = Promise< 85 - | (AxiosResponse<Data> & { error: never }) 86 - | (AxiosError<Error> & { data: never; error: Error }) 87 - >; 86 + export type RequestResult< 87 + ThrowOnError extends boolean, 88 + Data = unknown, 89 + TError = unknown, 90 + > = ThrowOnError extends true 91 + ? Promise<AxiosResponse<Data>> 92 + : Promise< 93 + | (AxiosResponse<Data> & { error: undefined }) 94 + | (AxiosError<TError> & { data: undefined; error: TError }) 95 + >; 88 96 89 - type MethodFn = <Data = unknown, Error = unknown>( 90 - options: Omit<RequestOptionsBase, 'method'>, 91 - ) => RequestResult<Data, Error>; 97 + type MethodFn = < 98 + ThrowOnError extends boolean, 99 + Data = unknown, 100 + TError = unknown, 101 + >( 102 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'>, 103 + ) => RequestResult<ThrowOnError, Data, TError>; 92 104 93 - type RequestFn = <Data = unknown, Error = unknown>( 94 - options: Omit<RequestOptionsBase, 'method'> & 95 - Pick<Required<RequestOptionsBase>, 'method'>, 96 - ) => RequestResult<Data, Error>; 105 + type RequestFn = < 106 + ThrowOnError extends boolean, 107 + Data = unknown, 108 + TError = unknown, 109 + >( 110 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'> & 111 + Pick<Required<RequestOptionsBase<ThrowOnError>>, 'method'>, 112 + ) => RequestResult<ThrowOnError, Data, TError>; 97 113 98 114 export interface Client { 99 115 delete: MethodFn; 100 116 get: MethodFn; 101 - getConfig: () => Config; 117 + getConfig: () => Config<false>; 102 118 head: MethodFn; 103 119 instance: AxiosInstance; 104 120 options: MethodFn; ··· 106 122 post: MethodFn; 107 123 put: MethodFn; 108 124 request: RequestFn; 109 - setConfig: (config: Config) => Config; 125 + setConfig: (config: Config<false>) => Config<false>; 110 126 } 111 127 112 - export type RequestOptions = RequestOptionsBase & 113 - Config & { 128 + export type RequestOptions = RequestOptionsBase<false> & 129 + Config<false> & { 114 130 headers: AxiosRequestConfig['headers']; 115 131 }; 116 132 117 - type OptionsBase = Omit<RequestOptionsBase, 'url'> & { 133 + type OptionsBase<ThrowOnError extends boolean> = Omit< 134 + RequestOptionsBase<ThrowOnError>, 135 + 'url' 136 + > & { 118 137 /** 119 138 * You can provide a client instance returned by `createClient()` instead of 120 139 * individual options. This might be also useful if you want to implement a ··· 123 142 client?: Client; 124 143 }; 125 144 126 - export type Options<T = unknown> = T extends { body?: any } 145 + export type Options< 146 + T = unknown, 147 + ThrowOnError extends boolean = false, 148 + > = T extends { body?: any } 127 149 ? T extends { headers?: any } 128 - ? OmitKeys<OptionsBase, 'body' | 'headers' | 'responseTransformer'> & T 129 - : OmitKeys<OptionsBase, 'body' | 'responseTransformer'> & 150 + ? OmitKeys< 151 + OptionsBase<ThrowOnError>, 152 + 'body' | 'headers' | 'responseTransformer' 153 + > & 154 + T 155 + : OmitKeys<OptionsBase<ThrowOnError>, 'body' | 'responseTransformer'> & 130 156 T & 131 - Pick<OptionsBase, 'headers'> 157 + Pick<OptionsBase<ThrowOnError>, 'headers'> 132 158 : T extends { headers?: any } 133 - ? OmitKeys<OptionsBase, 'headers' | 'responseTransformer'> & 159 + ? OmitKeys<OptionsBase<ThrowOnError>, 'headers' | 'responseTransformer'> & 134 160 T & 135 - Pick<OptionsBase, 'body'> 136 - : OptionsBase & T; 161 + Pick<OptionsBase<ThrowOnError>, 'body'> 162 + : OptionsBase<ThrowOnError> & T;
+6 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-axios_bundle_transform/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const parentModelWithDates = (options?: Options) => { return (options?.client ?? client).post<ParentModelWithDatesResponse, ParentModelWithDatesError>({ 8 + export const parentModelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ParentModelWithDatesResponse, ParentModelWithDatesError>({ 9 9 ...options, 10 10 url: '/api/model-with-dates', 11 11 responseTransformer: ParentModelWithDatesResponseTransformer 12 12 }); }; 13 13 14 - export const modelWithDates = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesResponse, ModelWithDatesError>({ 14 + export const modelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesResponse, ModelWithDatesError>({ 15 15 ...options, 16 16 url: '/api/model-with-dates', 17 17 responseTransformer: ModelWithDatesResponseTransformer 18 18 }); }; 19 19 20 - export const modelWithDatesArray = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 20 + export const modelWithDatesArray = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 21 21 ...options, 22 22 url: '/api/model-with-dates-array', 23 23 responseTransformer: ModelWithDatesArrayResponseTransformer 24 24 }); }; 25 25 26 - export const arrayOfDates = (options?: Options) => { return (options?.client ?? client).put<ArrayOfDatesResponse, ArrayOfDatesError>({ 26 + export const arrayOfDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ArrayOfDatesResponse, ArrayOfDatesError>({ 27 27 ...options, 28 28 url: '/api/array-of-dates' 29 29 }); }; 30 30 31 - export const date = (options?: Options) => { return (options?.client ?? client).put<DateResponse, DateError>({ 31 + export const date = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, DateResponse, DateError>({ 32 32 ...options, 33 33 url: '/api/date' 34 34 }); }; 35 35 36 - export const multipleResponses = (options?: Options) => { return (options?.client ?? client).put<MultipleResponsesResponse, MultipleResponsesError>({ 36 + export const multipleResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, MultipleResponsesResponse, MultipleResponsesError>({ 37 37 ...options, 38 38 url: '/api/multiple-responses' 39 39 }); };
+6 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-axios_transform/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const parentModelWithDates = (options?: Options) => { return (options?.client ?? client).post<ParentModelWithDatesResponse, ParentModelWithDatesError>({ 8 + export const parentModelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ParentModelWithDatesResponse, ParentModelWithDatesError>({ 9 9 ...options, 10 10 url: '/api/model-with-dates', 11 11 responseTransformer: ParentModelWithDatesResponseTransformer 12 12 }); }; 13 13 14 - export const modelWithDates = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesResponse, ModelWithDatesError>({ 14 + export const modelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesResponse, ModelWithDatesError>({ 15 15 ...options, 16 16 url: '/api/model-with-dates', 17 17 responseTransformer: ModelWithDatesResponseTransformer 18 18 }); }; 19 19 20 - export const modelWithDatesArray = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 20 + export const modelWithDatesArray = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 21 21 ...options, 22 22 url: '/api/model-with-dates-array', 23 23 responseTransformer: ModelWithDatesArrayResponseTransformer 24 24 }); }; 25 25 26 - export const arrayOfDates = (options?: Options) => { return (options?.client ?? client).put<ArrayOfDatesResponse, ArrayOfDatesError>({ 26 + export const arrayOfDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ArrayOfDatesResponse, ArrayOfDatesError>({ 27 27 ...options, 28 28 url: '/api/array-of-dates' 29 29 }); }; 30 30 31 - export const date = (options?: Options) => { return (options?.client ?? client).put<DateResponse, DateError>({ 31 + export const date = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, DateResponse, DateError>({ 32 32 ...options, 33 33 url: '/api/date' 34 34 }); }; 35 35 36 - export const multipleResponses = (options?: Options) => { return (options?.client ?? client).put<MultipleResponsesResponse, MultipleResponsesError>({ 36 + export const multipleResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, MultipleResponsesResponse, MultipleResponsesError>({ 37 37 ...options, 38 38 url: '/api/multiple-responses' 39 39 }); };
+45 -45
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const export_ = (options?: Options) => { return (options?.client ?? client).get<void>({ 8 + export const export_ = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 9 9 ...options, 10 10 url: '/api/v{api-version}/no-tag' 11 11 }); }; 12 12 13 - export const import_ = (options: Options<ImportData>) => { return (options?.client ?? client).post<ImportResponse, ImportError>({ 13 + export const import_ = <ThrowOnError extends boolean = false>(options: Options<ImportData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ImportResponse, ImportError>({ 14 14 ...options, 15 15 url: '/api/v{api-version}/no-tag' 16 16 }); }; 17 17 18 - export const apiVVersionOdataControllerCount = (options?: Options) => { return (options?.client ?? client).get<ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 18 + export const apiVVersionOdataControllerCount = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 19 19 ...options, 20 20 url: '/api/v{api-version}/simple/$count' 21 21 }); }; 22 22 23 - export const getCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).get<void>({ 23 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 24 24 ...options, 25 25 url: '/api/v{api-version}/simple' 26 26 }); }; 27 27 28 - export const putCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).put<void>({ 28 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 29 29 ...options, 30 30 url: '/api/v{api-version}/simple' 31 31 }); }; 32 32 33 - export const postCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).post<void>({ 33 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 34 34 ...options, 35 35 url: '/api/v{api-version}/simple' 36 36 }); }; 37 37 38 - export const deleteCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).delete<void>({ 38 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 39 39 ...options, 40 40 url: '/api/v{api-version}/simple' 41 41 }); }; 42 42 43 - export const optionsCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).options<void>({ 43 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).options<ThrowOnError, void>({ 44 44 ...options, 45 45 url: '/api/v{api-version}/simple' 46 46 }); }; 47 47 48 - export const headCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).head<void>({ 48 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).head<ThrowOnError, void>({ 49 49 ...options, 50 50 url: '/api/v{api-version}/simple' 51 51 }); }; 52 52 53 - export const patchCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).patch<void>({ 53 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).patch<ThrowOnError, void>({ 54 54 ...options, 55 55 url: '/api/v{api-version}/simple' 56 56 }); }; 57 57 58 - export const deleteFoo = (options: Options<DeleteFooData3>) => { return (options?.client ?? client).delete<void>({ 58 + export const deleteFoo = <ThrowOnError extends boolean = false>(options: Options<DeleteFooData3, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 59 59 ...options, 60 60 url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}' 61 61 }); }; 62 62 63 - export const callWithDescriptions = (options?: Options<CallWithDescriptionsData>) => { return (options?.client ?? client).post<void>({ 63 + export const callWithDescriptions = <ThrowOnError extends boolean = false>(options?: Options<CallWithDescriptionsData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 64 64 ...options, 65 65 url: '/api/v{api-version}/descriptions/' 66 66 }); }; ··· 68 68 /** 69 69 * @deprecated 70 70 */ 71 - export const deprecatedCall = (options: Options<DeprecatedCallData>) => { return (options?.client ?? client).post<void>({ 71 + export const deprecatedCall = <ThrowOnError extends boolean = false>(options: Options<DeprecatedCallData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 72 72 ...options, 73 73 url: '/api/v{api-version}/parameters/deprecated' 74 74 }); }; 75 75 76 - export const callWithParameters = (options: Options<CallWithParametersData>) => { return (options?.client ?? client).post<void>({ 76 + export const callWithParameters = <ThrowOnError extends boolean = false>(options: Options<CallWithParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 77 77 ...options, 78 78 url: '/api/v{api-version}/parameters/{parameterPath}' 79 79 }); }; 80 80 81 - export const callWithWeirdParameterNames = (options: Options<CallWithWeirdParameterNamesData>) => { return (options?.client ?? client).post<void>({ 81 + export const callWithWeirdParameterNames = <ThrowOnError extends boolean = false>(options: Options<CallWithWeirdParameterNamesData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 82 82 ...options, 83 83 url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}' 84 84 }); }; 85 85 86 - export const getCallWithOptionalParam = (options: Options<GetCallWithOptionalParamData>) => { return (options?.client ?? client).get<void>({ 86 + export const getCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<GetCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 87 87 ...options, 88 88 url: '/api/v{api-version}/parameters/' 89 89 }); }; 90 90 91 - export const postCallWithOptionalParam = (options: Options<PostCallWithOptionalParamData>) => { return (options?.client ?? client).post<void>({ 91 + export const postCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<PostCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 92 92 ...options, 93 93 url: '/api/v{api-version}/parameters/' 94 94 }); }; 95 95 96 - export const postApiVbyApiVersionRequestBody = (options?: Options<PostApiVbyApiVersionRequestBodyData>) => { return (options?.client ?? client).post<void>({ 96 + export const postApiVbyApiVersionRequestBody = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionRequestBodyData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 97 97 ...options, 98 98 url: '/api/v{api-version}/requestBody/' 99 99 }); }; 100 100 101 - export const postApiVbyApiVersionFormData = (options?: Options<PostApiVbyApiVersionFormDataData>) => { return (options?.client ?? client).post<void>({ 101 + export const postApiVbyApiVersionFormData = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionFormDataData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 102 102 ...options, 103 103 ...formDataBodySerializer, 104 104 headers: { ··· 107 107 url: '/api/v{api-version}/formData/' 108 108 }); }; 109 109 110 - export const callWithDefaultParameters = (options?: Options<CallWithDefaultParametersData>) => { return (options?.client ?? client).get<void>({ 110 + export const callWithDefaultParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultParametersData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 111 111 ...options, 112 112 url: '/api/v{api-version}/defaults' 113 113 }); }; 114 114 115 - export const callWithDefaultOptionalParameters = (options?: Options<CallWithDefaultOptionalParametersData>) => { return (options?.client ?? client).post<void>({ 115 + export const callWithDefaultOptionalParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultOptionalParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 116 116 ...options, 117 117 url: '/api/v{api-version}/defaults' 118 118 }); }; 119 119 120 - export const callToTestOrderOfParams = (options: Options<CallToTestOrderOfParamsData>) => { return (options?.client ?? client).put<void>({ 120 + export const callToTestOrderOfParams = <ThrowOnError extends boolean = false>(options: Options<CallToTestOrderOfParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 121 121 ...options, 122 122 url: '/api/v{api-version}/defaults' 123 123 }); }; 124 124 125 - export const duplicateName = (options?: Options) => { return (options?.client ?? client).get<void>({ 125 + export const duplicateName = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 126 126 ...options, 127 127 url: '/api/v{api-version}/duplicate' 128 128 }); }; 129 129 130 - export const duplicateName1 = (options?: Options) => { return (options?.client ?? client).post<void>({ 130 + export const duplicateName1 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 131 131 ...options, 132 132 url: '/api/v{api-version}/duplicate' 133 133 }); }; 134 134 135 - export const duplicateName2 = (options?: Options) => { return (options?.client ?? client).put<void>({ 135 + export const duplicateName2 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 136 136 ...options, 137 137 url: '/api/v{api-version}/duplicate' 138 138 }); }; 139 139 140 - export const duplicateName3 = (options?: Options) => { return (options?.client ?? client).delete<void>({ 140 + export const duplicateName3 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 141 141 ...options, 142 142 url: '/api/v{api-version}/duplicate' 143 143 }); }; 144 144 145 - export const callWithNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 145 + export const callWithNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 146 146 ...options, 147 147 url: '/api/v{api-version}/no-content' 148 148 }); }; 149 149 150 - export const callWithResponseAndNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 150 + export const callWithResponseAndNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 151 151 ...options, 152 152 url: '/api/v{api-version}/multiple-tags/response-and-no-content' 153 153 }); }; 154 154 155 - export const dummyA = (options?: Options) => { return (options?.client ?? client).get<DummyAResponse, DummyAError>({ 155 + export const dummyA = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyAResponse, DummyAError>({ 156 156 ...options, 157 157 url: '/api/v{api-version}/multiple-tags/a' 158 158 }); }; 159 159 160 - export const dummyB = (options?: Options) => { return (options?.client ?? client).get<DummyBResponse, DummyBError>({ 160 + export const dummyB = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyBResponse, DummyBError>({ 161 161 ...options, 162 162 url: '/api/v{api-version}/multiple-tags/b' 163 163 }); }; 164 164 165 - export const callWithResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseResponse, CallWithResponseError>({ 165 + export const callWithResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseResponse, CallWithResponseError>({ 166 166 ...options, 167 167 url: '/api/v{api-version}/response' 168 168 }); }; 169 169 170 - export const callWithDuplicateResponses = (options?: Options) => { return (options?.client ?? client).post<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 170 + export const callWithDuplicateResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 171 171 ...options, 172 172 url: '/api/v{api-version}/response' 173 173 }); }; 174 174 175 - export const callWithResponses = (options?: Options) => { return (options?.client ?? client).put<CallWithResponsesResponse, CallWithResponsesError>({ 175 + export const callWithResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, CallWithResponsesResponse, CallWithResponsesError>({ 176 176 ...options, 177 177 url: '/api/v{api-version}/response' 178 178 }); }; 179 179 180 - export const collectionFormat = (options: Options<CollectionFormatData>) => { return (options?.client ?? client).get<void>({ 180 + export const collectionFormat = <ThrowOnError extends boolean = false>(options: Options<CollectionFormatData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 181 181 ...options, 182 182 url: '/api/v{api-version}/collectionFormat' 183 183 }); }; 184 184 185 - export const types = (options: Options<TypesData>) => { return (options?.client ?? client).get<TypesResponse, TypesError>({ 185 + export const types = <ThrowOnError extends boolean = false>(options: Options<TypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, TypesResponse, TypesError>({ 186 186 ...options, 187 187 url: '/api/v{api-version}/types' 188 188 }); }; 189 189 190 - export const uploadFile = (options: Options<UploadFileData>) => { return (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 190 + export const uploadFile = <ThrowOnError extends boolean = false>(options: Options<UploadFileData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, UploadFileResponse, UploadFileError>({ 191 191 ...options, 192 192 ...urlSearchParamsBodySerializer, 193 193 headers: { ··· 196 196 url: '/api/v{api-version}/upload' 197 197 }); }; 198 198 199 - export const fileResponse = (options: Options<FileResponseData>) => { return (options?.client ?? client).get<FileResponseResponse, FileResponseError>({ 199 + export const fileResponse = <ThrowOnError extends boolean = false>(options: Options<FileResponseData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, FileResponseResponse, FileResponseError>({ 200 200 ...options, 201 201 url: '/api/v{api-version}/file/{id}' 202 202 }); }; 203 203 204 - export const complexTypes = (options: Options<ComplexTypesData>) => { return (options?.client ?? client).get<ComplexTypesResponse, ComplexTypesError>({ 204 + export const complexTypes = <ThrowOnError extends boolean = false>(options: Options<ComplexTypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ComplexTypesResponse, ComplexTypesError>({ 205 205 ...options, 206 206 url: '/api/v{api-version}/complex' 207 207 }); }; 208 208 209 - export const multipartRequest = (options?: Options<MultipartRequestData>) => { return (options?.client ?? client).post<void>({ 209 + export const multipartRequest = <ThrowOnError extends boolean = false>(options?: Options<MultipartRequestData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 210 210 ...options, 211 211 ...formDataBodySerializer, 212 212 headers: { ··· 215 215 url: '/api/v{api-version}/multipart' 216 216 }); }; 217 217 218 - export const multipartResponse = (options?: Options) => { return (options?.client ?? client).get<MultipartResponseResponse, MultipartResponseError>({ 218 + export const multipartResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, MultipartResponseResponse, MultipartResponseError>({ 219 219 ...options, 220 220 url: '/api/v{api-version}/multipart' 221 221 }); }; 222 222 223 - export const complexParams = (options: Options<ComplexParamsData>) => { return (options?.client ?? client).put<ComplexParamsResponse, ComplexParamsError>({ 223 + export const complexParams = <ThrowOnError extends boolean = false>(options: Options<ComplexParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ComplexParamsResponse, ComplexParamsError>({ 224 224 ...options, 225 225 url: '/api/v{api-version}/complex/{id}' 226 226 }); }; 227 227 228 - export const callWithResultFromHeader = (options?: Options) => { return (options?.client ?? client).post<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 228 + export const callWithResultFromHeader = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 229 229 ...options, 230 230 url: '/api/v{api-version}/header' 231 231 }); }; 232 232 233 - export const testErrorCode = (options: Options<TestErrorCodeData>) => { return (options?.client ?? client).post<TestErrorCodeResponse, TestErrorCodeError>({ 233 + export const testErrorCode = <ThrowOnError extends boolean = false>(options: Options<TestErrorCodeData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, TestErrorCodeResponse, TestErrorCodeError>({ 234 234 ...options, 235 235 url: '/api/v{api-version}/error' 236 236 }); }; 237 237 238 - export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return (options?.client ?? client).post<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 238 + export const nonAsciiæøåÆøÅöôêÊ字符串 = <ThrowOnError extends boolean = false>(options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 239 239 ...options, 240 240 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串' 241 241 }); }; ··· 243 243 /** 244 244 * Login User 245 245 */ 246 - export const putWithFormUrlEncoded = (options: Options<PutWithFormUrlEncodedData>) => { return (options?.client ?? client).put<void>({ 246 + export const putWithFormUrlEncoded = <ThrowOnError extends boolean = false>(options: Options<PutWithFormUrlEncodedData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 247 247 ...options, 248 248 ...urlSearchParamsBodySerializer, 249 249 headers: {
+1
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_bundle/core/index.ts.snap
··· 28 28 29 29 // @ts-ignore 30 30 const request: Client['request'] = async (options) => { 31 + // @ts-ignore 31 32 const opts: RequestOptions = { 32 33 ..._config, 33 34 ...options,
+60 -28
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_bundle/core/types.ts.snap
··· 7 7 8 8 type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>; 9 9 10 - export interface Config 10 + export interface Config<ThrowOnError extends boolean = false> 11 11 extends Omit<RequestInit, 'body' | 'headers' | 'method'> { 12 12 /** 13 13 * Base URL for all requests made by this client. ··· 95 95 * Throw an error instead of returning it in the response? 96 96 * @default false 97 97 */ 98 - throwOnError?: boolean; 98 + throwOnError?: ThrowOnError; 99 99 } 100 100 101 - interface RequestOptionsBase extends Config { 101 + interface RequestOptionsBase<ThrowOnError extends boolean> 102 + extends Config<ThrowOnError> { 102 103 path?: Record<string, unknown>; 103 104 query?: Record<string, unknown>; 104 105 url: string; 105 106 } 106 107 107 - export type RequestResult<Data = unknown, Error = unknown> = Promise< 108 - ({ data: Data; error: undefined } | { data: undefined; error: Error }) & { 109 - request: Request; 110 - response: Response; 111 - } 112 - >; 108 + export type RequestResult< 109 + ThrowOnError extends boolean, 110 + Data = unknown, 111 + TError = unknown, 112 + > = ThrowOnError extends true 113 + ? Promise<{ 114 + data: Data; 115 + request: Request; 116 + response: Response; 117 + }> 118 + : Promise< 119 + ( 120 + | { data: Data; error: undefined } 121 + | { data: undefined; error: TError } 122 + ) & { 123 + request: Request; 124 + response: Response; 125 + } 126 + >; 113 127 114 - type MethodFn = <Data = unknown, Error = unknown>( 115 - options: Omit<RequestOptionsBase, 'method'>, 116 - ) => RequestResult<Data, Error>; 128 + type MethodFn = < 129 + ThrowOnError extends boolean, 130 + Data = unknown, 131 + TError = unknown, 132 + >( 133 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'>, 134 + ) => RequestResult<ThrowOnError, Data, TError>; 117 135 118 - type RequestFn = <Data = unknown, Error = unknown>( 119 - options: Omit<RequestOptionsBase, 'method'> & 120 - Pick<Required<RequestOptionsBase>, 'method'>, 121 - ) => RequestResult<Data, Error>; 136 + type RequestFn = < 137 + ThrowOnError extends boolean, 138 + Data = unknown, 139 + TError = unknown, 140 + >( 141 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'> & 142 + Pick<Required<RequestOptionsBase<ThrowOnError>>, 'method'>, 143 + ) => RequestResult<ThrowOnError, Data, TError>; 122 144 123 145 export interface Client< 124 146 Req = Request, ··· 128 150 connect: MethodFn; 129 151 delete: MethodFn; 130 152 get: MethodFn; 131 - getConfig: () => Config; 153 + getConfig: () => Config<false>; 132 154 head: MethodFn; 133 155 interceptors: Middleware<Req, Res, Options>; 134 156 options: MethodFn; ··· 136 158 post: MethodFn; 137 159 put: MethodFn; 138 160 request: RequestFn; 139 - setConfig: (config: Config) => Config; 161 + setConfig: (config: Config<false>) => Config<false>; 140 162 trace: MethodFn; 141 163 } 142 164 143 - export type RequestOptions = RequestOptionsBase & 144 - Config & { 165 + export type RequestOptions = RequestOptionsBase<false> & 166 + Config<false> & { 145 167 headers: Headers; 146 168 }; 147 169 148 - type OptionsBase = Omit<RequestOptionsBase, 'url'> & { 170 + type OptionsBase<ThrowOnError extends boolean> = Omit< 171 + RequestOptionsBase<ThrowOnError>, 172 + 'url' 173 + > & { 149 174 /** 150 175 * You can provide a client instance returned by `createClient()` instead of 151 176 * individual options. This might be also useful if you want to implement a ··· 154 179 client?: Client; 155 180 }; 156 181 157 - export type Options<T = unknown> = T extends { body?: any } 182 + export type Options< 183 + T = unknown, 184 + ThrowOnError extends boolean = false, 185 + > = T extends { body?: any } 158 186 ? T extends { headers?: any } 159 - ? OmitKeys<OptionsBase, 'body' | 'headers' | 'responseTransformer'> & T 160 - : OmitKeys<OptionsBase, 'body' | 'responseTransformer'> & 187 + ? OmitKeys< 188 + OptionsBase<ThrowOnError>, 189 + 'body' | 'headers' | 'responseTransformer' 190 + > & 191 + T 192 + : OmitKeys<OptionsBase<ThrowOnError>, 'body' | 'responseTransformer'> & 161 193 T & 162 - Pick<OptionsBase, 'headers'> 194 + Pick<OptionsBase<ThrowOnError>, 'headers'> 163 195 : T extends { headers?: any } 164 - ? OmitKeys<OptionsBase, 'headers' | 'responseTransformer'> & 196 + ? OmitKeys<OptionsBase<ThrowOnError>, 'headers' | 'responseTransformer'> & 165 197 T & 166 - Pick<OptionsBase, 'body'> 167 - : OptionsBase & T; 198 + Pick<OptionsBase<ThrowOnError>, 'body'> 199 + : OptionsBase<ThrowOnError> & T;
+45 -45
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_bundle/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const export_ = (options?: Options) => { return (options?.client ?? client).get<void>({ 8 + export const export_ = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 9 9 ...options, 10 10 url: '/api/v{api-version}/no-tag' 11 11 }); }; 12 12 13 - export const import_ = (options: Options<ImportData>) => { return (options?.client ?? client).post<ImportResponse, ImportError>({ 13 + export const import_ = <ThrowOnError extends boolean = false>(options: Options<ImportData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ImportResponse, ImportError>({ 14 14 ...options, 15 15 url: '/api/v{api-version}/no-tag' 16 16 }); }; 17 17 18 - export const apiVVersionOdataControllerCount = (options?: Options) => { return (options?.client ?? client).get<ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 18 + export const apiVVersionOdataControllerCount = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 19 19 ...options, 20 20 url: '/api/v{api-version}/simple/$count' 21 21 }); }; 22 22 23 - export const getCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).get<void>({ 23 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 24 24 ...options, 25 25 url: '/api/v{api-version}/simple' 26 26 }); }; 27 27 28 - export const putCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).put<void>({ 28 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 29 29 ...options, 30 30 url: '/api/v{api-version}/simple' 31 31 }); }; 32 32 33 - export const postCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).post<void>({ 33 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 34 34 ...options, 35 35 url: '/api/v{api-version}/simple' 36 36 }); }; 37 37 38 - export const deleteCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).delete<void>({ 38 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 39 39 ...options, 40 40 url: '/api/v{api-version}/simple' 41 41 }); }; 42 42 43 - export const optionsCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).options<void>({ 43 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).options<ThrowOnError, void>({ 44 44 ...options, 45 45 url: '/api/v{api-version}/simple' 46 46 }); }; 47 47 48 - export const headCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).head<void>({ 48 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).head<ThrowOnError, void>({ 49 49 ...options, 50 50 url: '/api/v{api-version}/simple' 51 51 }); }; 52 52 53 - export const patchCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).patch<void>({ 53 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).patch<ThrowOnError, void>({ 54 54 ...options, 55 55 url: '/api/v{api-version}/simple' 56 56 }); }; 57 57 58 - export const deleteFoo = (options: Options<DeleteFooData3>) => { return (options?.client ?? client).delete<void>({ 58 + export const deleteFoo = <ThrowOnError extends boolean = false>(options: Options<DeleteFooData3, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 59 59 ...options, 60 60 url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}' 61 61 }); }; 62 62 63 - export const callWithDescriptions = (options?: Options<CallWithDescriptionsData>) => { return (options?.client ?? client).post<void>({ 63 + export const callWithDescriptions = <ThrowOnError extends boolean = false>(options?: Options<CallWithDescriptionsData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 64 64 ...options, 65 65 url: '/api/v{api-version}/descriptions/' 66 66 }); }; ··· 68 68 /** 69 69 * @deprecated 70 70 */ 71 - export const deprecatedCall = (options: Options<DeprecatedCallData>) => { return (options?.client ?? client).post<void>({ 71 + export const deprecatedCall = <ThrowOnError extends boolean = false>(options: Options<DeprecatedCallData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 72 72 ...options, 73 73 url: '/api/v{api-version}/parameters/deprecated' 74 74 }); }; 75 75 76 - export const callWithParameters = (options: Options<CallWithParametersData>) => { return (options?.client ?? client).post<void>({ 76 + export const callWithParameters = <ThrowOnError extends boolean = false>(options: Options<CallWithParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 77 77 ...options, 78 78 url: '/api/v{api-version}/parameters/{parameterPath}' 79 79 }); }; 80 80 81 - export const callWithWeirdParameterNames = (options: Options<CallWithWeirdParameterNamesData>) => { return (options?.client ?? client).post<void>({ 81 + export const callWithWeirdParameterNames = <ThrowOnError extends boolean = false>(options: Options<CallWithWeirdParameterNamesData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 82 82 ...options, 83 83 url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}' 84 84 }); }; 85 85 86 - export const getCallWithOptionalParam = (options: Options<GetCallWithOptionalParamData>) => { return (options?.client ?? client).get<void>({ 86 + export const getCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<GetCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 87 87 ...options, 88 88 url: '/api/v{api-version}/parameters/' 89 89 }); }; 90 90 91 - export const postCallWithOptionalParam = (options: Options<PostCallWithOptionalParamData>) => { return (options?.client ?? client).post<void>({ 91 + export const postCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<PostCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 92 92 ...options, 93 93 url: '/api/v{api-version}/parameters/' 94 94 }); }; 95 95 96 - export const postApiVbyApiVersionRequestBody = (options?: Options<PostApiVbyApiVersionRequestBodyData>) => { return (options?.client ?? client).post<void>({ 96 + export const postApiVbyApiVersionRequestBody = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionRequestBodyData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 97 97 ...options, 98 98 url: '/api/v{api-version}/requestBody/' 99 99 }); }; 100 100 101 - export const postApiVbyApiVersionFormData = (options?: Options<PostApiVbyApiVersionFormDataData>) => { return (options?.client ?? client).post<void>({ 101 + export const postApiVbyApiVersionFormData = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionFormDataData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 102 102 ...options, 103 103 ...formDataBodySerializer, 104 104 headers: { ··· 107 107 url: '/api/v{api-version}/formData/' 108 108 }); }; 109 109 110 - export const callWithDefaultParameters = (options?: Options<CallWithDefaultParametersData>) => { return (options?.client ?? client).get<void>({ 110 + export const callWithDefaultParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultParametersData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 111 111 ...options, 112 112 url: '/api/v{api-version}/defaults' 113 113 }); }; 114 114 115 - export const callWithDefaultOptionalParameters = (options?: Options<CallWithDefaultOptionalParametersData>) => { return (options?.client ?? client).post<void>({ 115 + export const callWithDefaultOptionalParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultOptionalParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 116 116 ...options, 117 117 url: '/api/v{api-version}/defaults' 118 118 }); }; 119 119 120 - export const callToTestOrderOfParams = (options: Options<CallToTestOrderOfParamsData>) => { return (options?.client ?? client).put<void>({ 120 + export const callToTestOrderOfParams = <ThrowOnError extends boolean = false>(options: Options<CallToTestOrderOfParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 121 121 ...options, 122 122 url: '/api/v{api-version}/defaults' 123 123 }); }; 124 124 125 - export const duplicateName = (options?: Options) => { return (options?.client ?? client).get<void>({ 125 + export const duplicateName = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 126 126 ...options, 127 127 url: '/api/v{api-version}/duplicate' 128 128 }); }; 129 129 130 - export const duplicateName1 = (options?: Options) => { return (options?.client ?? client).post<void>({ 130 + export const duplicateName1 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 131 131 ...options, 132 132 url: '/api/v{api-version}/duplicate' 133 133 }); }; 134 134 135 - export const duplicateName2 = (options?: Options) => { return (options?.client ?? client).put<void>({ 135 + export const duplicateName2 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 136 136 ...options, 137 137 url: '/api/v{api-version}/duplicate' 138 138 }); }; 139 139 140 - export const duplicateName3 = (options?: Options) => { return (options?.client ?? client).delete<void>({ 140 + export const duplicateName3 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 141 141 ...options, 142 142 url: '/api/v{api-version}/duplicate' 143 143 }); }; 144 144 145 - export const callWithNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 145 + export const callWithNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 146 146 ...options, 147 147 url: '/api/v{api-version}/no-content' 148 148 }); }; 149 149 150 - export const callWithResponseAndNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 150 + export const callWithResponseAndNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 151 151 ...options, 152 152 url: '/api/v{api-version}/multiple-tags/response-and-no-content' 153 153 }); }; 154 154 155 - export const dummyA = (options?: Options) => { return (options?.client ?? client).get<DummyAResponse, DummyAError>({ 155 + export const dummyA = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyAResponse, DummyAError>({ 156 156 ...options, 157 157 url: '/api/v{api-version}/multiple-tags/a' 158 158 }); }; 159 159 160 - export const dummyB = (options?: Options) => { return (options?.client ?? client).get<DummyBResponse, DummyBError>({ 160 + export const dummyB = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyBResponse, DummyBError>({ 161 161 ...options, 162 162 url: '/api/v{api-version}/multiple-tags/b' 163 163 }); }; 164 164 165 - export const callWithResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseResponse, CallWithResponseError>({ 165 + export const callWithResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseResponse, CallWithResponseError>({ 166 166 ...options, 167 167 url: '/api/v{api-version}/response' 168 168 }); }; 169 169 170 - export const callWithDuplicateResponses = (options?: Options) => { return (options?.client ?? client).post<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 170 + export const callWithDuplicateResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 171 171 ...options, 172 172 url: '/api/v{api-version}/response' 173 173 }); }; 174 174 175 - export const callWithResponses = (options?: Options) => { return (options?.client ?? client).put<CallWithResponsesResponse, CallWithResponsesError>({ 175 + export const callWithResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, CallWithResponsesResponse, CallWithResponsesError>({ 176 176 ...options, 177 177 url: '/api/v{api-version}/response' 178 178 }); }; 179 179 180 - export const collectionFormat = (options: Options<CollectionFormatData>) => { return (options?.client ?? client).get<void>({ 180 + export const collectionFormat = <ThrowOnError extends boolean = false>(options: Options<CollectionFormatData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 181 181 ...options, 182 182 url: '/api/v{api-version}/collectionFormat' 183 183 }); }; 184 184 185 - export const types = (options: Options<TypesData>) => { return (options?.client ?? client).get<TypesResponse, TypesError>({ 185 + export const types = <ThrowOnError extends boolean = false>(options: Options<TypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, TypesResponse, TypesError>({ 186 186 ...options, 187 187 url: '/api/v{api-version}/types' 188 188 }); }; 189 189 190 - export const uploadFile = (options: Options<UploadFileData>) => { return (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 190 + export const uploadFile = <ThrowOnError extends boolean = false>(options: Options<UploadFileData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, UploadFileResponse, UploadFileError>({ 191 191 ...options, 192 192 ...urlSearchParamsBodySerializer, 193 193 headers: { ··· 196 196 url: '/api/v{api-version}/upload' 197 197 }); }; 198 198 199 - export const fileResponse = (options: Options<FileResponseData>) => { return (options?.client ?? client).get<FileResponseResponse, FileResponseError>({ 199 + export const fileResponse = <ThrowOnError extends boolean = false>(options: Options<FileResponseData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, FileResponseResponse, FileResponseError>({ 200 200 ...options, 201 201 url: '/api/v{api-version}/file/{id}' 202 202 }); }; 203 203 204 - export const complexTypes = (options: Options<ComplexTypesData>) => { return (options?.client ?? client).get<ComplexTypesResponse, ComplexTypesError>({ 204 + export const complexTypes = <ThrowOnError extends boolean = false>(options: Options<ComplexTypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ComplexTypesResponse, ComplexTypesError>({ 205 205 ...options, 206 206 url: '/api/v{api-version}/complex' 207 207 }); }; 208 208 209 - export const multipartRequest = (options?: Options<MultipartRequestData>) => { return (options?.client ?? client).post<void>({ 209 + export const multipartRequest = <ThrowOnError extends boolean = false>(options?: Options<MultipartRequestData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 210 210 ...options, 211 211 ...formDataBodySerializer, 212 212 headers: { ··· 215 215 url: '/api/v{api-version}/multipart' 216 216 }); }; 217 217 218 - export const multipartResponse = (options?: Options) => { return (options?.client ?? client).get<MultipartResponseResponse, MultipartResponseError>({ 218 + export const multipartResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, MultipartResponseResponse, MultipartResponseError>({ 219 219 ...options, 220 220 url: '/api/v{api-version}/multipart' 221 221 }); }; 222 222 223 - export const complexParams = (options: Options<ComplexParamsData>) => { return (options?.client ?? client).put<ComplexParamsResponse, ComplexParamsError>({ 223 + export const complexParams = <ThrowOnError extends boolean = false>(options: Options<ComplexParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ComplexParamsResponse, ComplexParamsError>({ 224 224 ...options, 225 225 url: '/api/v{api-version}/complex/{id}' 226 226 }); }; 227 227 228 - export const callWithResultFromHeader = (options?: Options) => { return (options?.client ?? client).post<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 228 + export const callWithResultFromHeader = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 229 229 ...options, 230 230 url: '/api/v{api-version}/header' 231 231 }); }; 232 232 233 - export const testErrorCode = (options: Options<TestErrorCodeData>) => { return (options?.client ?? client).post<TestErrorCodeResponse, TestErrorCodeError>({ 233 + export const testErrorCode = <ThrowOnError extends boolean = false>(options: Options<TestErrorCodeData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, TestErrorCodeResponse, TestErrorCodeError>({ 234 234 ...options, 235 235 url: '/api/v{api-version}/error' 236 236 }); }; 237 237 238 - export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return (options?.client ?? client).post<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 238 + export const nonAsciiæøåÆøÅöôêÊ字符串 = <ThrowOnError extends boolean = false>(options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 239 239 ...options, 240 240 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串' 241 241 }); }; ··· 243 243 /** 244 244 * Login User 245 245 */ 246 - export const putWithFormUrlEncoded = (options: Options<PutWithFormUrlEncodedData>) => { return (options?.client ?? client).put<void>({ 246 + export const putWithFormUrlEncoded = <ThrowOnError extends boolean = false>(options: Options<PutWithFormUrlEncodedData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 247 247 ...options, 248 248 ...urlSearchParamsBodySerializer, 249 249 headers: {
+1
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_bundle_transform/core/index.ts.snap
··· 28 28 29 29 // @ts-ignore 30 30 const request: Client['request'] = async (options) => { 31 + // @ts-ignore 31 32 const opts: RequestOptions = { 32 33 ..._config, 33 34 ...options,
+60 -28
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_bundle_transform/core/types.ts.snap
··· 7 7 8 8 type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>; 9 9 10 - export interface Config 10 + export interface Config<ThrowOnError extends boolean = false> 11 11 extends Omit<RequestInit, 'body' | 'headers' | 'method'> { 12 12 /** 13 13 * Base URL for all requests made by this client. ··· 95 95 * Throw an error instead of returning it in the response? 96 96 * @default false 97 97 */ 98 - throwOnError?: boolean; 98 + throwOnError?: ThrowOnError; 99 99 } 100 100 101 - interface RequestOptionsBase extends Config { 101 + interface RequestOptionsBase<ThrowOnError extends boolean> 102 + extends Config<ThrowOnError> { 102 103 path?: Record<string, unknown>; 103 104 query?: Record<string, unknown>; 104 105 url: string; 105 106 } 106 107 107 - export type RequestResult<Data = unknown, Error = unknown> = Promise< 108 - ({ data: Data; error: undefined } | { data: undefined; error: Error }) & { 109 - request: Request; 110 - response: Response; 111 - } 112 - >; 108 + export type RequestResult< 109 + ThrowOnError extends boolean, 110 + Data = unknown, 111 + TError = unknown, 112 + > = ThrowOnError extends true 113 + ? Promise<{ 114 + data: Data; 115 + request: Request; 116 + response: Response; 117 + }> 118 + : Promise< 119 + ( 120 + | { data: Data; error: undefined } 121 + | { data: undefined; error: TError } 122 + ) & { 123 + request: Request; 124 + response: Response; 125 + } 126 + >; 113 127 114 - type MethodFn = <Data = unknown, Error = unknown>( 115 - options: Omit<RequestOptionsBase, 'method'>, 116 - ) => RequestResult<Data, Error>; 128 + type MethodFn = < 129 + ThrowOnError extends boolean, 130 + Data = unknown, 131 + TError = unknown, 132 + >( 133 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'>, 134 + ) => RequestResult<ThrowOnError, Data, TError>; 117 135 118 - type RequestFn = <Data = unknown, Error = unknown>( 119 - options: Omit<RequestOptionsBase, 'method'> & 120 - Pick<Required<RequestOptionsBase>, 'method'>, 121 - ) => RequestResult<Data, Error>; 136 + type RequestFn = < 137 + ThrowOnError extends boolean, 138 + Data = unknown, 139 + TError = unknown, 140 + >( 141 + options: Omit<RequestOptionsBase<ThrowOnError>, 'method'> & 142 + Pick<Required<RequestOptionsBase<ThrowOnError>>, 'method'>, 143 + ) => RequestResult<ThrowOnError, Data, TError>; 122 144 123 145 export interface Client< 124 146 Req = Request, ··· 128 150 connect: MethodFn; 129 151 delete: MethodFn; 130 152 get: MethodFn; 131 - getConfig: () => Config; 153 + getConfig: () => Config<false>; 132 154 head: MethodFn; 133 155 interceptors: Middleware<Req, Res, Options>; 134 156 options: MethodFn; ··· 136 158 post: MethodFn; 137 159 put: MethodFn; 138 160 request: RequestFn; 139 - setConfig: (config: Config) => Config; 161 + setConfig: (config: Config<false>) => Config<false>; 140 162 trace: MethodFn; 141 163 } 142 164 143 - export type RequestOptions = RequestOptionsBase & 144 - Config & { 165 + export type RequestOptions = RequestOptionsBase<false> & 166 + Config<false> & { 145 167 headers: Headers; 146 168 }; 147 169 148 - type OptionsBase = Omit<RequestOptionsBase, 'url'> & { 170 + type OptionsBase<ThrowOnError extends boolean> = Omit< 171 + RequestOptionsBase<ThrowOnError>, 172 + 'url' 173 + > & { 149 174 /** 150 175 * You can provide a client instance returned by `createClient()` instead of 151 176 * individual options. This might be also useful if you want to implement a ··· 154 179 client?: Client; 155 180 }; 156 181 157 - export type Options<T = unknown> = T extends { body?: any } 182 + export type Options< 183 + T = unknown, 184 + ThrowOnError extends boolean = false, 185 + > = T extends { body?: any } 158 186 ? T extends { headers?: any } 159 - ? OmitKeys<OptionsBase, 'body' | 'headers' | 'responseTransformer'> & T 160 - : OmitKeys<OptionsBase, 'body' | 'responseTransformer'> & 187 + ? OmitKeys< 188 + OptionsBase<ThrowOnError>, 189 + 'body' | 'headers' | 'responseTransformer' 190 + > & 191 + T 192 + : OmitKeys<OptionsBase<ThrowOnError>, 'body' | 'responseTransformer'> & 161 193 T & 162 - Pick<OptionsBase, 'headers'> 194 + Pick<OptionsBase<ThrowOnError>, 'headers'> 163 195 : T extends { headers?: any } 164 - ? OmitKeys<OptionsBase, 'headers' | 'responseTransformer'> & 196 + ? OmitKeys<OptionsBase<ThrowOnError>, 'headers' | 'responseTransformer'> & 165 197 T & 166 - Pick<OptionsBase, 'body'> 167 - : OptionsBase & T; 198 + Pick<OptionsBase<ThrowOnError>, 'body'> 199 + : OptionsBase<ThrowOnError> & T;
+6 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_bundle_transform/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const parentModelWithDates = (options?: Options) => { return (options?.client ?? client).post<ParentModelWithDatesResponse, ParentModelWithDatesError>({ 8 + export const parentModelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ParentModelWithDatesResponse, ParentModelWithDatesError>({ 9 9 ...options, 10 10 url: '/api/model-with-dates', 11 11 responseTransformer: ParentModelWithDatesResponseTransformer 12 12 }); }; 13 13 14 - export const modelWithDates = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesResponse, ModelWithDatesError>({ 14 + export const modelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesResponse, ModelWithDatesError>({ 15 15 ...options, 16 16 url: '/api/model-with-dates', 17 17 responseTransformer: ModelWithDatesResponseTransformer 18 18 }); }; 19 19 20 - export const modelWithDatesArray = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 20 + export const modelWithDatesArray = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 21 21 ...options, 22 22 url: '/api/model-with-dates-array', 23 23 responseTransformer: ModelWithDatesArrayResponseTransformer 24 24 }); }; 25 25 26 - export const arrayOfDates = (options?: Options) => { return (options?.client ?? client).put<ArrayOfDatesResponse, ArrayOfDatesError>({ 26 + export const arrayOfDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ArrayOfDatesResponse, ArrayOfDatesError>({ 27 27 ...options, 28 28 url: '/api/array-of-dates' 29 29 }); }; 30 30 31 - export const date = (options?: Options) => { return (options?.client ?? client).put<DateResponse, DateError>({ 31 + export const date = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, DateResponse, DateError>({ 32 32 ...options, 33 33 url: '/api/date' 34 34 }); }; 35 35 36 - export const multipleResponses = (options?: Options) => { return (options?.client ?? client).put<MultipleResponsesResponse, MultipleResponsesError>({ 36 + export const multipleResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, MultipleResponsesResponse, MultipleResponsesError>({ 37 37 ...options, 38 38 url: '/api/multiple-responses' 39 39 }); };
+45 -45
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_plugin_tanstack-react-query/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const export_ = (options?: Options) => { return (options?.client ?? client).get<void>({ 8 + export const export_ = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 9 9 ...options, 10 10 url: '/api/v{api-version}/no-tag' 11 11 }); }; 12 12 13 - export const import_ = (options: Options<ImportData>) => { return (options?.client ?? client).post<ImportResponse, ImportError>({ 13 + export const import_ = <ThrowOnError extends boolean = false>(options: Options<ImportData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ImportResponse, ImportError>({ 14 14 ...options, 15 15 url: '/api/v{api-version}/no-tag' 16 16 }); }; 17 17 18 - export const apiVVersionOdataControllerCount = (options?: Options) => { return (options?.client ?? client).get<ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 18 + export const apiVVersionOdataControllerCount = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 19 19 ...options, 20 20 url: '/api/v{api-version}/simple/$count' 21 21 }); }; 22 22 23 - export const getCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).get<void>({ 23 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 24 24 ...options, 25 25 url: '/api/v{api-version}/simple' 26 26 }); }; 27 27 28 - export const putCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).put<void>({ 28 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 29 29 ...options, 30 30 url: '/api/v{api-version}/simple' 31 31 }); }; 32 32 33 - export const postCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).post<void>({ 33 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 34 34 ...options, 35 35 url: '/api/v{api-version}/simple' 36 36 }); }; 37 37 38 - export const deleteCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).delete<void>({ 38 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 39 39 ...options, 40 40 url: '/api/v{api-version}/simple' 41 41 }); }; 42 42 43 - export const optionsCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).options<void>({ 43 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).options<ThrowOnError, void>({ 44 44 ...options, 45 45 url: '/api/v{api-version}/simple' 46 46 }); }; 47 47 48 - export const headCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).head<void>({ 48 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).head<ThrowOnError, void>({ 49 49 ...options, 50 50 url: '/api/v{api-version}/simple' 51 51 }); }; 52 52 53 - export const patchCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).patch<void>({ 53 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).patch<ThrowOnError, void>({ 54 54 ...options, 55 55 url: '/api/v{api-version}/simple' 56 56 }); }; 57 57 58 - export const deleteFoo = (options: Options<DeleteFooData3>) => { return (options?.client ?? client).delete<void>({ 58 + export const deleteFoo = <ThrowOnError extends boolean = false>(options: Options<DeleteFooData3, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 59 59 ...options, 60 60 url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}' 61 61 }); }; 62 62 63 - export const callWithDescriptions = (options?: Options<CallWithDescriptionsData>) => { return (options?.client ?? client).post<void>({ 63 + export const callWithDescriptions = <ThrowOnError extends boolean = false>(options?: Options<CallWithDescriptionsData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 64 64 ...options, 65 65 url: '/api/v{api-version}/descriptions/' 66 66 }); }; ··· 68 68 /** 69 69 * @deprecated 70 70 */ 71 - export const deprecatedCall = (options: Options<DeprecatedCallData>) => { return (options?.client ?? client).post<void>({ 71 + export const deprecatedCall = <ThrowOnError extends boolean = false>(options: Options<DeprecatedCallData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 72 72 ...options, 73 73 url: '/api/v{api-version}/parameters/deprecated' 74 74 }); }; 75 75 76 - export const callWithParameters = (options: Options<CallWithParametersData>) => { return (options?.client ?? client).post<void>({ 76 + export const callWithParameters = <ThrowOnError extends boolean = false>(options: Options<CallWithParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 77 77 ...options, 78 78 url: '/api/v{api-version}/parameters/{parameterPath}' 79 79 }); }; 80 80 81 - export const callWithWeirdParameterNames = (options: Options<CallWithWeirdParameterNamesData>) => { return (options?.client ?? client).post<void>({ 81 + export const callWithWeirdParameterNames = <ThrowOnError extends boolean = false>(options: Options<CallWithWeirdParameterNamesData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 82 82 ...options, 83 83 url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}' 84 84 }); }; 85 85 86 - export const getCallWithOptionalParam = (options: Options<GetCallWithOptionalParamData>) => { return (options?.client ?? client).get<void>({ 86 + export const getCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<GetCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 87 87 ...options, 88 88 url: '/api/v{api-version}/parameters/' 89 89 }); }; 90 90 91 - export const postCallWithOptionalParam = (options: Options<PostCallWithOptionalParamData>) => { return (options?.client ?? client).post<void>({ 91 + export const postCallWithOptionalParam = <ThrowOnError extends boolean = false>(options: Options<PostCallWithOptionalParamData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 92 92 ...options, 93 93 url: '/api/v{api-version}/parameters/' 94 94 }); }; 95 95 96 - export const postApiVbyApiVersionRequestBody = (options?: Options<PostApiVbyApiVersionRequestBodyData>) => { return (options?.client ?? client).post<void>({ 96 + export const postApiVbyApiVersionRequestBody = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionRequestBodyData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 97 97 ...options, 98 98 url: '/api/v{api-version}/requestBody/' 99 99 }); }; 100 100 101 - export const postApiVbyApiVersionFormData = (options?: Options<PostApiVbyApiVersionFormDataData>) => { return (options?.client ?? client).post<void>({ 101 + export const postApiVbyApiVersionFormData = <ThrowOnError extends boolean = false>(options?: Options<PostApiVbyApiVersionFormDataData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 102 102 ...options, 103 103 ...formDataBodySerializer, 104 104 headers: { ··· 107 107 url: '/api/v{api-version}/formData/' 108 108 }); }; 109 109 110 - export const callWithDefaultParameters = (options?: Options<CallWithDefaultParametersData>) => { return (options?.client ?? client).get<void>({ 110 + export const callWithDefaultParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultParametersData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 111 111 ...options, 112 112 url: '/api/v{api-version}/defaults' 113 113 }); }; 114 114 115 - export const callWithDefaultOptionalParameters = (options?: Options<CallWithDefaultOptionalParametersData>) => { return (options?.client ?? client).post<void>({ 115 + export const callWithDefaultOptionalParameters = <ThrowOnError extends boolean = false>(options?: Options<CallWithDefaultOptionalParametersData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 116 116 ...options, 117 117 url: '/api/v{api-version}/defaults' 118 118 }); }; 119 119 120 - export const callToTestOrderOfParams = (options: Options<CallToTestOrderOfParamsData>) => { return (options?.client ?? client).put<void>({ 120 + export const callToTestOrderOfParams = <ThrowOnError extends boolean = false>(options: Options<CallToTestOrderOfParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 121 121 ...options, 122 122 url: '/api/v{api-version}/defaults' 123 123 }); }; 124 124 125 - export const duplicateName = (options?: Options) => { return (options?.client ?? client).get<void>({ 125 + export const duplicateName = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 126 126 ...options, 127 127 url: '/api/v{api-version}/duplicate' 128 128 }); }; 129 129 130 - export const duplicateName1 = (options?: Options) => { return (options?.client ?? client).post<void>({ 130 + export const duplicateName1 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 131 131 ...options, 132 132 url: '/api/v{api-version}/duplicate' 133 133 }); }; 134 134 135 - export const duplicateName2 = (options?: Options) => { return (options?.client ?? client).put<void>({ 135 + export const duplicateName2 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 136 136 ...options, 137 137 url: '/api/v{api-version}/duplicate' 138 138 }); }; 139 139 140 - export const duplicateName3 = (options?: Options) => { return (options?.client ?? client).delete<void>({ 140 + export const duplicateName3 = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).delete<ThrowOnError, void>({ 141 141 ...options, 142 142 url: '/api/v{api-version}/duplicate' 143 143 }); }; 144 144 145 - export const callWithNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 145 + export const callWithNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 146 146 ...options, 147 147 url: '/api/v{api-version}/no-content' 148 148 }); }; 149 149 150 - export const callWithResponseAndNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 150 + export const callWithResponseAndNoContentResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 151 151 ...options, 152 152 url: '/api/v{api-version}/multiple-tags/response-and-no-content' 153 153 }); }; 154 154 155 - export const dummyA = (options?: Options) => { return (options?.client ?? client).get<DummyAResponse, DummyAError>({ 155 + export const dummyA = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyAResponse, DummyAError>({ 156 156 ...options, 157 157 url: '/api/v{api-version}/multiple-tags/a' 158 158 }); }; 159 159 160 - export const dummyB = (options?: Options) => { return (options?.client ?? client).get<DummyBResponse, DummyBError>({ 160 + export const dummyB = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, DummyBResponse, DummyBError>({ 161 161 ...options, 162 162 url: '/api/v{api-version}/multiple-tags/b' 163 163 }); }; 164 164 165 - export const callWithResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseResponse, CallWithResponseError>({ 165 + export const callWithResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, CallWithResponseResponse, CallWithResponseError>({ 166 166 ...options, 167 167 url: '/api/v{api-version}/response' 168 168 }); }; 169 169 170 - export const callWithDuplicateResponses = (options?: Options) => { return (options?.client ?? client).post<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 170 + export const callWithDuplicateResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 171 171 ...options, 172 172 url: '/api/v{api-version}/response' 173 173 }); }; 174 174 175 - export const callWithResponses = (options?: Options) => { return (options?.client ?? client).put<CallWithResponsesResponse, CallWithResponsesError>({ 175 + export const callWithResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, CallWithResponsesResponse, CallWithResponsesError>({ 176 176 ...options, 177 177 url: '/api/v{api-version}/response' 178 178 }); }; 179 179 180 - export const collectionFormat = (options: Options<CollectionFormatData>) => { return (options?.client ?? client).get<void>({ 180 + export const collectionFormat = <ThrowOnError extends boolean = false>(options: Options<CollectionFormatData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, void>({ 181 181 ...options, 182 182 url: '/api/v{api-version}/collectionFormat' 183 183 }); }; 184 184 185 - export const types = (options: Options<TypesData>) => { return (options?.client ?? client).get<TypesResponse, TypesError>({ 185 + export const types = <ThrowOnError extends boolean = false>(options: Options<TypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, TypesResponse, TypesError>({ 186 186 ...options, 187 187 url: '/api/v{api-version}/types' 188 188 }); }; 189 189 190 - export const uploadFile = (options: Options<UploadFileData>) => { return (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 190 + export const uploadFile = <ThrowOnError extends boolean = false>(options: Options<UploadFileData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, UploadFileResponse, UploadFileError>({ 191 191 ...options, 192 192 ...urlSearchParamsBodySerializer, 193 193 headers: { ··· 196 196 url: '/api/v{api-version}/upload' 197 197 }); }; 198 198 199 - export const fileResponse = (options: Options<FileResponseData>) => { return (options?.client ?? client).get<FileResponseResponse, FileResponseError>({ 199 + export const fileResponse = <ThrowOnError extends boolean = false>(options: Options<FileResponseData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, FileResponseResponse, FileResponseError>({ 200 200 ...options, 201 201 url: '/api/v{api-version}/file/{id}' 202 202 }); }; 203 203 204 - export const complexTypes = (options: Options<ComplexTypesData>) => { return (options?.client ?? client).get<ComplexTypesResponse, ComplexTypesError>({ 204 + export const complexTypes = <ThrowOnError extends boolean = false>(options: Options<ComplexTypesData, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, ComplexTypesResponse, ComplexTypesError>({ 205 205 ...options, 206 206 url: '/api/v{api-version}/complex' 207 207 }); }; 208 208 209 - export const multipartRequest = (options?: Options<MultipartRequestData>) => { return (options?.client ?? client).post<void>({ 209 + export const multipartRequest = <ThrowOnError extends boolean = false>(options?: Options<MultipartRequestData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, void>({ 210 210 ...options, 211 211 ...formDataBodySerializer, 212 212 headers: { ··· 215 215 url: '/api/v{api-version}/multipart' 216 216 }); }; 217 217 218 - export const multipartResponse = (options?: Options) => { return (options?.client ?? client).get<MultipartResponseResponse, MultipartResponseError>({ 218 + export const multipartResponse = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).get<ThrowOnError, MultipartResponseResponse, MultipartResponseError>({ 219 219 ...options, 220 220 url: '/api/v{api-version}/multipart' 221 221 }); }; 222 222 223 - export const complexParams = (options: Options<ComplexParamsData>) => { return (options?.client ?? client).put<ComplexParamsResponse, ComplexParamsError>({ 223 + export const complexParams = <ThrowOnError extends boolean = false>(options: Options<ComplexParamsData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ComplexParamsResponse, ComplexParamsError>({ 224 224 ...options, 225 225 url: '/api/v{api-version}/complex/{id}' 226 226 }); }; 227 227 228 - export const callWithResultFromHeader = (options?: Options) => { return (options?.client ?? client).post<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 228 + export const callWithResultFromHeader = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 229 229 ...options, 230 230 url: '/api/v{api-version}/header' 231 231 }); }; 232 232 233 - export const testErrorCode = (options: Options<TestErrorCodeData>) => { return (options?.client ?? client).post<TestErrorCodeResponse, TestErrorCodeError>({ 233 + export const testErrorCode = <ThrowOnError extends boolean = false>(options: Options<TestErrorCodeData, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, TestErrorCodeResponse, TestErrorCodeError>({ 234 234 ...options, 235 235 url: '/api/v{api-version}/error' 236 236 }); }; 237 237 238 - export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return (options?.client ?? client).post<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 238 + export const nonAsciiæøåÆøÅöôêÊ字符串 = <ThrowOnError extends boolean = false>(options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 239 239 ...options, 240 240 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串' 241 241 }); }; ··· 243 243 /** 244 244 * Login User 245 245 */ 246 - export const putWithFormUrlEncoded = (options: Options<PutWithFormUrlEncodedData>) => { return (options?.client ?? client).put<void>({ 246 + export const putWithFormUrlEncoded = <ThrowOnError extends boolean = false>(options: Options<PutWithFormUrlEncodedData, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, void>({ 247 247 ...options, 248 248 ...urlSearchParamsBodySerializer, 249 249 headers: {
+364 -229
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_plugin_tanstack-react-query/tanstack-query.gen.ts.snap packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_plugin_tanstack-react-query/@tanstack/query.gen.ts.snap
··· 1 1 // This file is auto-generated by @hey-api/openapi-ts 2 2 3 3 import type { Options } from '@hey-api/client-fetch'; 4 - import { queryOptions } from '@tanstack/react-query'; 5 - import { export_, import_, apiVVersionOdataControllerCount, getCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, postCallWithoutParametersAndResponse, deleteCallWithoutParametersAndResponse, optionsCallWithoutParametersAndResponse, headCallWithoutParametersAndResponse, patchCallWithoutParametersAndResponse, deleteFoo, callWithDescriptions, deprecatedCall, callWithParameters, callWithWeirdParameterNames, getCallWithOptionalParam, postCallWithOptionalParam, postApiVbyApiVersionRequestBody, postApiVbyApiVersionFormData, callWithDefaultParameters, callWithDefaultOptionalParameters, callToTestOrderOfParams, duplicateName, duplicateName1, duplicateName2, duplicateName3, callWithNoContentResponse, callWithResponseAndNoContentResponse, dummyA, dummyB, callWithResponse, callWithDuplicateResponses, callWithResponses, collectionFormat, types, uploadFile, fileResponse, complexTypes, multipartRequest, multipartResponse, complexParams, callWithResultFromHeader, testErrorCode, nonAsciiæøåÆøÅöôêÊ字符串, putWithFormUrlEncoded } from './services.gen'; 6 - import type { ImportData, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostApiVbyApiVersionRequestBodyData, PostApiVbyApiVersionFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, CollectionFormatData, TypesData, UploadFileData, FileResponseData, ComplexTypesData, MultipartRequestData, ComplexParamsData, TestErrorCodeData, NonAsciiæøåÆøÅöôêÊ字符串Data, PutWithFormUrlEncodedData } from './types.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/react-query'; 5 + import { export_, import_, apiVVersionOdataControllerCount, getCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, postCallWithoutParametersAndResponse, deleteCallWithoutParametersAndResponse, optionsCallWithoutParametersAndResponse, headCallWithoutParametersAndResponse, patchCallWithoutParametersAndResponse, deleteFoo, callWithDescriptions, deprecatedCall, callWithParameters, callWithWeirdParameterNames, getCallWithOptionalParam, postCallWithOptionalParam, postApiVbyApiVersionRequestBody, postApiVbyApiVersionFormData, callWithDefaultParameters, callWithDefaultOptionalParameters, callToTestOrderOfParams, duplicateName, duplicateName1, duplicateName2, duplicateName3, callWithNoContentResponse, callWithResponseAndNoContentResponse, dummyA, dummyB, callWithResponse, callWithDuplicateResponses, callWithResponses, collectionFormat, types, uploadFile, fileResponse, complexTypes, multipartRequest, multipartResponse, complexParams, callWithResultFromHeader, testErrorCode, nonAsciiæøåÆøÅöôêÊ字符串, putWithFormUrlEncoded } from '../services.gen'; 6 + import type { ImportData, ImportError, ImportResponse, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostApiVbyApiVersionRequestBodyData, PostApiVbyApiVersionFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, CallWithDuplicateResponsesError, CallWithDuplicateResponsesResponse, CallWithResponsesError, CallWithResponsesResponse, CollectionFormatData, TypesData, UploadFileData, UploadFileError, UploadFileResponse, FileResponseData, ComplexTypesData, MultipartRequestData, ComplexParamsData, ComplexParamsError, ComplexParamsResponse, CallWithResultFromHeaderError, CallWithResultFromHeaderResponse, TestErrorCodeData, TestErrorCodeError, TestErrorCodeResponse, NonAsciiæøåÆøÅöôêÊ字符串Data, NonAsciiæøåÆøÅöôêÊ字符串Error, NonAsciiæøåÆøÅöôêÊ字符串Response, PutWithFormUrlEncodedData } from '../types.gen'; 7 7 8 - /** 9 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 10 - */ 11 - export const exportOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 12 - ...queryOpts, 8 + export const exportOptions = (options?: Options) => { return queryOptions({ 13 9 queryFn: async ({ queryKey }) => { 14 10 const { data } = await export_({ 11 + ...options, 15 12 ...queryKey[0].params, 16 13 throwOnError: true 17 14 }); ··· 30 27 ] 31 28 }); }; 32 29 33 - /** 34 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 35 - */ 36 - export const importOptions = (options: Options<ImportData>, queryOpts?: object) => { return queryOptions({ 37 - ...queryOpts, 30 + export const importOptions = (options: Options<ImportData>) => { return queryOptions({ 38 31 queryFn: async ({ queryKey }) => { 39 32 const { data } = await import_({ 33 + ...options, 40 34 ...queryKey[0].params, 41 35 throwOnError: true 42 36 }); ··· 55 49 ] 56 50 }); }; 57 51 58 - /** 59 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 60 - */ 61 - export const apiVVersionOdataControllerCountOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 62 - ...queryOpts, 52 + export const importMutation: UseMutationOptions<ImportResponse, ImportError, Options<ImportData>> = { 53 + mutationFn: async (options) => { 54 + const { data } = await import_({ 55 + ...options, 56 + throwOnError: true 57 + }); 58 + return data; 59 + } 60 + }; 61 + 62 + export const apiVVersionOdataControllerCountOptions = (options?: Options) => { return queryOptions({ 63 63 queryFn: async ({ queryKey }) => { 64 64 const { data } = await apiVVersionOdataControllerCount({ 65 + ...options, 65 66 ...queryKey[0].params, 66 67 throwOnError: true 67 68 }); ··· 80 81 ] 81 82 }); }; 82 83 83 - /** 84 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 85 - */ 86 - export const getCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 87 - ...queryOpts, 84 + export const getCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 88 85 queryFn: async ({ queryKey }) => { 89 86 const { data } = await getCallWithoutParametersAndResponse({ 87 + ...options, 90 88 ...queryKey[0].params, 91 89 throwOnError: true 92 90 }); ··· 105 103 ] 106 104 }); }; 107 105 108 - /** 109 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 110 - */ 111 - export const putCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 112 - ...queryOpts, 106 + export const putCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 113 107 queryFn: async ({ queryKey }) => { 114 108 const { data } = await putCallWithoutParametersAndResponse({ 109 + ...options, 115 110 ...queryKey[0].params, 116 111 throwOnError: true 117 112 }); ··· 130 125 ] 131 126 }); }; 132 127 133 - /** 134 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 135 - */ 136 - export const postCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 137 - ...queryOpts, 128 + export const putCallWithoutParametersAndResponseMutation: UseMutationOptions<void, DefaultError, Options> = { 129 + mutationFn: async (options) => { 130 + const { data } = await putCallWithoutParametersAndResponse({ 131 + ...options, 132 + throwOnError: true 133 + }); 134 + return data; 135 + } 136 + }; 137 + 138 + export const postCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 138 139 queryFn: async ({ queryKey }) => { 139 140 const { data } = await postCallWithoutParametersAndResponse({ 141 + ...options, 140 142 ...queryKey[0].params, 141 143 throwOnError: true 142 144 }); ··· 155 157 ] 156 158 }); }; 157 159 158 - /** 159 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 160 - */ 161 - export const deleteCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 162 - ...queryOpts, 160 + export const postCallWithoutParametersAndResponseMutation: UseMutationOptions<void, DefaultError, Options> = { 161 + mutationFn: async (options) => { 162 + const { data } = await postCallWithoutParametersAndResponse({ 163 + ...options, 164 + throwOnError: true 165 + }); 166 + return data; 167 + } 168 + }; 169 + 170 + export const deleteCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 163 171 queryFn: async ({ queryKey }) => { 164 172 const { data } = await deleteCallWithoutParametersAndResponse({ 173 + ...options, 165 174 ...queryKey[0].params, 166 175 throwOnError: true 167 176 }); ··· 180 189 ] 181 190 }); }; 182 191 183 - /** 184 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 185 - */ 186 - export const optionsCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 187 - ...queryOpts, 192 + export const deleteCallWithoutParametersAndResponseMutation: UseMutationOptions<void, DefaultError, Options> = { 193 + mutationFn: async (options) => { 194 + const { data } = await deleteCallWithoutParametersAndResponse({ 195 + ...options, 196 + throwOnError: true 197 + }); 198 + return data; 199 + } 200 + }; 201 + 202 + export const optionsCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 188 203 queryFn: async ({ queryKey }) => { 189 204 const { data } = await optionsCallWithoutParametersAndResponse({ 205 + ...options, 190 206 ...queryKey[0].params, 191 207 throwOnError: true 192 208 }); ··· 205 221 ] 206 222 }); }; 207 223 208 - /** 209 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 210 - */ 211 - export const headCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 212 - ...queryOpts, 224 + export const headCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 213 225 queryFn: async ({ queryKey }) => { 214 226 const { data } = await headCallWithoutParametersAndResponse({ 227 + ...options, 215 228 ...queryKey[0].params, 216 229 throwOnError: true 217 230 }); ··· 230 243 ] 231 244 }); }; 232 245 233 - /** 234 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 235 - */ 236 - export const patchCallWithoutParametersAndResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 237 - ...queryOpts, 246 + export const patchCallWithoutParametersAndResponseOptions = (options?: Options) => { return queryOptions({ 238 247 queryFn: async ({ queryKey }) => { 239 248 const { data } = await patchCallWithoutParametersAndResponse({ 249 + ...options, 240 250 ...queryKey[0].params, 241 251 throwOnError: true 242 252 }); ··· 255 265 ] 256 266 }); }; 257 267 258 - /** 259 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 260 - */ 261 - export const deleteFooOptions = (options: Options<DeleteFooData3>, queryOpts?: object) => { return queryOptions({ 262 - ...queryOpts, 268 + export const patchCallWithoutParametersAndResponseMutation: UseMutationOptions<void, DefaultError, Options> = { 269 + mutationFn: async (options) => { 270 + const { data } = await patchCallWithoutParametersAndResponse({ 271 + ...options, 272 + throwOnError: true 273 + }); 274 + return data; 275 + } 276 + }; 277 + 278 + export const deleteFooOptions = (options: Options<DeleteFooData3>) => { return queryOptions({ 263 279 queryFn: async ({ queryKey }) => { 264 280 const { data } = await deleteFoo({ 281 + ...options, 265 282 ...queryKey[0].params, 266 283 throwOnError: true 267 284 }); ··· 280 297 ] 281 298 }); }; 282 299 283 - /** 284 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 285 - */ 286 - export const callWithDescriptionsOptions = (options?: Options<CallWithDescriptionsData>, queryOpts?: object) => { return queryOptions({ 287 - ...queryOpts, 300 + export const deleteFooMutation: UseMutationOptions<void, DefaultError, Options<DeleteFooData3>> = { 301 + mutationFn: async (options) => { 302 + const { data } = await deleteFoo({ 303 + ...options, 304 + throwOnError: true 305 + }); 306 + return data; 307 + } 308 + }; 309 + 310 + export const callWithDescriptionsOptions = (options?: Options<CallWithDescriptionsData>) => { return queryOptions({ 288 311 queryFn: async ({ queryKey }) => { 289 312 const { data } = await callWithDescriptions({ 313 + ...options, 290 314 ...queryKey[0].params, 291 315 throwOnError: true 292 316 }); ··· 305 329 ] 306 330 }); }; 307 331 308 - /** 309 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 310 - */ 311 - export const deprecatedCallOptions = (options: Options<DeprecatedCallData>, queryOpts?: object) => { return queryOptions({ 312 - ...queryOpts, 332 + export const callWithDescriptionsMutation: UseMutationOptions<void, DefaultError, Options<CallWithDescriptionsData>> = { 333 + mutationFn: async (options) => { 334 + const { data } = await callWithDescriptions({ 335 + ...options, 336 + throwOnError: true 337 + }); 338 + return data; 339 + } 340 + }; 341 + 342 + export const deprecatedCallOptions = (options: Options<DeprecatedCallData>) => { return queryOptions({ 313 343 queryFn: async ({ queryKey }) => { 314 344 const { data } = await deprecatedCall({ 345 + ...options, 315 346 ...queryKey[0].params, 316 347 throwOnError: true 317 348 }); ··· 330 361 ] 331 362 }); }; 332 363 333 - /** 334 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 335 - */ 336 - export const callWithParametersOptions = (options: Options<CallWithParametersData>, queryOpts?: object) => { return queryOptions({ 337 - ...queryOpts, 364 + export const deprecatedCallMutation: UseMutationOptions<void, DefaultError, Options<DeprecatedCallData>> = { 365 + mutationFn: async (options) => { 366 + const { data } = await deprecatedCall({ 367 + ...options, 368 + throwOnError: true 369 + }); 370 + return data; 371 + } 372 + }; 373 + 374 + export const callWithParametersOptions = (options: Options<CallWithParametersData>) => { return queryOptions({ 338 375 queryFn: async ({ queryKey }) => { 339 376 const { data } = await callWithParameters({ 377 + ...options, 340 378 ...queryKey[0].params, 341 379 throwOnError: true 342 380 }); ··· 355 393 ] 356 394 }); }; 357 395 358 - /** 359 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 360 - */ 361 - export const callWithWeirdParameterNamesOptions = (options: Options<CallWithWeirdParameterNamesData>, queryOpts?: object) => { return queryOptions({ 362 - ...queryOpts, 396 + export const callWithParametersMutation: UseMutationOptions<void, DefaultError, Options<CallWithParametersData>> = { 397 + mutationFn: async (options) => { 398 + const { data } = await callWithParameters({ 399 + ...options, 400 + throwOnError: true 401 + }); 402 + return data; 403 + } 404 + }; 405 + 406 + export const callWithWeirdParameterNamesOptions = (options: Options<CallWithWeirdParameterNamesData>) => { return queryOptions({ 363 407 queryFn: async ({ queryKey }) => { 364 408 const { data } = await callWithWeirdParameterNames({ 409 + ...options, 365 410 ...queryKey[0].params, 366 411 throwOnError: true 367 412 }); ··· 380 425 ] 381 426 }); }; 382 427 383 - /** 384 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 385 - */ 386 - export const getCallWithOptionalParamOptions = (options: Options<GetCallWithOptionalParamData>, queryOpts?: object) => { return queryOptions({ 387 - ...queryOpts, 428 + export const callWithWeirdParameterNamesMutation: UseMutationOptions<void, DefaultError, Options<CallWithWeirdParameterNamesData>> = { 429 + mutationFn: async (options) => { 430 + const { data } = await callWithWeirdParameterNames({ 431 + ...options, 432 + throwOnError: true 433 + }); 434 + return data; 435 + } 436 + }; 437 + 438 + export const getCallWithOptionalParamOptions = (options: Options<GetCallWithOptionalParamData>) => { return queryOptions({ 388 439 queryFn: async ({ queryKey }) => { 389 440 const { data } = await getCallWithOptionalParam({ 441 + ...options, 390 442 ...queryKey[0].params, 391 443 throwOnError: true 392 444 }); ··· 405 457 ] 406 458 }); }; 407 459 408 - /** 409 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 410 - */ 411 - export const postCallWithOptionalParamOptions = (options: Options<PostCallWithOptionalParamData>, queryOpts?: object) => { return queryOptions({ 412 - ...queryOpts, 460 + export const postCallWithOptionalParamOptions = (options: Options<PostCallWithOptionalParamData>) => { return queryOptions({ 413 461 queryFn: async ({ queryKey }) => { 414 462 const { data } = await postCallWithOptionalParam({ 463 + ...options, 415 464 ...queryKey[0].params, 416 465 throwOnError: true 417 466 }); ··· 430 479 ] 431 480 }); }; 432 481 433 - /** 434 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 435 - */ 436 - export const postApiVbyApiVersionRequestBodyOptions = (options?: Options<PostApiVbyApiVersionRequestBodyData>, queryOpts?: object) => { return queryOptions({ 437 - ...queryOpts, 482 + export const postCallWithOptionalParamMutation: UseMutationOptions<void, DefaultError, Options<PostCallWithOptionalParamData>> = { 483 + mutationFn: async (options) => { 484 + const { data } = await postCallWithOptionalParam({ 485 + ...options, 486 + throwOnError: true 487 + }); 488 + return data; 489 + } 490 + }; 491 + 492 + export const postApiVbyApiVersionRequestBodyOptions = (options?: Options<PostApiVbyApiVersionRequestBodyData>) => { return queryOptions({ 438 493 queryFn: async ({ queryKey }) => { 439 494 const { data } = await postApiVbyApiVersionRequestBody({ 495 + ...options, 440 496 ...queryKey[0].params, 441 497 throwOnError: true 442 498 }); ··· 455 511 ] 456 512 }); }; 457 513 458 - /** 459 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 460 - */ 461 - export const postApiVbyApiVersionFormDataOptions = (options?: Options<PostApiVbyApiVersionFormDataData>, queryOpts?: object) => { return queryOptions({ 462 - ...queryOpts, 514 + export const postApiVbyApiVersionRequestBodyMutation: UseMutationOptions<void, DefaultError, Options<PostApiVbyApiVersionRequestBodyData>> = { 515 + mutationFn: async (options) => { 516 + const { data } = await postApiVbyApiVersionRequestBody({ 517 + ...options, 518 + throwOnError: true 519 + }); 520 + return data; 521 + } 522 + }; 523 + 524 + export const postApiVbyApiVersionFormDataOptions = (options?: Options<PostApiVbyApiVersionFormDataData>) => { return queryOptions({ 463 525 queryFn: async ({ queryKey }) => { 464 526 const { data } = await postApiVbyApiVersionFormData({ 527 + ...options, 465 528 ...queryKey[0].params, 466 529 throwOnError: true 467 530 }); ··· 480 543 ] 481 544 }); }; 482 545 483 - /** 484 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 485 - */ 486 - export const callWithDefaultParametersOptions = (options?: Options<CallWithDefaultParametersData>, queryOpts?: object) => { return queryOptions({ 487 - ...queryOpts, 546 + export const postApiVbyApiVersionFormDataMutation: UseMutationOptions<void, DefaultError, Options<PostApiVbyApiVersionFormDataData>> = { 547 + mutationFn: async (options) => { 548 + const { data } = await postApiVbyApiVersionFormData({ 549 + ...options, 550 + throwOnError: true 551 + }); 552 + return data; 553 + } 554 + }; 555 + 556 + export const callWithDefaultParametersOptions = (options?: Options<CallWithDefaultParametersData>) => { return queryOptions({ 488 557 queryFn: async ({ queryKey }) => { 489 558 const { data } = await callWithDefaultParameters({ 559 + ...options, 490 560 ...queryKey[0].params, 491 561 throwOnError: true 492 562 }); ··· 505 575 ] 506 576 }); }; 507 577 508 - /** 509 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 510 - */ 511 - export const callWithDefaultOptionalParametersOptions = (options?: Options<CallWithDefaultOptionalParametersData>, queryOpts?: object) => { return queryOptions({ 512 - ...queryOpts, 578 + export const callWithDefaultOptionalParametersOptions = (options?: Options<CallWithDefaultOptionalParametersData>) => { return queryOptions({ 513 579 queryFn: async ({ queryKey }) => { 514 580 const { data } = await callWithDefaultOptionalParameters({ 581 + ...options, 515 582 ...queryKey[0].params, 516 583 throwOnError: true 517 584 }); ··· 530 597 ] 531 598 }); }; 532 599 533 - /** 534 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 535 - */ 536 - export const callToTestOrderOfParamsOptions = (options: Options<CallToTestOrderOfParamsData>, queryOpts?: object) => { return queryOptions({ 537 - ...queryOpts, 600 + export const callWithDefaultOptionalParametersMutation: UseMutationOptions<void, DefaultError, Options<CallWithDefaultOptionalParametersData>> = { 601 + mutationFn: async (options) => { 602 + const { data } = await callWithDefaultOptionalParameters({ 603 + ...options, 604 + throwOnError: true 605 + }); 606 + return data; 607 + } 608 + }; 609 + 610 + export const callToTestOrderOfParamsOptions = (options: Options<CallToTestOrderOfParamsData>) => { return queryOptions({ 538 611 queryFn: async ({ queryKey }) => { 539 612 const { data } = await callToTestOrderOfParams({ 613 + ...options, 540 614 ...queryKey[0].params, 541 615 throwOnError: true 542 616 }); ··· 555 629 ] 556 630 }); }; 557 631 558 - /** 559 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 560 - */ 561 - export const duplicateNameOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 562 - ...queryOpts, 632 + export const callToTestOrderOfParamsMutation: UseMutationOptions<void, DefaultError, Options<CallToTestOrderOfParamsData>> = { 633 + mutationFn: async (options) => { 634 + const { data } = await callToTestOrderOfParams({ 635 + ...options, 636 + throwOnError: true 637 + }); 638 + return data; 639 + } 640 + }; 641 + 642 + export const duplicateNameOptions = (options?: Options) => { return queryOptions({ 563 643 queryFn: async ({ queryKey }) => { 564 644 const { data } = await duplicateName({ 645 + ...options, 565 646 ...queryKey[0].params, 566 647 throwOnError: true 567 648 }); ··· 580 661 ] 581 662 }); }; 582 663 583 - /** 584 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 585 - */ 586 - export const duplicateName1Options = (options?: Options, queryOpts?: object) => { return queryOptions({ 587 - ...queryOpts, 664 + export const duplicateName1Options = (options?: Options) => { return queryOptions({ 588 665 queryFn: async ({ queryKey }) => { 589 666 const { data } = await duplicateName1({ 667 + ...options, 590 668 ...queryKey[0].params, 591 669 throwOnError: true 592 670 }); ··· 605 683 ] 606 684 }); }; 607 685 608 - /** 609 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 610 - */ 611 - export const duplicateName2Options = (options?: Options, queryOpts?: object) => { return queryOptions({ 612 - ...queryOpts, 686 + export const duplicateName1Mutation: UseMutationOptions<void, DefaultError, Options> = { 687 + mutationFn: async (options) => { 688 + const { data } = await duplicateName1({ 689 + ...options, 690 + throwOnError: true 691 + }); 692 + return data; 693 + } 694 + }; 695 + 696 + export const duplicateName2Options = (options?: Options) => { return queryOptions({ 613 697 queryFn: async ({ queryKey }) => { 614 698 const { data } = await duplicateName2({ 699 + ...options, 615 700 ...queryKey[0].params, 616 701 throwOnError: true 617 702 }); ··· 630 715 ] 631 716 }); }; 632 717 633 - /** 634 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 635 - */ 636 - export const duplicateName3Options = (options?: Options, queryOpts?: object) => { return queryOptions({ 637 - ...queryOpts, 718 + export const duplicateName2Mutation: UseMutationOptions<void, DefaultError, Options> = { 719 + mutationFn: async (options) => { 720 + const { data } = await duplicateName2({ 721 + ...options, 722 + throwOnError: true 723 + }); 724 + return data; 725 + } 726 + }; 727 + 728 + export const duplicateName3Options = (options?: Options) => { return queryOptions({ 638 729 queryFn: async ({ queryKey }) => { 639 730 const { data } = await duplicateName3({ 731 + ...options, 640 732 ...queryKey[0].params, 641 733 throwOnError: true 642 734 }); ··· 655 747 ] 656 748 }); }; 657 749 658 - /** 659 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 660 - */ 661 - export const callWithNoContentResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 662 - ...queryOpts, 750 + export const duplicateName3Mutation: UseMutationOptions<void, DefaultError, Options> = { 751 + mutationFn: async (options) => { 752 + const { data } = await duplicateName3({ 753 + ...options, 754 + throwOnError: true 755 + }); 756 + return data; 757 + } 758 + }; 759 + 760 + export const callWithNoContentResponseOptions = (options?: Options) => { return queryOptions({ 663 761 queryFn: async ({ queryKey }) => { 664 762 const { data } = await callWithNoContentResponse({ 763 + ...options, 665 764 ...queryKey[0].params, 666 765 throwOnError: true 667 766 }); ··· 680 779 ] 681 780 }); }; 682 781 683 - /** 684 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 685 - */ 686 - export const callWithResponseAndNoContentResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 687 - ...queryOpts, 782 + export const callWithResponseAndNoContentResponseOptions = (options?: Options) => { return queryOptions({ 688 783 queryFn: async ({ queryKey }) => { 689 784 const { data } = await callWithResponseAndNoContentResponse({ 785 + ...options, 690 786 ...queryKey[0].params, 691 787 throwOnError: true 692 788 }); ··· 705 801 ] 706 802 }); }; 707 803 708 - /** 709 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 710 - */ 711 - export const dummyAOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 712 - ...queryOpts, 804 + export const dummyAOptions = (options?: Options) => { return queryOptions({ 713 805 queryFn: async ({ queryKey }) => { 714 806 const { data } = await dummyA({ 807 + ...options, 715 808 ...queryKey[0].params, 716 809 throwOnError: true 717 810 }); ··· 730 823 ] 731 824 }); }; 732 825 733 - /** 734 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 735 - */ 736 - export const dummyBOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 737 - ...queryOpts, 826 + export const dummyBOptions = (options?: Options) => { return queryOptions({ 738 827 queryFn: async ({ queryKey }) => { 739 828 const { data } = await dummyB({ 829 + ...options, 740 830 ...queryKey[0].params, 741 831 throwOnError: true 742 832 }); ··· 755 845 ] 756 846 }); }; 757 847 758 - /** 759 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 760 - */ 761 - export const callWithResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 762 - ...queryOpts, 848 + export const callWithResponseOptions = (options?: Options) => { return queryOptions({ 763 849 queryFn: async ({ queryKey }) => { 764 850 const { data } = await callWithResponse({ 851 + ...options, 765 852 ...queryKey[0].params, 766 853 throwOnError: true 767 854 }); ··· 780 867 ] 781 868 }); }; 782 869 783 - /** 784 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 785 - */ 786 - export const callWithDuplicateResponsesOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 787 - ...queryOpts, 870 + export const callWithDuplicateResponsesOptions = (options?: Options) => { return queryOptions({ 788 871 queryFn: async ({ queryKey }) => { 789 872 const { data } = await callWithDuplicateResponses({ 873 + ...options, 790 874 ...queryKey[0].params, 791 875 throwOnError: true 792 876 }); ··· 805 889 ] 806 890 }); }; 807 891 808 - /** 809 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 810 - */ 811 - export const callWithResponsesOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 812 - ...queryOpts, 892 + export const callWithDuplicateResponsesMutation: UseMutationOptions<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError, Options> = { 893 + mutationFn: async (options) => { 894 + const { data } = await callWithDuplicateResponses({ 895 + ...options, 896 + throwOnError: true 897 + }); 898 + return data; 899 + } 900 + }; 901 + 902 + export const callWithResponsesOptions = (options?: Options) => { return queryOptions({ 813 903 queryFn: async ({ queryKey }) => { 814 904 const { data } = await callWithResponses({ 905 + ...options, 815 906 ...queryKey[0].params, 816 907 throwOnError: true 817 908 }); ··· 830 921 ] 831 922 }); }; 832 923 833 - /** 834 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 835 - */ 836 - export const collectionFormatOptions = (options: Options<CollectionFormatData>, queryOpts?: object) => { return queryOptions({ 837 - ...queryOpts, 924 + export const callWithResponsesMutation: UseMutationOptions<CallWithResponsesResponse, CallWithResponsesError, Options> = { 925 + mutationFn: async (options) => { 926 + const { data } = await callWithResponses({ 927 + ...options, 928 + throwOnError: true 929 + }); 930 + return data; 931 + } 932 + }; 933 + 934 + export const collectionFormatOptions = (options: Options<CollectionFormatData>) => { return queryOptions({ 838 935 queryFn: async ({ queryKey }) => { 839 936 const { data } = await collectionFormat({ 937 + ...options, 840 938 ...queryKey[0].params, 841 939 throwOnError: true 842 940 }); ··· 855 953 ] 856 954 }); }; 857 955 858 - /** 859 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 860 - */ 861 - export const typesOptions = (options: Options<TypesData>, queryOpts?: object) => { return queryOptions({ 862 - ...queryOpts, 956 + export const typesOptions = (options: Options<TypesData>) => { return queryOptions({ 863 957 queryFn: async ({ queryKey }) => { 864 958 const { data } = await types({ 959 + ...options, 865 960 ...queryKey[0].params, 866 961 throwOnError: true 867 962 }); ··· 880 975 ] 881 976 }); }; 882 977 883 - /** 884 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 885 - */ 886 - export const uploadFileOptions = (options: Options<UploadFileData>, queryOpts?: object) => { return queryOptions({ 887 - ...queryOpts, 978 + export const uploadFileOptions = (options: Options<UploadFileData>) => { return queryOptions({ 888 979 queryFn: async ({ queryKey }) => { 889 980 const { data } = await uploadFile({ 981 + ...options, 890 982 ...queryKey[0].params, 891 983 throwOnError: true 892 984 }); ··· 905 997 ] 906 998 }); }; 907 999 908 - /** 909 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 910 - */ 911 - export const fileResponseOptions = (options: Options<FileResponseData>, queryOpts?: object) => { return queryOptions({ 912 - ...queryOpts, 1000 + export const uploadFileMutation: UseMutationOptions<UploadFileResponse, UploadFileError, Options<UploadFileData>> = { 1001 + mutationFn: async (options) => { 1002 + const { data } = await uploadFile({ 1003 + ...options, 1004 + throwOnError: true 1005 + }); 1006 + return data; 1007 + } 1008 + }; 1009 + 1010 + export const fileResponseOptions = (options: Options<FileResponseData>) => { return queryOptions({ 913 1011 queryFn: async ({ queryKey }) => { 914 1012 const { data } = await fileResponse({ 1013 + ...options, 915 1014 ...queryKey[0].params, 916 1015 throwOnError: true 917 1016 }); ··· 930 1029 ] 931 1030 }); }; 932 1031 933 - /** 934 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 935 - */ 936 - export const complexTypesOptions = (options: Options<ComplexTypesData>, queryOpts?: object) => { return queryOptions({ 937 - ...queryOpts, 1032 + export const complexTypesOptions = (options: Options<ComplexTypesData>) => { return queryOptions({ 938 1033 queryFn: async ({ queryKey }) => { 939 1034 const { data } = await complexTypes({ 1035 + ...options, 940 1036 ...queryKey[0].params, 941 1037 throwOnError: true 942 1038 }); ··· 955 1051 ] 956 1052 }); }; 957 1053 958 - /** 959 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 960 - */ 961 - export const multipartRequestOptions = (options?: Options<MultipartRequestData>, queryOpts?: object) => { return queryOptions({ 962 - ...queryOpts, 1054 + export const multipartRequestOptions = (options?: Options<MultipartRequestData>) => { return queryOptions({ 963 1055 queryFn: async ({ queryKey }) => { 964 1056 const { data } = await multipartRequest({ 1057 + ...options, 965 1058 ...queryKey[0].params, 966 1059 throwOnError: true 967 1060 }); ··· 980 1073 ] 981 1074 }); }; 982 1075 983 - /** 984 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 985 - */ 986 - export const multipartResponseOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 987 - ...queryOpts, 1076 + export const multipartRequestMutation: UseMutationOptions<void, DefaultError, Options<MultipartRequestData>> = { 1077 + mutationFn: async (options) => { 1078 + const { data } = await multipartRequest({ 1079 + ...options, 1080 + throwOnError: true 1081 + }); 1082 + return data; 1083 + } 1084 + }; 1085 + 1086 + export const multipartResponseOptions = (options?: Options) => { return queryOptions({ 988 1087 queryFn: async ({ queryKey }) => { 989 1088 const { data } = await multipartResponse({ 1089 + ...options, 990 1090 ...queryKey[0].params, 991 1091 throwOnError: true 992 1092 }); ··· 1005 1105 ] 1006 1106 }); }; 1007 1107 1008 - /** 1009 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 1010 - */ 1011 - export const complexParamsOptions = (options: Options<ComplexParamsData>, queryOpts?: object) => { return queryOptions({ 1012 - ...queryOpts, 1108 + export const complexParamsOptions = (options: Options<ComplexParamsData>) => { return queryOptions({ 1013 1109 queryFn: async ({ queryKey }) => { 1014 1110 const { data } = await complexParams({ 1111 + ...options, 1015 1112 ...queryKey[0].params, 1016 1113 throwOnError: true 1017 1114 }); ··· 1030 1127 ] 1031 1128 }); }; 1032 1129 1033 - /** 1034 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 1035 - */ 1036 - export const callWithResultFromHeaderOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 1037 - ...queryOpts, 1130 + export const complexParamsMutation: UseMutationOptions<ComplexParamsResponse, ComplexParamsError, Options<ComplexParamsData>> = { 1131 + mutationFn: async (options) => { 1132 + const { data } = await complexParams({ 1133 + ...options, 1134 + throwOnError: true 1135 + }); 1136 + return data; 1137 + } 1138 + }; 1139 + 1140 + export const callWithResultFromHeaderOptions = (options?: Options) => { return queryOptions({ 1038 1141 queryFn: async ({ queryKey }) => { 1039 1142 const { data } = await callWithResultFromHeader({ 1143 + ...options, 1040 1144 ...queryKey[0].params, 1041 1145 throwOnError: true 1042 1146 }); ··· 1055 1159 ] 1056 1160 }); }; 1057 1161 1058 - /** 1059 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 1060 - */ 1061 - export const testErrorCodeOptions = (options: Options<TestErrorCodeData>, queryOpts?: object) => { return queryOptions({ 1062 - ...queryOpts, 1162 + export const callWithResultFromHeaderMutation: UseMutationOptions<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError, Options> = { 1163 + mutationFn: async (options) => { 1164 + const { data } = await callWithResultFromHeader({ 1165 + ...options, 1166 + throwOnError: true 1167 + }); 1168 + return data; 1169 + } 1170 + }; 1171 + 1172 + export const testErrorCodeOptions = (options: Options<TestErrorCodeData>) => { return queryOptions({ 1063 1173 queryFn: async ({ queryKey }) => { 1064 1174 const { data } = await testErrorCode({ 1175 + ...options, 1065 1176 ...queryKey[0].params, 1066 1177 throwOnError: true 1067 1178 }); ··· 1080 1191 ] 1081 1192 }); }; 1082 1193 1083 - /** 1084 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 1085 - */ 1086 - export const nonAsciiæøåÆøÅöôêÊ字符串Options = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>, queryOpts?: object) => { return queryOptions({ 1087 - ...queryOpts, 1194 + export const testErrorCodeMutation: UseMutationOptions<TestErrorCodeResponse, TestErrorCodeError, Options<TestErrorCodeData>> = { 1195 + mutationFn: async (options) => { 1196 + const { data } = await testErrorCode({ 1197 + ...options, 1198 + throwOnError: true 1199 + }); 1200 + return data; 1201 + } 1202 + }; 1203 + 1204 + export const nonAsciiæøåÆøÅöôêÊ字符串Options = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return queryOptions({ 1088 1205 queryFn: async ({ queryKey }) => { 1089 1206 const { data } = await nonAsciiæøåÆøÅöôêÊ字符串({ 1207 + ...options, 1090 1208 ...queryKey[0].params, 1091 1209 throwOnError: true 1092 1210 }); ··· 1105 1223 ] 1106 1224 }); }; 1107 1225 1108 - /** 1109 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 1110 - */ 1111 - export const putWithFormUrlEncodedOptions = (options: Options<PutWithFormUrlEncodedData>, queryOpts?: object) => { return queryOptions({ 1112 - ...queryOpts, 1226 + export const nonAsciiæøåÆøÅöôêÊ字符串Mutation: UseMutationOptions<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error, Options<NonAsciiæøåÆøÅöôêÊ字符串Data>> = { 1227 + mutationFn: async (options) => { 1228 + const { data } = await nonAsciiæøåÆøÅöôêÊ字符串({ 1229 + ...options, 1230 + throwOnError: true 1231 + }); 1232 + return data; 1233 + } 1234 + }; 1235 + 1236 + export const putWithFormUrlEncodedOptions = (options: Options<PutWithFormUrlEncodedData>) => { return queryOptions({ 1113 1237 queryFn: async ({ queryKey }) => { 1114 1238 const { data } = await putWithFormUrlEncoded({ 1239 + ...options, 1115 1240 ...queryKey[0].params, 1116 1241 throwOnError: true 1117 1242 }); ··· 1128 1253 } 1129 1254 } 1130 1255 ] 1131 - }); }; 1256 + }); }; 1257 + 1258 + export const putWithFormUrlEncodedMutation: UseMutationOptions<void, DefaultError, Options<PutWithFormUrlEncodedData>> = { 1259 + mutationFn: async (options) => { 1260 + const { data } = await putWithFormUrlEncoded({ 1261 + ...options, 1262 + throwOnError: true 1263 + }); 1264 + return data; 1265 + } 1266 + };
+198
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_plugin_tanstack-react-query_transform/@tanstack/query.gen.ts.snap
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options } from '@hey-api/client-fetch'; 4 + import { type UseMutationOptions, queryOptions } from '@tanstack/react-query'; 5 + import { parentModelWithDates, modelWithDates, modelWithDatesArray, arrayOfDates, date, multipleResponses } from '../services.gen'; 6 + import type { ParentModelWithDatesError, ParentModelWithDatesResponse, ModelWithDatesError, ModelWithDatesResponse, ModelWithDatesArrayError, ModelWithDatesArrayResponse, ArrayOfDatesError, ArrayOfDatesResponse, DateError, DateResponse, MultipleResponsesError, MultipleResponsesResponse } from '../types.gen'; 7 + 8 + export const parentModelWithDatesOptions = (options?: Options) => { return queryOptions({ 9 + queryFn: async ({ queryKey }) => { 10 + const { data } = await parentModelWithDates({ 11 + ...options, 12 + ...queryKey[0].params, 13 + throwOnError: true 14 + }); 15 + return data; 16 + }, 17 + queryKey: [ 18 + { 19 + scope: 'parentModelWithDates', 20 + params: { 21 + body: options?.body, 22 + headers: options?.headers, 23 + path: options?.path, 24 + query: options?.query 25 + } 26 + } 27 + ] 28 + }); }; 29 + 30 + export const parentModelWithDatesMutation: UseMutationOptions<ParentModelWithDatesResponse, ParentModelWithDatesError, Options> = { 31 + mutationFn: async (options) => { 32 + const { data } = await parentModelWithDates({ 33 + ...options, 34 + throwOnError: true 35 + }); 36 + return data; 37 + } 38 + }; 39 + 40 + export const modelWithDatesOptions = (options?: Options) => { return queryOptions({ 41 + queryFn: async ({ queryKey }) => { 42 + const { data } = await modelWithDates({ 43 + ...options, 44 + ...queryKey[0].params, 45 + throwOnError: true 46 + }); 47 + return data; 48 + }, 49 + queryKey: [ 50 + { 51 + scope: 'modelWithDates', 52 + params: { 53 + body: options?.body, 54 + headers: options?.headers, 55 + path: options?.path, 56 + query: options?.query 57 + } 58 + } 59 + ] 60 + }); }; 61 + 62 + export const modelWithDatesMutation: UseMutationOptions<ModelWithDatesResponse, ModelWithDatesError, Options> = { 63 + mutationFn: async (options) => { 64 + const { data } = await modelWithDates({ 65 + ...options, 66 + throwOnError: true 67 + }); 68 + return data; 69 + } 70 + }; 71 + 72 + export const modelWithDatesArrayOptions = (options?: Options) => { return queryOptions({ 73 + queryFn: async ({ queryKey }) => { 74 + const { data } = await modelWithDatesArray({ 75 + ...options, 76 + ...queryKey[0].params, 77 + throwOnError: true 78 + }); 79 + return data; 80 + }, 81 + queryKey: [ 82 + { 83 + scope: 'modelWithDatesArray', 84 + params: { 85 + body: options?.body, 86 + headers: options?.headers, 87 + path: options?.path, 88 + query: options?.query 89 + } 90 + } 91 + ] 92 + }); }; 93 + 94 + export const modelWithDatesArrayMutation: UseMutationOptions<ModelWithDatesArrayResponse, ModelWithDatesArrayError, Options> = { 95 + mutationFn: async (options) => { 96 + const { data } = await modelWithDatesArray({ 97 + ...options, 98 + throwOnError: true 99 + }); 100 + return data; 101 + } 102 + }; 103 + 104 + export const arrayOfDatesOptions = (options?: Options) => { return queryOptions({ 105 + queryFn: async ({ queryKey }) => { 106 + const { data } = await arrayOfDates({ 107 + ...options, 108 + ...queryKey[0].params, 109 + throwOnError: true 110 + }); 111 + return data; 112 + }, 113 + queryKey: [ 114 + { 115 + scope: 'arrayOfDates', 116 + params: { 117 + body: options?.body, 118 + headers: options?.headers, 119 + path: options?.path, 120 + query: options?.query 121 + } 122 + } 123 + ] 124 + }); }; 125 + 126 + export const arrayOfDatesMutation: UseMutationOptions<ArrayOfDatesResponse, ArrayOfDatesError, Options> = { 127 + mutationFn: async (options) => { 128 + const { data } = await arrayOfDates({ 129 + ...options, 130 + throwOnError: true 131 + }); 132 + return data; 133 + } 134 + }; 135 + 136 + export const dateOptions = (options?: Options) => { return queryOptions({ 137 + queryFn: async ({ queryKey }) => { 138 + const { data } = await date({ 139 + ...options, 140 + ...queryKey[0].params, 141 + throwOnError: true 142 + }); 143 + return data; 144 + }, 145 + queryKey: [ 146 + { 147 + scope: 'date', 148 + params: { 149 + body: options?.body, 150 + headers: options?.headers, 151 + path: options?.path, 152 + query: options?.query 153 + } 154 + } 155 + ] 156 + }); }; 157 + 158 + export const dateMutation: UseMutationOptions<DateResponse, DateError, Options> = { 159 + mutationFn: async (options) => { 160 + const { data } = await date({ 161 + ...options, 162 + throwOnError: true 163 + }); 164 + return data; 165 + } 166 + }; 167 + 168 + export const multipleResponsesOptions = (options?: Options) => { return queryOptions({ 169 + queryFn: async ({ queryKey }) => { 170 + const { data } = await multipleResponses({ 171 + ...options, 172 + ...queryKey[0].params, 173 + throwOnError: true 174 + }); 175 + return data; 176 + }, 177 + queryKey: [ 178 + { 179 + scope: 'multipleResponses', 180 + params: { 181 + body: options?.body, 182 + headers: options?.headers, 183 + path: options?.path, 184 + query: options?.query 185 + } 186 + } 187 + ] 188 + }); }; 189 + 190 + export const multipleResponsesMutation: UseMutationOptions<MultipleResponsesResponse, MultipleResponsesError, Options> = { 191 + mutationFn: async (options) => { 192 + const { data } = await multipleResponses({ 193 + ...options, 194 + throwOnError: true 195 + }); 196 + return data; 197 + } 198 + };
+6 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_plugin_tanstack-react-query_transform/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const parentModelWithDates = (options?: Options) => { return (options?.client ?? client).post<ParentModelWithDatesResponse, ParentModelWithDatesError>({ 8 + export const parentModelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ParentModelWithDatesResponse, ParentModelWithDatesError>({ 9 9 ...options, 10 10 url: '/api/model-with-dates', 11 11 responseTransformer: ParentModelWithDatesResponseTransformer 12 12 }); }; 13 13 14 - export const modelWithDates = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesResponse, ModelWithDatesError>({ 14 + export const modelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesResponse, ModelWithDatesError>({ 15 15 ...options, 16 16 url: '/api/model-with-dates', 17 17 responseTransformer: ModelWithDatesResponseTransformer 18 18 }); }; 19 19 20 - export const modelWithDatesArray = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 20 + export const modelWithDatesArray = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 21 21 ...options, 22 22 url: '/api/model-with-dates-array', 23 23 responseTransformer: ModelWithDatesArrayResponseTransformer 24 24 }); }; 25 25 26 - export const arrayOfDates = (options?: Options) => { return (options?.client ?? client).put<ArrayOfDatesResponse, ArrayOfDatesError>({ 26 + export const arrayOfDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ArrayOfDatesResponse, ArrayOfDatesError>({ 27 27 ...options, 28 28 url: '/api/array-of-dates' 29 29 }); }; 30 30 31 - export const date = (options?: Options) => { return (options?.client ?? client).put<DateResponse, DateError>({ 31 + export const date = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, DateResponse, DateError>({ 32 32 ...options, 33 33 url: '/api/date' 34 34 }); }; 35 35 36 - export const multipleResponses = (options?: Options) => { return (options?.client ?? client).put<MultipleResponsesResponse, MultipleResponsesError>({ 36 + export const multipleResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, MultipleResponsesResponse, MultipleResponsesError>({ 37 37 ...options, 38 38 url: '/api/multiple-responses' 39 39 }); };
-155
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_plugin_tanstack-react-query_transform/tanstack-query.gen.ts.snap
··· 1 - // This file is auto-generated by @hey-api/openapi-ts 2 - 3 - import type { Options } from '@hey-api/client-fetch'; 4 - import { queryOptions } from '@tanstack/react-query'; 5 - import { parentModelWithDates, modelWithDates, modelWithDatesArray, arrayOfDates, date, multipleResponses } from './services.gen'; 6 - 7 - /** 8 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 9 - */ 10 - export const parentModelWithDatesOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 11 - ...queryOpts, 12 - queryFn: async ({ queryKey }) => { 13 - const { data } = await parentModelWithDates({ 14 - ...queryKey[0].params, 15 - throwOnError: true 16 - }); 17 - return data; 18 - }, 19 - queryKey: [ 20 - { 21 - scope: 'parentModelWithDates', 22 - params: { 23 - body: options?.body, 24 - headers: options?.headers, 25 - path: options?.path, 26 - query: options?.query 27 - } 28 - } 29 - ] 30 - }); }; 31 - 32 - /** 33 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 34 - */ 35 - export const modelWithDatesOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 36 - ...queryOpts, 37 - queryFn: async ({ queryKey }) => { 38 - const { data } = await modelWithDates({ 39 - ...queryKey[0].params, 40 - throwOnError: true 41 - }); 42 - return data; 43 - }, 44 - queryKey: [ 45 - { 46 - scope: 'modelWithDates', 47 - params: { 48 - body: options?.body, 49 - headers: options?.headers, 50 - path: options?.path, 51 - query: options?.query 52 - } 53 - } 54 - ] 55 - }); }; 56 - 57 - /** 58 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 59 - */ 60 - export const modelWithDatesArrayOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 61 - ...queryOpts, 62 - queryFn: async ({ queryKey }) => { 63 - const { data } = await modelWithDatesArray({ 64 - ...queryKey[0].params, 65 - throwOnError: true 66 - }); 67 - return data; 68 - }, 69 - queryKey: [ 70 - { 71 - scope: 'modelWithDatesArray', 72 - params: { 73 - body: options?.body, 74 - headers: options?.headers, 75 - path: options?.path, 76 - query: options?.query 77 - } 78 - } 79 - ] 80 - }); }; 81 - 82 - /** 83 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 84 - */ 85 - export const arrayOfDatesOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 86 - ...queryOpts, 87 - queryFn: async ({ queryKey }) => { 88 - const { data } = await arrayOfDates({ 89 - ...queryKey[0].params, 90 - throwOnError: true 91 - }); 92 - return data; 93 - }, 94 - queryKey: [ 95 - { 96 - scope: 'arrayOfDates', 97 - params: { 98 - body: options?.body, 99 - headers: options?.headers, 100 - path: options?.path, 101 - query: options?.query 102 - } 103 - } 104 - ] 105 - }); }; 106 - 107 - /** 108 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 109 - */ 110 - export const dateOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 111 - ...queryOpts, 112 - queryFn: async ({ queryKey }) => { 113 - const { data } = await date({ 114 - ...queryKey[0].params, 115 - throwOnError: true 116 - }); 117 - return data; 118 - }, 119 - queryKey: [ 120 - { 121 - scope: 'date', 122 - params: { 123 - body: options?.body, 124 - headers: options?.headers, 125 - path: options?.path, 126 - query: options?.query 127 - } 128 - } 129 - ] 130 - }); }; 131 - 132 - /** 133 - * TODO: describe arguments, options is Hey API, queryOpts is TanStack Query 134 - */ 135 - export const multipleResponsesOptions = (options?: Options, queryOpts?: object) => { return queryOptions({ 136 - ...queryOpts, 137 - queryFn: async ({ queryKey }) => { 138 - const { data } = await multipleResponses({ 139 - ...queryKey[0].params, 140 - throwOnError: true 141 - }); 142 - return data; 143 - }, 144 - queryKey: [ 145 - { 146 - scope: 'multipleResponses', 147 - params: { 148 - body: options?.body, 149 - headers: options?.headers, 150 - path: options?.path, 151 - query: options?.query 152 - } 153 - } 154 - ] 155 - }); };
+6 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch_transform/services.gen.ts.snap
··· 5 5 6 6 export const client = createClient(createConfig()); 7 7 8 - export const parentModelWithDates = (options?: Options) => { return (options?.client ?? client).post<ParentModelWithDatesResponse, ParentModelWithDatesError>({ 8 + export const parentModelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).post<ThrowOnError, ParentModelWithDatesResponse, ParentModelWithDatesError>({ 9 9 ...options, 10 10 url: '/api/model-with-dates', 11 11 responseTransformer: ParentModelWithDatesResponseTransformer 12 12 }); }; 13 13 14 - export const modelWithDates = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesResponse, ModelWithDatesError>({ 14 + export const modelWithDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesResponse, ModelWithDatesError>({ 15 15 ...options, 16 16 url: '/api/model-with-dates', 17 17 responseTransformer: ModelWithDatesResponseTransformer 18 18 }); }; 19 19 20 - export const modelWithDatesArray = (options?: Options) => { return (options?.client ?? client).put<ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 20 + export const modelWithDatesArray = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ModelWithDatesArrayResponse, ModelWithDatesArrayError>({ 21 21 ...options, 22 22 url: '/api/model-with-dates-array', 23 23 responseTransformer: ModelWithDatesArrayResponseTransformer 24 24 }); }; 25 25 26 - export const arrayOfDates = (options?: Options) => { return (options?.client ?? client).put<ArrayOfDatesResponse, ArrayOfDatesError>({ 26 + export const arrayOfDates = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, ArrayOfDatesResponse, ArrayOfDatesError>({ 27 27 ...options, 28 28 url: '/api/array-of-dates' 29 29 }); }; 30 30 31 - export const date = (options?: Options) => { return (options?.client ?? client).put<DateResponse, DateError>({ 31 + export const date = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, DateResponse, DateError>({ 32 32 ...options, 33 33 url: '/api/date' 34 34 }); }; 35 35 36 - export const multipleResponses = (options?: Options) => { return (options?.client ?? client).put<MultipleResponsesResponse, MultipleResponsesError>({ 36 + export const multipleResponses = <ThrowOnError extends boolean = false>(options?: Options<unknown, ThrowOnError>) => { return (options?.client ?? client).put<ThrowOnError, MultipleResponsesResponse, MultipleResponsesError>({ 37 37 ...options, 38 38 url: '/api/multiple-responses' 39 39 }); };
+7 -7
packages/openapi-ts/test/__snapshots__/test/generated/v3_services_filter/services.gen.ts.snap
··· 7 7 /** 8 8 * @throws ApiError 9 9 */ 10 - export const getCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 10 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 11 11 method: 'GET', 12 12 url: '/api/v{api-version}/simple' 13 13 }); }; ··· 15 15 /** 16 16 * @throws ApiError 17 17 */ 18 - export const putCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 18 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 19 19 method: 'PUT', 20 20 url: '/api/v{api-version}/simple' 21 21 }); }; ··· 23 23 /** 24 24 * @throws ApiError 25 25 */ 26 - export const postCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 26 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 27 27 method: 'POST', 28 28 url: '/api/v{api-version}/simple' 29 29 }); }; ··· 31 31 /** 32 32 * @throws ApiError 33 33 */ 34 - export const deleteCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 34 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 35 35 method: 'DELETE', 36 36 url: '/api/v{api-version}/simple' 37 37 }); }; ··· 39 39 /** 40 40 * @throws ApiError 41 41 */ 42 - export const optionsCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 42 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 43 43 method: 'OPTIONS', 44 44 url: '/api/v{api-version}/simple' 45 45 }); }; ··· 47 47 /** 48 48 * @throws ApiError 49 49 */ 50 - export const headCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 50 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 51 51 method: 'HEAD', 52 52 url: '/api/v{api-version}/simple' 53 53 }); }; ··· 55 55 /** 56 56 * @throws ApiError 57 57 */ 58 - export const patchCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 58 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 59 59 method: 'PATCH', 60 60 url: '/api/v{api-version}/simple' 61 61 }); };
+45 -45
packages/openapi-ts/test/__snapshots__/test/generated/v3_tree_shakeable/services.gen.ts.snap
··· 8 8 /** 9 9 * @throws ApiError 10 10 */ 11 - export const export_ = (): CancelablePromise<void> => { return __request(OpenAPI, { 11 + export const export_ = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 12 12 method: 'GET', 13 13 url: '/api/v{api-version}/no-tag' 14 14 }); }; ··· 20 20 * @returns ModelWithReadOnlyAndWriteOnly Default success response 21 21 * @throws ApiError 22 22 */ 23 - export const import_ = (data: ImportData): CancelablePromise<ImportResponse> => { return __request(OpenAPI, { 23 + export const import_ = <ThrowOnError extends boolean = false>(data: ImportData): CancelablePromise<ImportResponse> => { return __request(OpenAPI, { 24 24 method: 'POST', 25 25 url: '/api/v{api-version}/no-tag', 26 26 body: data.requestBody, ··· 31 31 * @returns Model_From_Zendesk Success 32 32 * @throws ApiError 33 33 */ 34 - export const apiVVersionOdataControllerCount = (): CancelablePromise<ApiVversionOdataControllerCountResponse> => { return __request(OpenAPI, { 34 + export const apiVVersionOdataControllerCount = <ThrowOnError extends boolean = false>(): CancelablePromise<ApiVversionOdataControllerCountResponse> => { return __request(OpenAPI, { 35 35 method: 'GET', 36 36 url: '/api/v{api-version}/simple/$count' 37 37 }); }; ··· 39 39 /** 40 40 * @throws ApiError 41 41 */ 42 - export const getCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 42 + export const getCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 43 43 method: 'GET', 44 44 url: '/api/v{api-version}/simple' 45 45 }); }; ··· 47 47 /** 48 48 * @throws ApiError 49 49 */ 50 - export const putCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 50 + export const putCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 51 51 method: 'PUT', 52 52 url: '/api/v{api-version}/simple' 53 53 }); }; ··· 55 55 /** 56 56 * @throws ApiError 57 57 */ 58 - export const postCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 58 + export const postCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 59 59 method: 'POST', 60 60 url: '/api/v{api-version}/simple' 61 61 }); }; ··· 63 63 /** 64 64 * @throws ApiError 65 65 */ 66 - export const deleteCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 66 + export const deleteCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 67 67 method: 'DELETE', 68 68 url: '/api/v{api-version}/simple' 69 69 }); }; ··· 71 71 /** 72 72 * @throws ApiError 73 73 */ 74 - export const optionsCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 74 + export const optionsCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 75 75 method: 'OPTIONS', 76 76 url: '/api/v{api-version}/simple' 77 77 }); }; ··· 79 79 /** 80 80 * @throws ApiError 81 81 */ 82 - export const headCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 82 + export const headCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 83 83 method: 'HEAD', 84 84 url: '/api/v{api-version}/simple' 85 85 }); }; ··· 87 87 /** 88 88 * @throws ApiError 89 89 */ 90 - export const patchCallWithoutParametersAndResponse = (): CancelablePromise<void> => { return __request(OpenAPI, { 90 + export const patchCallWithoutParametersAndResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 91 91 method: 'PATCH', 92 92 url: '/api/v{api-version}/simple' 93 93 }); }; ··· 99 99 * @param data.xFooBar Parameter with illegal characters 100 100 * @throws ApiError 101 101 */ 102 - export const deleteFoo = (data: DeleteFooData3): CancelablePromise<void> => { return __request(OpenAPI, { 102 + export const deleteFoo = <ThrowOnError extends boolean = false>(data: DeleteFooData3): CancelablePromise<void> => { return __request(OpenAPI, { 103 103 method: 'DELETE', 104 104 url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 105 105 path: { ··· 124 124 * @param data.parameterWithReservedCharacters Testing reserved characters in string: * inline * and ** inline ** should work 125 125 * @throws ApiError 126 126 */ 127 - export const callWithDescriptions = (data: CallWithDescriptionsData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 127 + export const callWithDescriptions = <ThrowOnError extends boolean = false>(data: CallWithDescriptionsData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 128 128 method: 'POST', 129 129 url: '/api/v{api-version}/descriptions/', 130 130 query: { ··· 143 143 * @param data.parameter This parameter is deprecated 144 144 * @throws ApiError 145 145 */ 146 - export const deprecatedCall = (data: DeprecatedCallData): CancelablePromise<void> => { return __request(OpenAPI, { 146 + export const deprecatedCall = <ThrowOnError extends boolean = false>(data: DeprecatedCallData): CancelablePromise<void> => { return __request(OpenAPI, { 147 147 method: 'POST', 148 148 url: '/api/v{api-version}/parameters/deprecated', 149 149 headers: { ··· 162 162 * @param data.fooRefEnum 163 163 * @throws ApiError 164 164 */ 165 - export const callWithParameters = (data: CallWithParametersData): CancelablePromise<void> => { return __request(OpenAPI, { 165 + export const callWithParameters = <ThrowOnError extends boolean = false>(data: CallWithParametersData): CancelablePromise<void> => { return __request(OpenAPI, { 166 166 method: 'POST', 167 167 url: '/api/v{api-version}/parameters/{parameterPath}', 168 168 path: { ··· 195 195 * @param data._default This is the parameter with a reserved keyword 196 196 * @throws ApiError 197 197 */ 198 - export const callWithWeirdParameterNames = (data: CallWithWeirdParameterNamesData): CancelablePromise<void> => { return __request(OpenAPI, { 198 + export const callWithWeirdParameterNames = <ThrowOnError extends boolean = false>(data: CallWithWeirdParameterNamesData): CancelablePromise<void> => { return __request(OpenAPI, { 199 199 method: 'POST', 200 200 url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}', 201 201 path: { ··· 223 223 * @param data.parameter This is an optional parameter 224 224 * @throws ApiError 225 225 */ 226 - export const getCallWithOptionalParam = (data: GetCallWithOptionalParamData): CancelablePromise<void> => { return __request(OpenAPI, { 226 + export const getCallWithOptionalParam = <ThrowOnError extends boolean = false>(data: GetCallWithOptionalParamData): CancelablePromise<void> => { return __request(OpenAPI, { 227 227 method: 'GET', 228 228 url: '/api/v{api-version}/parameters/', 229 229 query: { ··· 239 239 * @param data.requestBody This is an optional parameter 240 240 * @throws ApiError 241 241 */ 242 - export const postCallWithOptionalParam = (data: PostCallWithOptionalParamData): CancelablePromise<void> => { return __request(OpenAPI, { 242 + export const postCallWithOptionalParam = <ThrowOnError extends boolean = false>(data: PostCallWithOptionalParamData): CancelablePromise<void> => { return __request(OpenAPI, { 243 243 method: 'POST', 244 244 url: '/api/v{api-version}/parameters/', 245 245 query: { ··· 255 255 * @param data.foo A reusable request body 256 256 * @throws ApiError 257 257 */ 258 - export const postApiRequestBody = (data: PostApiRequestBodyData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 258 + export const postApiRequestBody = <ThrowOnError extends boolean = false>(data: PostApiRequestBodyData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 259 259 method: 'POST', 260 260 url: '/api/v{api-version}/requestBody/', 261 261 query: { ··· 271 271 * @param data.formData A reusable request body 272 272 * @throws ApiError 273 273 */ 274 - export const postApiFormData = (data: PostApiFormDataData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 274 + export const postApiFormData = <ThrowOnError extends boolean = false>(data: PostApiFormDataData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 275 275 method: 'POST', 276 276 url: '/api/v{api-version}/formData/', 277 277 query: { ··· 290 290 * @param data.parameterModel This is a simple model with default value 291 291 * @throws ApiError 292 292 */ 293 - export const callWithDefaultParameters = (data: CallWithDefaultParametersData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 293 + export const callWithDefaultParameters = <ThrowOnError extends boolean = false>(data: CallWithDefaultParametersData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 294 294 method: 'GET', 295 295 url: '/api/v{api-version}/defaults', 296 296 query: { ··· 311 311 * @param data.parameterModel This is a simple model that is optional with default value 312 312 * @throws ApiError 313 313 */ 314 - export const callWithDefaultOptionalParameters = (data: CallWithDefaultOptionalParametersData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 314 + export const callWithDefaultOptionalParameters = <ThrowOnError extends boolean = false>(data: CallWithDefaultOptionalParametersData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 315 315 method: 'POST', 316 316 url: '/api/v{api-version}/defaults', 317 317 query: { ··· 335 335 * @param data.parameterStringNullableWithDefault This is a string that can be null with default 336 336 * @throws ApiError 337 337 */ 338 - export const callToTestOrderOfParams = (data: CallToTestOrderOfParamsData): CancelablePromise<void> => { return __request(OpenAPI, { 338 + export const callToTestOrderOfParams = <ThrowOnError extends boolean = false>(data: CallToTestOrderOfParamsData): CancelablePromise<void> => { return __request(OpenAPI, { 339 339 method: 'PUT', 340 340 url: '/api/v{api-version}/defaults', 341 341 query: { ··· 353 353 /** 354 354 * @throws ApiError 355 355 */ 356 - export const duplicateName = (): CancelablePromise<void> => { return __request(OpenAPI, { 356 + export const duplicateName = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 357 357 method: 'GET', 358 358 url: '/api/v{api-version}/duplicate' 359 359 }); }; ··· 361 361 /** 362 362 * @throws ApiError 363 363 */ 364 - export const duplicateName1 = (): CancelablePromise<void> => { return __request(OpenAPI, { 364 + export const duplicateName1 = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 365 365 method: 'POST', 366 366 url: '/api/v{api-version}/duplicate' 367 367 }); }; ··· 369 369 /** 370 370 * @throws ApiError 371 371 */ 372 - export const duplicateName2 = (): CancelablePromise<void> => { return __request(OpenAPI, { 372 + export const duplicateName2 = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 373 373 method: 'PUT', 374 374 url: '/api/v{api-version}/duplicate' 375 375 }); }; ··· 377 377 /** 378 378 * @throws ApiError 379 379 */ 380 - export const duplicateName3 = (): CancelablePromise<void> => { return __request(OpenAPI, { 380 + export const duplicateName3 = <ThrowOnError extends boolean = false>(): CancelablePromise<void> => { return __request(OpenAPI, { 381 381 method: 'DELETE', 382 382 url: '/api/v{api-version}/duplicate' 383 383 }); }; ··· 386 386 * @returns void Success 387 387 * @throws ApiError 388 388 */ 389 - export const callWithNoContentResponse = (): CancelablePromise<CallWithNoContentResponseResponse> => { return __request(OpenAPI, { 389 + export const callWithNoContentResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<CallWithNoContentResponseResponse> => { return __request(OpenAPI, { 390 390 method: 'GET', 391 391 url: '/api/v{api-version}/no-content' 392 392 }); }; ··· 396 396 * @returns void Success 397 397 * @throws ApiError 398 398 */ 399 - export const callWithResponseAndNoContentResponse = (): CancelablePromise<CallWithResponseAndNoContentResponseResponse> => { return __request(OpenAPI, { 399 + export const callWithResponseAndNoContentResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<CallWithResponseAndNoContentResponseResponse> => { return __request(OpenAPI, { 400 400 method: 'GET', 401 401 url: '/api/v{api-version}/multiple-tags/response-and-no-content' 402 402 }); }; ··· 405 405 * @returns _400 406 406 * @throws ApiError 407 407 */ 408 - export const dummyA = (): CancelablePromise<DummyAResponse> => { return __request(OpenAPI, { 408 + export const dummyA = <ThrowOnError extends boolean = false>(): CancelablePromise<DummyAResponse> => { return __request(OpenAPI, { 409 409 method: 'GET', 410 410 url: '/api/v{api-version}/multiple-tags/a' 411 411 }); }; ··· 414 414 * @returns void Success 415 415 * @throws ApiError 416 416 */ 417 - export const dummyB = (): CancelablePromise<DummyBResponse> => { return __request(OpenAPI, { 417 + export const dummyB = <ThrowOnError extends boolean = false>(): CancelablePromise<DummyBResponse> => { return __request(OpenAPI, { 418 418 method: 'GET', 419 419 url: '/api/v{api-version}/multiple-tags/b' 420 420 }); }; ··· 423 423 * @returns import 424 424 * @throws ApiError 425 425 */ 426 - export const callWithResponse = (): CancelablePromise<CallWithResponseResponse> => { return __request(OpenAPI, { 426 + export const callWithResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<CallWithResponseResponse> => { return __request(OpenAPI, { 427 427 method: 'GET', 428 428 url: '/api/v{api-version}/response' 429 429 }); }; ··· 434 434 * @returns ModelWithString Message for 202 response 435 435 * @throws ApiError 436 436 */ 437 - export const callWithDuplicateResponses = (): CancelablePromise<CallWithDuplicateResponsesResponse> => { return __request(OpenAPI, { 437 + export const callWithDuplicateResponses = <ThrowOnError extends boolean = false>(): CancelablePromise<CallWithDuplicateResponsesResponse> => { return __request(OpenAPI, { 438 438 method: 'POST', 439 439 url: '/api/v{api-version}/response', 440 440 errors: { ··· 452 452 * @returns ModelThatExtendsExtends Message for 202 response 453 453 * @throws ApiError 454 454 */ 455 - export const callWithResponses = (): CancelablePromise<CallWithResponsesResponse> => { return __request(OpenAPI, { 455 + export const callWithResponses = <ThrowOnError extends boolean = false>(): CancelablePromise<CallWithResponsesResponse> => { return __request(OpenAPI, { 456 456 method: 'PUT', 457 457 url: '/api/v{api-version}/response', 458 458 errors: { ··· 472 472 * @param data.parameterArrayMulti This is an array parameter that is sent as multi format (multiple parameter instances) 473 473 * @throws ApiError 474 474 */ 475 - export const collectionFormat = (data: CollectionFormatData): CancelablePromise<void> => { return __request(OpenAPI, { 475 + export const collectionFormat = <ThrowOnError extends boolean = false>(data: CollectionFormatData): CancelablePromise<void> => { return __request(OpenAPI, { 476 476 method: 'GET', 477 477 url: '/api/v{api-version}/collectionFormat', 478 478 query: { ··· 500 500 * @returns unknown Response is a simple object 501 501 * @throws ApiError 502 502 */ 503 - export const types = (data: TypesData): CancelablePromise<TypesResponse> => { return __request(OpenAPI, { 503 + export const types = <ThrowOnError extends boolean = false>(data: TypesData): CancelablePromise<TypesResponse> => { return __request(OpenAPI, { 504 504 method: 'GET', 505 505 url: '/api/v{api-version}/types', 506 506 path: { ··· 523 523 * @returns boolean 524 524 * @throws ApiError 525 525 */ 526 - export const uploadFile = (data: UploadFileData): CancelablePromise<UploadFileResponse> => { return __request(OpenAPI, { 526 + export const uploadFile = <ThrowOnError extends boolean = false>(data: UploadFileData): CancelablePromise<UploadFileResponse> => { return __request(OpenAPI, { 527 527 method: 'POST', 528 528 url: '/api/v{api-version}/upload', 529 529 formData: data.formData, ··· 536 536 * @returns binary Success 537 537 * @throws ApiError 538 538 */ 539 - export const fileResponse = (data: FileResponseData): CancelablePromise<FileResponseResponse> => { return __request(OpenAPI, { 539 + export const fileResponse = <ThrowOnError extends boolean = false>(data: FileResponseData): CancelablePromise<FileResponseResponse> => { return __request(OpenAPI, { 540 540 method: 'GET', 541 541 url: '/api/v{api-version}/file/{id}', 542 542 path: { ··· 551 551 * @returns ModelWithString Successful response 552 552 * @throws ApiError 553 553 */ 554 - export const complexTypes = (data: ComplexTypesData): CancelablePromise<ComplexTypesResponse> => { return __request(OpenAPI, { 554 + export const complexTypes = <ThrowOnError extends boolean = false>(data: ComplexTypesData): CancelablePromise<ComplexTypesResponse> => { return __request(OpenAPI, { 555 555 method: 'GET', 556 556 url: '/api/v{api-version}/complex', 557 557 query: { ··· 569 569 * @param data.formData 570 570 * @throws ApiError 571 571 */ 572 - export const multipartRequest = (data: MultipartRequestData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 572 + export const multipartRequest = <ThrowOnError extends boolean = false>(data: MultipartRequestData = {}): CancelablePromise<void> => { return __request(OpenAPI, { 573 573 method: 'POST', 574 574 url: '/api/v{api-version}/multipart', 575 575 formData: data.formData, ··· 580 580 * @returns unknown OK 581 581 * @throws ApiError 582 582 */ 583 - export const multipartResponse = (): CancelablePromise<MultipartResponseResponse> => { return __request(OpenAPI, { 583 + export const multipartResponse = <ThrowOnError extends boolean = false>(): CancelablePromise<MultipartResponseResponse> => { return __request(OpenAPI, { 584 584 method: 'GET', 585 585 url: '/api/v{api-version}/multipart' 586 586 }); }; ··· 592 592 * @returns ModelWithString Success 593 593 * @throws ApiError 594 594 */ 595 - export const complexParams = (data: ComplexParamsData): CancelablePromise<ComplexParamsResponse> => { return __request(OpenAPI, { 595 + export const complexParams = <ThrowOnError extends boolean = false>(data: ComplexParamsData): CancelablePromise<ComplexParamsResponse> => { return __request(OpenAPI, { 596 596 method: 'PUT', 597 597 url: '/api/v{api-version}/complex/{id}', 598 598 path: { ··· 606 606 * @returns string Successful response 607 607 * @throws ApiError 608 608 */ 609 - export const callWithResultFromHeader = (): CancelablePromise<CallWithResultFromHeaderResponse> => { return __request(OpenAPI, { 609 + export const callWithResultFromHeader = <ThrowOnError extends boolean = false>(): CancelablePromise<CallWithResultFromHeaderResponse> => { return __request(OpenAPI, { 610 610 method: 'POST', 611 611 url: '/api/v{api-version}/header', 612 612 responseHeader: 'operation-location', ··· 622 622 * @returns unknown Custom message: Successful response 623 623 * @throws ApiError 624 624 */ 625 - export const testErrorCode = (data: TestErrorCodeData): CancelablePromise<TestErrorCodeResponse> => { return __request(OpenAPI, { 625 + export const testErrorCode = <ThrowOnError extends boolean = false>(data: TestErrorCodeData): CancelablePromise<TestErrorCodeResponse> => { return __request(OpenAPI, { 626 626 method: 'POST', 627 627 url: '/api/v{api-version}/error', 628 628 query: { ··· 642 642 * @returns NonAsciiStringæøåÆØÅöôêÊ字符串 Successful response 643 643 * @throws ApiError 644 644 */ 645 - export const nonAsciiæøåÆøÅöôêÊ字符串 = (data: NonAsciiæøåÆøÅöôêÊ字符串Data): CancelablePromise<NonAsciiæøåÆøÅöôêÊ字符串Response> => { return __request(OpenAPI, { 645 + export const nonAsciiæøåÆøÅöôêÊ字符串 = <ThrowOnError extends boolean = false>(data: NonAsciiæøåÆøÅöôêÊ字符串Data): CancelablePromise<NonAsciiæøåÆøÅöôêÊ字符串Response> => { return __request(OpenAPI, { 646 646 method: 'POST', 647 647 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', 648 648 query: { ··· 656 656 * @param data.formData 657 657 * @throws ApiError 658 658 */ 659 - export const putWithFormUrlEncoded = (data: PutWithFormUrlEncodedData): CancelablePromise<void> => { return __request(OpenAPI, { 659 + export const putWithFormUrlEncoded = <ThrowOnError extends boolean = false>(data: PutWithFormUrlEncodedData): CancelablePromise<void> => { return __request(OpenAPI, { 660 660 method: 'PUT', 661 661 url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', 662 662 formData: data.formData,
+1
packages/openapi-ts/test/sample.cjs
··· 5 5 const config = { 6 6 client: { 7 7 // bundle: true, 8 + // name: '@hey-api/client-axios', 8 9 name: '@hey-api/client-fetch', 9 10 }, 10 11 debug: true,