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

Merge pull request #2167 from hey-api/fix/tanstack-query-name-builder

fix(tanstack-query): add name builder options for all generated artifacts

authored by

Lubos and committed by
GitHub
1e1c40b5 67125d3b

+5433 -215
+5
.changeset/hip-chefs-drop.md
··· 1 + --- 2 + '@hey-api/openapi-ts': patch 3 + --- 4 + 5 + fix(tanstack-query): add name builder options for all generated artifacts
+5
.changeset/unlucky-kiwis-smile.md
··· 1 + --- 2 + '@hey-api/openapi-ts': patch 3 + --- 4 + 5 + fix(parser): set correct subscription context for plugins
+17
docs/openapi-ts/configuration.md
··· 493 493 }; 494 494 ``` 495 495 496 + ## Pagination 497 + 498 + Paginated operations are detected by having a pagination keyword in its parameters or request body. By default, we consider the following to be pagination keywords: `after`, `before`, `cursor`, `offset`, `page`, and `start`. You can override these keywords by providing your own keywords array using `input.pagination.keywords`. 499 + 500 + ```js 501 + export default { 502 + input: { 503 + pagination: { 504 + keywords: ['custom', 'pagination', 'keywords'], // [!code ++] 505 + }, 506 + path: 'https://get.heyapi.dev/hey-api/backend', 507 + }, 508 + output: 'src/client', 509 + plugins: ['@hey-api/client-fetch'], 510 + }; 511 + ``` 512 + 496 513 ## Patch 497 514 498 515 There are times when you need to modify your input before it's processed further. A common use case is fixing an invalid specification or adding a missing field. You can apply custom patches with `input.patch`.
+11 -12
docs/openapi-ts/plugins/tanstack-query.md
··· 114 114 115 115 ## Queries 116 116 117 - Queries are generated from GET and POST endpoints. The generated functions follow the naming convention of SDK functions and append `Options`, e.g. `getPetByIdOptions()`. 117 + Queries are generated from GET and POST endpoints. The generated query functions follow the naming convention of SDK functions and by default append `Options`, e.g. `getPetByIdOptions()`. 118 118 119 119 ```ts 120 120 const { data, error } = useQuery({ ··· 126 126 }); 127 127 ``` 128 128 129 + You can customize query function names using `queryOptionsNameBuilder`. 130 + 129 131 ## Infinite Queries 130 132 131 - Infinite queries are generated from GET and POST endpoints if we detect a pagination parameter. The generated functions follow the naming convention of SDK functions and append `InfiniteOptions`, e.g. `getFooInfiniteOptions()`. 133 + Infinite queries are generated from GET and POST endpoints if we detect a [pagination](/openapi-ts/configuration#pagination) parameter. The generated infinite query functions follow the naming convention of SDK functions and by default append `InfiniteOptions`, e.g. `getFooInfiniteOptions()`. 132 134 133 135 ```ts 134 136 const { data, error } = useInfiniteQuery({ ··· 142 144 }); 143 145 ``` 144 146 145 - Infinite queries are recognized by having one of these keywords in the endpoint's parameters: 146 - 147 - - after 148 - - before 149 - - cursor 150 - - offset 151 - - page 152 - - start 147 + You can customize infinite query function names using `infiniteQueryOptionsNameBuilder`. 153 148 154 149 ## Mutations 155 150 156 - Mutations are generated from DELETE, PATCH, POST, and PUT endpoints. The generated functions follow the naming convention of SDK functions and append `Mutation`, e.g. `addPetMutation()`. 151 + Mutations are generated from DELETE, PATCH, POST, and PUT endpoints. The generated mutation functions follow the naming convention of SDK functions and by default append `Mutation`, e.g. `addPetMutation()`. 157 152 158 153 ```ts 159 154 const addPet = useMutation({ ··· 170 165 }); 171 166 ``` 172 167 168 + You can customize mutation function names using `mutationOptionsNameBuilder`. 169 + 173 170 ## Query Keys 174 171 175 172 Query keys are generated for both queries and infinite queries. If you have access to the result of query or infinite query options function, you can get the query key from the `queryKey` field. ··· 182 179 }); 183 180 ``` 184 181 185 - Alternatively, you can access the same query key by calling `QueryKey` or `InfiniteQueryKey` function. 182 + Alternatively, you can access the same query key by calling query key functions. The generated query key functions follow the naming convention of SDK functions and by default append `QueryKey` or `InfiniteQueryKey`, e.g. `getPetByIdQueryKey()` or `getPetByIdInfiniteQueryKey()`. 186 183 187 184 ```ts 188 185 const queryKey = getPetByIdQueryKey({ ··· 191 188 }, 192 189 }); 193 190 ``` 191 + 192 + You can customize query key function names using `queryKeyNameBuilder` and `infiniteQueryKeyNameBuilder`. 194 193 195 194 <!--@include: ../../examples.md--> 196 195 <!--@include: ../../sponsors.md-->
+161
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/angular-query-experimental/name-builder/@tanstack/angular-query-experimental.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/angular-query-experimental'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/angular-query-experimental/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/angular-query-experimental/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/angular-query-experimental/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/angular-query-experimental/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: string; 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/react-query/name-builder/@tanstack/react-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/react-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/react-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/react-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/react-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/react-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: string; 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/solid-query/name-builder/@tanstack/solid-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/solid-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/solid-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/solid-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/solid-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/solid-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: string; 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/svelte-query/name-builder/@tanstack/svelte-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/svelte-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/svelte-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/svelte-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/svelte-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/svelte-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: string; 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/vue-query/name-builder/@tanstack/vue-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/vue-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/vue-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/vue-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/vue-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/2.0.x/plugins/@tanstack/vue-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: string; 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/angular-query-experimental/name-builder/@tanstack/angular-query-experimental.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/angular-query-experimental'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/angular-query-experimental/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/angular-query-experimental/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/angular-query-experimental/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/angular-query-experimental/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/react-query/name-builder/@tanstack/react-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/react-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/react-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/react-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/react-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/react-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/solid-query/name-builder/@tanstack/solid-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/solid-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/solid-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/solid-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/solid-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/solid-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/svelte-query/name-builder/@tanstack/svelte-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/svelte-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/svelte-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/svelte-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/svelte-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/svelte-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/vue-query/name-builder/@tanstack/vue-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/vue-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/vue-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/vue-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/vue-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.0.x/plugins/@tanstack/vue-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
-123
packages/openapi-ts-tests/test/__snapshots__/3.1.x/pagination-ref-any-of/@tanstack/react-query.gen.ts
··· 1 - // This file is auto-generated by @hey-api/openapi-ts 2 - 3 - import { type Options, postFoo } from '../sdk.gen'; 4 - import { queryOptions, infiniteQueryOptions, type InfiniteData, type DefaultError, type UseMutationOptions } from '@tanstack/react-query'; 5 - import type { PostFooData } from '../types.gen'; 6 - import { client as _heyApiClient } from '../client.gen'; 7 - 8 - export type QueryKey<TOptions extends Options> = [ 9 - Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 - _id: string; 11 - _infinite?: boolean; 12 - } 13 - ]; 14 - 15 - const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 - QueryKey<TOptions>[0] 17 - ] => { 18 - const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 - if (infinite) { 20 - params._infinite = infinite; 21 - } 22 - if (options?.body) { 23 - params.body = options.body; 24 - } 25 - if (options?.headers) { 26 - params.headers = options.headers; 27 - } 28 - if (options?.path) { 29 - params.path = options.path; 30 - } 31 - if (options?.query) { 32 - params.query = options.query; 33 - } 34 - return [ 35 - params 36 - ]; 37 - }; 38 - 39 - export const postFooQueryKey = (options: Options<PostFooData>) => createQueryKey('postFoo', options); 40 - 41 - export const postFooOptions = (options: Options<PostFooData>) => { 42 - return queryOptions({ 43 - queryFn: async ({ queryKey, signal }) => { 44 - const { data } = await postFoo({ 45 - ...options, 46 - ...queryKey[0], 47 - signal, 48 - throwOnError: true 49 - }); 50 - return data; 51 - }, 52 - queryKey: postFooQueryKey(options) 53 - }); 54 - }; 55 - 56 - const createInfiniteParams = <K extends Pick<QueryKey<Options>[0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey<Options>, page: K) => { 57 - const params = queryKey[0]; 58 - if (page.body) { 59 - params.body = { 60 - ...queryKey[0].body as any, 61 - ...page.body as any 62 - }; 63 - } 64 - if (page.headers) { 65 - params.headers = { 66 - ...queryKey[0].headers, 67 - ...page.headers 68 - }; 69 - } 70 - if (page.path) { 71 - params.path = { 72 - ...queryKey[0].path as any, 73 - ...page.path as any 74 - }; 75 - } 76 - if (page.query) { 77 - params.query = { 78 - ...queryKey[0].query as any, 79 - ...page.query as any 80 - }; 81 - } 82 - return params as unknown as typeof page; 83 - }; 84 - 85 - export const postFooInfiniteQueryKey = (options: Options<PostFooData>): QueryKey<Options<PostFooData>> => createQueryKey('postFoo', options, true); 86 - 87 - export const postFooInfiniteOptions = (options: Options<PostFooData>) => { 88 - return infiniteQueryOptions<unknown, DefaultError, InfiniteData<unknown>, QueryKey<Options<PostFooData>>, number | null | Pick<QueryKey<Options<PostFooData>>[0], 'body' | 'headers' | 'path' | 'query'>>( 89 - // @ts-ignore 90 - { 91 - queryFn: async ({ pageParam, queryKey, signal }) => { 92 - // @ts-ignore 93 - const page: Pick<QueryKey<Options<PostFooData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { 94 - body: { 95 - page: pageParam 96 - } 97 - }; 98 - const params = createInfiniteParams(queryKey, page); 99 - const { data } = await postFoo({ 100 - ...options, 101 - ...params, 102 - signal, 103 - throwOnError: true 104 - }); 105 - return data; 106 - }, 107 - queryKey: postFooInfiniteQueryKey(options) 108 - }); 109 - }; 110 - 111 - export const postFooMutation = (options?: Partial<Options<PostFooData>>): UseMutationOptions<unknown, DefaultError, Options<PostFooData>> => { 112 - const mutationOptions: UseMutationOptions<unknown, DefaultError, Options<PostFooData>> = { 113 - mutationFn: async (localOptions) => { 114 - const { data } = await postFoo({ 115 - ...options, 116 - ...localOptions, 117 - throwOnError: true 118 - }); 119 - return data; 120 - } 121 - }; 122 - return mutationOptions; 123 - };
packages/openapi-ts-tests/test/__snapshots__/3.1.x/pagination-ref-any-of/client.gen.ts packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/react-query/name-builder/client.gen.ts
packages/openapi-ts-tests/test/__snapshots__/3.1.x/pagination-ref-any-of/index.ts packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/react-query/name-builder/index.ts
-30
packages/openapi-ts-tests/test/__snapshots__/3.1.x/pagination-ref-any-of/sdk.gen.ts
··· 1 - // This file is auto-generated by @hey-api/openapi-ts 2 - 3 - import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 - import type { PostFooData, PostFooResponses } from './types.gen'; 5 - import { client as _heyApiClient } from './client.gen'; 6 - 7 - export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 - /** 9 - * You can provide a client instance returned by `createClient()` instead of 10 - * individual options. This might be also useful if you want to implement a 11 - * custom client. 12 - */ 13 - client?: Client; 14 - /** 15 - * You can pass arbitrary values through the `meta` object. This can be 16 - * used to access values that aren't defined as part of the SDK function. 17 - */ 18 - meta?: Record<string, unknown>; 19 - }; 20 - 21 - export const postFoo = <ThrowOnError extends boolean = false>(options: Options<PostFooData, ThrowOnError>) => { 22 - return (options.client ?? _heyApiClient).post<PostFooResponses, unknown, ThrowOnError>({ 23 - url: '/foo', 24 - ...options, 25 - headers: { 26 - 'Content-Type': 'application/json', 27 - ...options?.headers 28 - } 29 - }); 30 - };
-23
packages/openapi-ts-tests/test/__snapshots__/3.1.x/pagination-ref-any-of/types.gen.ts
··· 1 - // This file is auto-generated by @hey-api/openapi-ts 2 - 3 - export type Foo = { 4 - page?: number | null; 5 - }; 6 - 7 - export type PostFooData = { 8 - body: Foo; 9 - path?: never; 10 - query?: never; 11 - url: '/foo'; 12 - }; 13 - 14 - export type PostFooResponses = { 15 - /** 16 - * OK 17 - */ 18 - 200: unknown; 19 - }; 20 - 21 - export type ClientOptions = { 22 - baseUrl: `${string}://${string}` | (string & {}); 23 - };
+161
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/angular-query-experimental/name-builder/@tanstack/angular-query-experimental.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/angular-query-experimental'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/angular-query-experimental/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/angular-query-experimental/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/angular-query-experimental/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/angular-query-experimental/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/react-query/name-builder/@tanstack/react-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/react-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+61
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/react-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/react-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/solid-query/name-builder/@tanstack/solid-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/solid-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/solid-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/solid-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/solid-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/solid-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/svelte-query/name-builder/@tanstack/svelte-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type MutationOptions, type DefaultError } from '@tanstack/svelte-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: MutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: MutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: MutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: MutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/svelte-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/svelte-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/svelte-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/svelte-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+161
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/vue-query/name-builder/@tanstack/vue-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { type Options, getFoo, fooPost, fooPut, getFooBar, fooBarPost, fooBarPut } from '../sdk.gen'; 4 + import { queryOptions, type UseMutationOptions, type DefaultError } from '@tanstack/vue-query'; 5 + import type { GetFooData, FooPostData, FooPostResponse, FooPutData, FooPutResponse, GetFooBarData, FooBarPostData, FooBarPostResponse, FooBarPutData, FooBarPutResponse } from '../types.gen'; 6 + import { client as _heyApiClient } from '../client.gen'; 7 + 8 + export type QueryKey<TOptions extends Options> = [ 9 + Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & { 10 + _id: string; 11 + _infinite?: boolean; 12 + } 13 + ]; 14 + 15 + const createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean): [ 16 + QueryKey<TOptions>[0] 17 + ] => { 18 + const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: (options?.client ?? _heyApiClient).getConfig().baseUrl } as QueryKey<TOptions>[0]; 19 + if (infinite) { 20 + params._infinite = infinite; 21 + } 22 + if (options?.body) { 23 + params.body = options.body; 24 + } 25 + if (options?.headers) { 26 + params.headers = options.headers; 27 + } 28 + if (options?.path) { 29 + params.path = options.path; 30 + } 31 + if (options?.query) { 32 + params.query = options.query; 33 + } 34 + return [ 35 + params 36 + ]; 37 + }; 38 + 39 + export const getFooD = (options?: Options<GetFooData>) => createQueryKey('getFoo', options); 40 + 41 + export const getFooE = (options?: Options<GetFooData>) => { 42 + return queryOptions({ 43 + queryFn: async ({ queryKey, signal }) => { 44 + const { data } = await getFoo({ 45 + ...options, 46 + ...queryKey[0], 47 + signal, 48 + throwOnError: true 49 + }); 50 + return data; 51 + }, 52 + queryKey: getFooD(options) 53 + }); 54 + }; 55 + 56 + export const fooPostD = (options?: Options<FooPostData>) => createQueryKey('fooPost', options); 57 + 58 + export const fooPostE = (options?: Options<FooPostData>) => { 59 + return queryOptions({ 60 + queryFn: async ({ queryKey, signal }) => { 61 + const { data } = await fooPost({ 62 + ...options, 63 + ...queryKey[0], 64 + signal, 65 + throwOnError: true 66 + }); 67 + return data; 68 + }, 69 + queryKey: fooPostD(options) 70 + }); 71 + }; 72 + 73 + export const fooPostC = (options?: Partial<Options<FooPostData>>): UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> => { 74 + const mutationOptions: UseMutationOptions<FooPostResponse, DefaultError, Options<FooPostData>> = { 75 + mutationFn: async (localOptions) => { 76 + const { data } = await fooPost({ 77 + ...options, 78 + ...localOptions, 79 + throwOnError: true 80 + }); 81 + return data; 82 + } 83 + }; 84 + return mutationOptions; 85 + }; 86 + 87 + export const fooPutC = (options?: Partial<Options<FooPutData>>): UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> => { 88 + const mutationOptions: UseMutationOptions<FooPutResponse, DefaultError, Options<FooPutData>> = { 89 + mutationFn: async (localOptions) => { 90 + const { data } = await fooPut({ 91 + ...options, 92 + ...localOptions, 93 + throwOnError: true 94 + }); 95 + return data; 96 + } 97 + }; 98 + return mutationOptions; 99 + }; 100 + 101 + export const getFooBarD = (options?: Options<GetFooBarData>) => createQueryKey('getFooBar', options); 102 + 103 + export const getFooBarE = (options?: Options<GetFooBarData>) => { 104 + return queryOptions({ 105 + queryFn: async ({ queryKey, signal }) => { 106 + const { data } = await getFooBar({ 107 + ...options, 108 + ...queryKey[0], 109 + signal, 110 + throwOnError: true 111 + }); 112 + return data; 113 + }, 114 + queryKey: getFooBarD(options) 115 + }); 116 + }; 117 + 118 + export const fooBarPostD = (options?: Options<FooBarPostData>) => createQueryKey('fooBarPost', options); 119 + 120 + export const fooBarPostE = (options?: Options<FooBarPostData>) => { 121 + return queryOptions({ 122 + queryFn: async ({ queryKey, signal }) => { 123 + const { data } = await fooBarPost({ 124 + ...options, 125 + ...queryKey[0], 126 + signal, 127 + throwOnError: true 128 + }); 129 + return data; 130 + }, 131 + queryKey: fooBarPostD(options) 132 + }); 133 + }; 134 + 135 + export const fooBarPostC = (options?: Partial<Options<FooBarPostData>>): UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> => { 136 + const mutationOptions: UseMutationOptions<FooBarPostResponse, DefaultError, Options<FooBarPostData>> = { 137 + mutationFn: async (localOptions) => { 138 + const { data } = await fooBarPost({ 139 + ...options, 140 + ...localOptions, 141 + throwOnError: true 142 + }); 143 + return data; 144 + } 145 + }; 146 + return mutationOptions; 147 + }; 148 + 149 + export const fooBarPutC = (options?: Partial<Options<FooBarPutData>>): UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> => { 150 + const mutationOptions: UseMutationOptions<FooBarPutResponse, DefaultError, Options<FooBarPutData>> = { 151 + mutationFn: async (localOptions) => { 152 + const { data } = await fooBarPut({ 153 + ...options, 154 + ...localOptions, 155 + throwOnError: true 156 + }); 157 + return data; 158 + } 159 + }; 160 + return mutationOptions; 161 + };
+16
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/vue-query/name-builder/client.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { ClientOptions } from './types.gen'; 4 + import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch'; 5 + 6 + /** 7 + * The `createClientConfig()` function will be called on client initialization 8 + * and the returned object will become the client's initial configuration. 9 + * 10 + * You may want to initialize your client this way instead of calling 11 + * `setConfig()`. This is useful for example if you're using Next.js 12 + * to ensure your client always has the correct values. 13 + */ 14 + export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>; 15 + 16 + export const client = createClient(createConfig<ClientOptions>());
+3
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/vue-query/name-builder/index.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './types.gen'; 3 + export * from './sdk.gen';
+61
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/vue-query/name-builder/sdk.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'; 4 + import type { GetFooData, GetFooResponses, FooPostData, FooPostResponses, FooPutData, FooPutResponses, GetFooBarData, GetFooBarResponses, FooBarPostData, FooBarPostResponses, FooBarPutData, FooBarPutResponses } from './types.gen'; 5 + import { client as _heyApiClient } from './client.gen'; 6 + 7 + export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & { 8 + /** 9 + * You can provide a client instance returned by `createClient()` instead of 10 + * individual options. This might be also useful if you want to implement a 11 + * custom client. 12 + */ 13 + client?: Client; 14 + /** 15 + * You can pass arbitrary values through the `meta` object. This can be 16 + * used to access values that aren't defined as part of the SDK function. 17 + */ 18 + meta?: Record<string, unknown>; 19 + }; 20 + 21 + export const getFoo = <ThrowOnError extends boolean = false>(options?: Options<GetFooData, ThrowOnError>) => { 22 + return (options?.client ?? _heyApiClient).get<GetFooResponses, unknown, ThrowOnError>({ 23 + url: '/foo', 24 + ...options 25 + }); 26 + }; 27 + 28 + export const fooPost = <ThrowOnError extends boolean = false>(options?: Options<FooPostData, ThrowOnError>) => { 29 + return (options?.client ?? _heyApiClient).post<FooPostResponses, unknown, ThrowOnError>({ 30 + url: '/foo', 31 + ...options 32 + }); 33 + }; 34 + 35 + export const fooPut = <ThrowOnError extends boolean = false>(options?: Options<FooPutData, ThrowOnError>) => { 36 + return (options?.client ?? _heyApiClient).put<FooPutResponses, unknown, ThrowOnError>({ 37 + url: '/foo', 38 + ...options 39 + }); 40 + }; 41 + 42 + export const getFooBar = <ThrowOnError extends boolean = false>(options?: Options<GetFooBarData, ThrowOnError>) => { 43 + return (options?.client ?? _heyApiClient).get<GetFooBarResponses, unknown, ThrowOnError>({ 44 + url: '/foo/bar', 45 + ...options 46 + }); 47 + }; 48 + 49 + export const fooBarPost = <ThrowOnError extends boolean = false>(options?: Options<FooBarPostData, ThrowOnError>) => { 50 + return (options?.client ?? _heyApiClient).post<FooBarPostResponses, unknown, ThrowOnError>({ 51 + url: '/foo/bar', 52 + ...options 53 + }); 54 + }; 55 + 56 + export const fooBarPut = <ThrowOnError extends boolean = false>(options?: Options<FooBarPutData, ThrowOnError>) => { 57 + return (options?.client ?? _heyApiClient).put<FooBarPutResponses, unknown, ThrowOnError>({ 58 + url: '/foo/bar', 59 + ...options 60 + }); 61 + };
+101
packages/openapi-ts-tests/test/__snapshots__/3.1.x/plugins/@tanstack/vue-query/name-builder/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type GetFooData = { 4 + body?: never; 5 + path?: never; 6 + query?: never; 7 + url: '/foo'; 8 + }; 9 + 10 + export type GetFooResponses = { 11 + /** 12 + * OK 13 + */ 14 + 200: string; 15 + }; 16 + 17 + export type GetFooResponse = GetFooResponses[keyof GetFooResponses]; 18 + 19 + export type FooPostData = { 20 + body?: never; 21 + path?: never; 22 + query?: never; 23 + url: '/foo'; 24 + }; 25 + 26 + export type FooPostResponses = { 27 + /** 28 + * OK 29 + */ 30 + 200: string; 31 + }; 32 + 33 + export type FooPostResponse = FooPostResponses[keyof FooPostResponses]; 34 + 35 + export type FooPutData = { 36 + body?: never; 37 + path?: never; 38 + query?: never; 39 + url: '/foo'; 40 + }; 41 + 42 + export type FooPutResponses = { 43 + /** 44 + * OK 45 + */ 46 + 200: string; 47 + }; 48 + 49 + export type FooPutResponse = FooPutResponses[keyof FooPutResponses]; 50 + 51 + export type GetFooBarData = { 52 + body?: never; 53 + path?: never; 54 + query?: never; 55 + url: '/foo/bar'; 56 + }; 57 + 58 + export type GetFooBarResponses = { 59 + /** 60 + * OK 61 + */ 62 + 200: string; 63 + }; 64 + 65 + export type GetFooBarResponse = GetFooBarResponses[keyof GetFooBarResponses]; 66 + 67 + export type FooBarPostData = { 68 + body?: never; 69 + path?: never; 70 + query?: never; 71 + url: '/foo/bar'; 72 + }; 73 + 74 + export type FooBarPostResponses = { 75 + /** 76 + * OK 77 + */ 78 + 200: string; 79 + }; 80 + 81 + export type FooBarPostResponse = FooBarPostResponses[keyof FooBarPostResponses]; 82 + 83 + export type FooBarPutData = { 84 + body?: never; 85 + path?: never; 86 + query?: never; 87 + url: '/foo/bar'; 88 + }; 89 + 90 + export type FooBarPutResponses = { 91 + /** 92 + * OK 93 + */ 94 + 200: string; 95 + }; 96 + 97 + export type FooBarPutResponse = FooBarPutResponses[keyof FooBarPutResponses]; 98 + 99 + export type ClientOptions = { 100 + baseUrl: `${string}://${string}` | (string & {}); 101 + };
+9 -1
packages/openapi-ts-tests/test/openapi-ts.config.ts
··· 39 39 // }, 40 40 }, 41 41 // organization: 'hey-api', 42 + // pagination: { 43 + // keywords: ['aa'], 44 + // }, 42 45 // path: { 43 46 // components: {}, 44 47 // info: { ··· 143 146 }, 144 147 { 145 148 exportFromIndex: true, 146 - // name: '@tanstack/react-query', 149 + infiniteQueryKeyNameBuilder: '{{name}}IQK', 150 + infiniteQueryOptionsNameBuilder: '{{name}}InfiniteQuery', 151 + mutationOptionsNameBuilder: '{{name}}MutationOptions', 152 + name: '@tanstack/react-query', 153 + queryKeyNameBuilder: '{{name}}QK', 154 + queryOptionsNameBuilder: '{{name}}Query', 147 155 }, 148 156 { 149 157 // comments: false,
+100
packages/openapi-ts-tests/test/plugins.test.ts
··· 216 216 }, 217 217 { 218 218 config: createConfig({ 219 + input: 'sdk-instance.yaml', 220 + output: 'name-builder', 221 + plugins: [ 222 + { 223 + infiniteQueryKeyNameBuilder: '{{name}}A', 224 + infiniteQueryOptionsNameBuilder: '{{name}}B', 225 + mutationOptionsNameBuilder: '{{name}}C', 226 + name: '@tanstack/angular-query-experimental', 227 + queryKeyNameBuilder: '{{name}}D', 228 + queryOptionsNameBuilder: '{{name}}E', 229 + }, 230 + '@hey-api/client-fetch', 231 + '@hey-api/sdk', 232 + ], 233 + }), 234 + description: 235 + 'generate Fetch API client with TanStack Angular Query Experimental plugin with custom names', 236 + }, 237 + { 238 + config: createConfig({ 239 + input: 'sdk-instance.yaml', 240 + output: 'name-builder', 241 + plugins: [ 242 + { 243 + infiniteQueryKeyNameBuilder: '{{name}}A', 244 + infiniteQueryOptionsNameBuilder: '{{name}}B', 245 + mutationOptionsNameBuilder: '{{name}}C', 246 + name: '@tanstack/react-query', 247 + queryKeyNameBuilder: '{{name}}D', 248 + queryOptionsNameBuilder: '{{name}}E', 249 + }, 250 + '@hey-api/client-fetch', 251 + '@hey-api/sdk', 252 + ], 253 + }), 254 + description: 255 + 'generate Fetch API client with TanStack React Query plugin with custom names', 256 + }, 257 + { 258 + config: createConfig({ 259 + input: 'sdk-instance.yaml', 260 + output: 'name-builder', 261 + plugins: [ 262 + { 263 + infiniteQueryKeyNameBuilder: '{{name}}A', 264 + infiniteQueryOptionsNameBuilder: '{{name}}B', 265 + mutationOptionsNameBuilder: '{{name}}C', 266 + name: '@tanstack/solid-query', 267 + queryKeyNameBuilder: '{{name}}D', 268 + queryOptionsNameBuilder: '{{name}}E', 269 + }, 270 + '@hey-api/client-fetch', 271 + '@hey-api/sdk', 272 + ], 273 + }), 274 + description: 275 + 'generate Fetch API client with TanStack Solid Query plugin with custom names', 276 + }, 277 + { 278 + config: createConfig({ 279 + input: 'sdk-instance.yaml', 280 + output: 'name-builder', 281 + plugins: [ 282 + { 283 + infiniteQueryKeyNameBuilder: '{{name}}A', 284 + infiniteQueryOptionsNameBuilder: '{{name}}B', 285 + mutationOptionsNameBuilder: '{{name}}C', 286 + name: '@tanstack/svelte-query', 287 + queryKeyNameBuilder: '{{name}}D', 288 + queryOptionsNameBuilder: '{{name}}E', 289 + }, 290 + '@hey-api/client-fetch', 291 + '@hey-api/sdk', 292 + ], 293 + }), 294 + description: 295 + 'generate Fetch API client with TanStack Svelte Query plugin with custom names', 296 + }, 297 + { 298 + config: createConfig({ 299 + input: 'sdk-instance.yaml', 300 + output: 'name-builder', 301 + plugins: [ 302 + { 303 + infiniteQueryKeyNameBuilder: '{{name}}A', 304 + infiniteQueryOptionsNameBuilder: '{{name}}B', 305 + mutationOptionsNameBuilder: '{{name}}C', 306 + name: '@tanstack/vue-query', 307 + queryKeyNameBuilder: '{{name}}D', 308 + queryOptionsNameBuilder: '{{name}}E', 309 + }, 310 + '@hey-api/client-fetch', 311 + '@hey-api/sdk', 312 + ], 313 + }), 314 + description: 315 + 'generate Fetch API client with TanStack Vue Query plugin with custom names', 316 + }, 317 + { 318 + config: createConfig({ 219 319 output: 'default', 220 320 plugins: ['@hey-api/schemas'], 221 321 }),
+1
packages/openapi-ts/src/generate/output.ts
··· 39 39 context, 40 40 plugin: plugin as never, 41 41 }); 42 + context.subscribe = _subscribe; 42 43 } 43 44 44 45 await parseIR({ context });
+1 -1
packages/openapi-ts/src/ir/pagination.ts
··· 13 13 export function getPaginationKeywordsRegExp({ 14 14 keywords = DEFAULT_PAGINATION_KEYWORDS, 15 15 }: Config['input']['pagination'] = {}): RegExp { 16 - if (keywords.length === 0) { 16 + if (!keywords.length) { 17 17 keywords = DEFAULT_PAGINATION_KEYWORDS; 18 18 } 19 19 const pattern = `^(${keywords.join('|')})$`;
+5
packages/openapi-ts/src/plugins/@tanstack/angular-query-experimental/config.ts
··· 9 9 _handlerLegacy: handlerLegacy, 10 10 comments: true, 11 11 exportFromIndex: false, 12 + infiniteQueryKeyNameBuilder: '{{name}}InfiniteQueryKey', 12 13 infiniteQueryOptions: true, 14 + infiniteQueryOptionsNameBuilder: '{{name}}InfiniteOptions', 13 15 mutationOptions: true, 16 + mutationOptionsNameBuilder: '{{name}}Mutation', 14 17 name: '@tanstack/angular-query-experimental', 15 18 output: '@tanstack/angular-query-experimental', 19 + queryKeyNameBuilder: '{{name}}QueryKey', 16 20 queryOptions: true, 21 + queryOptionsNameBuilder: '{{name}}Options', 17 22 }; 18 23 19 24 /**
+25 -6
packages/openapi-ts/src/plugins/@tanstack/query-core/infiniteQueryOptions.ts
··· 14 14 import { 15 15 createQueryKeyFunction, 16 16 createQueryKeyType, 17 - queryKeyFunctionIdentifier, 17 + infiniteQueryKeyFunctionIdentifier, 18 18 queryKeyName, 19 19 queryKeyStatement, 20 20 } from './queryKey'; ··· 223 223 const infiniteQueryOptionsFunctionIdentifier = ({ 224 224 context, 225 225 operation, 226 + plugin, 226 227 }: { 227 228 context: IR.Context; 228 229 operation: IR.OperationObject; 229 - }) => 230 - `${serviceFunctionIdentifier({ 230 + plugin: PluginInstance; 231 + }) => { 232 + const name = serviceFunctionIdentifier({ 231 233 config: context.config, 232 234 id: operation.id, 233 235 operation, 234 - })}InfiniteOptions`; 236 + }); 237 + 238 + let customName = ''; 239 + 240 + if (plugin.infiniteQueryOptionsNameBuilder) { 241 + if (typeof plugin.infiniteQueryOptionsNameBuilder === 'function') { 242 + customName = plugin.infiniteQueryOptionsNameBuilder(name); 243 + } else { 244 + customName = plugin.infiniteQueryOptionsNameBuilder.replace( 245 + '{{name}}', 246 + name, 247 + ); 248 + } 249 + } 250 + 251 + return customName; 252 + }; 235 253 236 254 export const createInfiniteQueryOptions = ({ 237 255 context, ··· 322 340 }); 323 341 file.add(node); 324 342 325 - const infiniteQueryKeyName = queryKeyFunctionIdentifier({ 343 + const infiniteQueryKeyName = infiniteQueryKeyFunctionIdentifier({ 326 344 context, 327 - isInfinite: true, 328 345 operation, 346 + plugin, 329 347 }); 330 348 const identifierQueryKey = file.identifier({ 331 349 $ref: `#/queryKey/${infiniteQueryKeyName}`, ··· 504 522 name: infiniteQueryOptionsFunctionIdentifier({ 505 523 context, 506 524 operation, 525 + plugin, 507 526 }), 508 527 }); 509 528 file.add(statement);
+19 -4
packages/openapi-ts/src/plugins/@tanstack/query-core/mutationOptions.ts
··· 12 12 const mutationOptionsFunctionIdentifier = ({ 13 13 context, 14 14 operation, 15 + plugin, 15 16 }: { 16 17 context: IR.Context; 17 18 operation: IR.OperationObject; 18 - }) => 19 - `${serviceFunctionIdentifier({ 19 + plugin: PluginInstance; 20 + }) => { 21 + const name = serviceFunctionIdentifier({ 20 22 config: context.config, 21 23 id: operation.id, 22 24 operation, 23 - })}Mutation`; 25 + }); 26 + 27 + let customName = ''; 28 + 29 + if (plugin.mutationOptionsNameBuilder) { 30 + if (typeof plugin.mutationOptionsNameBuilder === 'function') { 31 + customName = plugin.mutationOptionsNameBuilder(name); 32 + } else { 33 + customName = plugin.mutationOptionsNameBuilder.replace('{{name}}', name); 34 + } 35 + } 36 + 37 + return customName; 38 + }; 24 39 25 40 export const createMutationOptions = ({ 26 41 context, ··· 157 172 : undefined, 158 173 exportConst: true, 159 174 expression, 160 - name: mutationOptionsFunctionIdentifier({ context, operation }), 175 + name: mutationOptionsFunctionIdentifier({ context, operation, plugin }), 161 176 }); 162 177 file.add(statement); 163 178
+49 -10
packages/openapi-ts/src/plugins/@tanstack/query-core/queryKey.ts
··· 298 298 file.add(queryKeyType); 299 299 }; 300 300 301 + export const infiniteQueryKeyFunctionIdentifier = ({ 302 + context, 303 + operation, 304 + plugin, 305 + }: { 306 + context: IR.Context; 307 + operation: IR.OperationObject; 308 + plugin: PluginInstance; 309 + }) => { 310 + const name = serviceFunctionIdentifier({ 311 + config: context.config, 312 + id: operation.id, 313 + operation, 314 + }); 315 + 316 + let customName = ''; 317 + 318 + if (plugin.infiniteQueryKeyNameBuilder) { 319 + if (typeof plugin.infiniteQueryKeyNameBuilder === 'function') { 320 + customName = plugin.infiniteQueryKeyNameBuilder(name); 321 + } else { 322 + customName = plugin.infiniteQueryKeyNameBuilder.replace('{{name}}', name); 323 + } 324 + } 325 + 326 + return customName; 327 + }; 328 + 301 329 export const queryKeyFunctionIdentifier = ({ 302 330 context, 303 - isInfinite, 304 331 operation, 332 + plugin, 305 333 }: { 306 334 context: IR.Context; 307 - isInfinite?: boolean; 308 335 operation: IR.OperationObject; 309 - }) => 310 - `${serviceFunctionIdentifier({ 336 + plugin: PluginInstance; 337 + }) => { 338 + const name = serviceFunctionIdentifier({ 311 339 config: context.config, 312 340 id: operation.id, 313 341 operation, 314 - })}${isInfinite ? 'Infinite' : ''}QueryKey`; 342 + }); 343 + 344 + let customName = ''; 345 + 346 + if (plugin.queryKeyNameBuilder) { 347 + if (typeof plugin.queryKeyNameBuilder === 'function') { 348 + customName = plugin.queryKeyNameBuilder(name); 349 + } else { 350 + customName = plugin.queryKeyNameBuilder.replace('{{name}}', name); 351 + } 352 + } 353 + 354 + return customName; 355 + }; 315 356 316 357 export const queryKeyStatement = ({ 317 358 context, ··· 328 369 }) => { 329 370 const file = context.file({ id: plugin.name })!; 330 371 const typeData = useTypeData({ context, operation, plugin }); 331 - const name = queryKeyFunctionIdentifier({ 332 - context, 333 - isInfinite, 334 - operation, 335 - }); 372 + const name = isInfinite 373 + ? infiniteQueryKeyFunctionIdentifier({ context, operation, plugin }) 374 + : queryKeyFunctionIdentifier({ context, operation, plugin }); 336 375 const identifierQueryKey = file.identifier({ 337 376 $ref: `#/queryKey/${name}`, 338 377 create: true,
+20 -5
packages/openapi-ts/src/plugins/@tanstack/query-core/queryOptions.ts
··· 21 21 const queryOptionsFunctionIdentifier = ({ 22 22 context, 23 23 operation, 24 + plugin, 24 25 }: { 25 26 context: IR.Context; 26 27 operation: IR.OperationObject; 27 - }) => 28 - `${serviceFunctionIdentifier({ 28 + plugin: PluginInstance; 29 + }) => { 30 + const name = serviceFunctionIdentifier({ 29 31 config: context.config, 30 32 id: operation.id, 31 33 operation, 32 - })}Options`; 34 + }); 35 + 36 + let customName = ''; 37 + 38 + if (plugin.queryOptionsNameBuilder) { 39 + if (typeof plugin.queryOptionsNameBuilder === 'function') { 40 + customName = plugin.queryOptionsNameBuilder(name); 41 + } else { 42 + customName = plugin.queryOptionsNameBuilder.replace('{{name}}', name); 43 + } 44 + } 45 + 46 + return customName; 47 + }; 33 48 34 49 export const createQueryOptions = ({ 35 50 context, ··· 83 98 84 99 const queryKeyName = queryKeyFunctionIdentifier({ 85 100 context, 86 - isInfinite: false, 87 101 operation, 102 + plugin, 88 103 }); 89 104 const identifierQueryKey = file.identifier({ 90 105 $ref: `#/queryKey/${queryKeyName}`, ··· 194 209 }), 195 210 ], 196 211 }), 197 - name: queryOptionsFunctionIdentifier({ context, operation }), 212 + name: queryOptionsFunctionIdentifier({ context, operation, plugin }), 198 213 // TODO: add type error 199 214 // TODO: AxiosError<PutSubmissionMetaError> 200 215 });
+35
packages/openapi-ts/src/plugins/@tanstack/query-core/types.d.ts
··· 54 54 * @default false 55 55 */ 56 56 exportFromIndex?: boolean; 57 + /** 58 + * Customize the generated infinite query key names. The name variable is 59 + * obtained from the SDK function name. 60 + * 61 + * @default '{{name}}InfiniteQueryKey' 62 + */ 63 + infiniteQueryKeyNameBuilder?: string | ((name: string) => string); 64 + /** 65 + * Customize the generated infinite query options names. The name variable 66 + * is obtained from the SDK function name. 67 + * 68 + * @default '{{name}}InfiniteOptions' 69 + */ 70 + infiniteQueryOptionsNameBuilder?: string | ((name: string) => string); 71 + /** 72 + * Customize the generated mutation options names. The name variable is 73 + * obtained from the SDK function name. 74 + * 75 + * @default '{{name}}Mutation' 76 + */ 77 + mutationOptionsNameBuilder?: string | ((name: string) => string); 78 + /** 79 + * Customize the generated query key names. The name variable is obtained 80 + * from the SDK function name. 81 + * 82 + * @default '{{name}}QueryKey' 83 + */ 84 + queryKeyNameBuilder?: string | ((name: string) => string); 85 + /** 86 + * Customize the generated query options names. The name variable is 87 + * obtained from the SDK function name. 88 + * 89 + * @default '{{name}}Options' 90 + */ 91 + queryOptionsNameBuilder?: string | ((name: string) => string); 57 92 }; 58 93 }
+5
packages/openapi-ts/src/plugins/@tanstack/react-query/config.ts
··· 9 9 _handlerLegacy: handlerLegacy, 10 10 comments: true, 11 11 exportFromIndex: false, 12 + infiniteQueryKeyNameBuilder: '{{name}}InfiniteQueryKey', 12 13 infiniteQueryOptions: true, 14 + infiniteQueryOptionsNameBuilder: '{{name}}InfiniteOptions', 13 15 mutationOptions: true, 16 + mutationOptionsNameBuilder: '{{name}}Mutation', 14 17 name: '@tanstack/react-query', 15 18 output: '@tanstack/react-query', 19 + queryKeyNameBuilder: '{{name}}QueryKey', 16 20 queryOptions: true, 21 + queryOptionsNameBuilder: '{{name}}Options', 17 22 }; 18 23 19 24 /**
+5
packages/openapi-ts/src/plugins/@tanstack/solid-query/config.ts
··· 9 9 _handlerLegacy: handlerLegacy, 10 10 comments: true, 11 11 exportFromIndex: false, 12 + infiniteQueryKeyNameBuilder: '{{name}}InfiniteQueryKey', 12 13 infiniteQueryOptions: true, 14 + infiniteQueryOptionsNameBuilder: '{{name}}InfiniteOptions', 13 15 mutationOptions: true, 16 + mutationOptionsNameBuilder: '{{name}}Mutation', 14 17 name: '@tanstack/solid-query', 15 18 output: '@tanstack/solid-query', 19 + queryKeyNameBuilder: '{{name}}QueryKey', 16 20 queryOptions: true, 21 + queryOptionsNameBuilder: '{{name}}Options', 17 22 }; 18 23 19 24 /**
+5
packages/openapi-ts/src/plugins/@tanstack/svelte-query/config.ts
··· 9 9 _handlerLegacy: handlerLegacy, 10 10 comments: true, 11 11 exportFromIndex: false, 12 + infiniteQueryKeyNameBuilder: '{{name}}InfiniteQueryKey', 12 13 infiniteQueryOptions: true, 14 + infiniteQueryOptionsNameBuilder: '{{name}}InfiniteOptions', 13 15 mutationOptions: true, 16 + mutationOptionsNameBuilder: '{{name}}Mutation', 14 17 name: '@tanstack/svelte-query', 15 18 output: '@tanstack/svelte-query', 19 + queryKeyNameBuilder: '{{name}}QueryKey', 16 20 queryOptions: true, 21 + queryOptionsNameBuilder: '{{name}}Options', 17 22 }; 18 23 19 24 /**
+5
packages/openapi-ts/src/plugins/@tanstack/vue-query/config.ts
··· 9 9 _handlerLegacy: handlerLegacy, 10 10 comments: true, 11 11 exportFromIndex: false, 12 + infiniteQueryKeyNameBuilder: '{{name}}InfiniteQueryKey', 12 13 infiniteQueryOptions: true, 14 + infiniteQueryOptionsNameBuilder: '{{name}}InfiniteOptions', 13 15 mutationOptions: true, 16 + mutationOptionsNameBuilder: '{{name}}Mutation', 14 17 name: '@tanstack/vue-query', 15 18 output: '@tanstack/vue-query', 19 + queryKeyNameBuilder: '{{name}}QueryKey', 16 20 queryOptions: true, 21 + queryOptionsNameBuilder: '{{name}}Options', 17 22 }; 18 23 19 24 /**