From e86629bfa9ae2a47131d3a9a240a6aa2a4f67911 Mon Sep 17 00:00:00 2001 From: Lubos Date: Mon, 10 Feb 2025 08:47:09 +0000 Subject: [PATCH] fix: type default value --- .changeset/hip-starfishes-explain.md | 6 + examples/openapi-ts-nuxt/client/client.gen.ts | 24 +- examples/openapi-ts-nuxt/client/sdk.gen.ts | 279 +++++++++++++----- examples/openapi-ts-nuxt/client/types.gen.ts | 4 + examples/openapi-ts-nuxt/components/home.vue | 4 + packages/client-nuxt/src/client.ts | 4 +- packages/client-nuxt/src/types.ts | 44 ++- .../src/plugins/@hey-api/sdk/constants.ts | 3 + .../src/plugins/@hey-api/sdk/plugin.ts | 53 +++- .../src/plugins/@hey-api/sdk/typeOptions.ts | 11 + .../client-nuxt/bundle/client/index.cjs | 2 +- .../client-nuxt/bundle/client/index.d.cts | 13 +- .../client-nuxt/bundle/client/index.d.ts | 13 +- .../@hey-api/client-nuxt/bundle/sdk.gen.ts | 194 ++++++------ .../@hey-api/client-nuxt/default/sdk.gen.ts | 194 ++++++------ .../sdk-client-optional/sdk.gen.ts | 194 ++++++------ .../sdk-client-required/sdk.gen.ts | 194 ++++++------ 17 files changed, 741 insertions(+), 495 deletions(-) create mode 100644 .changeset/hip-starfishes-explain.md create mode 100644 packages/openapi-ts/src/plugins/@hey-api/sdk/constants.ts diff --git a/.changeset/hip-starfishes-explain.md b/.changeset/hip-starfishes-explain.md new file mode 100644 index 000000000..95b31e44b --- /dev/null +++ b/.changeset/hip-starfishes-explain.md @@ -0,0 +1,6 @@ +--- +'@hey-api/client-nuxt': patch +'@hey-api/openapi-ts': patch +--- + +fix: correctly type default value for Nuxt client diff --git a/examples/openapi-ts-nuxt/client/client.gen.ts b/examples/openapi-ts-nuxt/client/client.gen.ts index e9c374023..3676099e0 100644 --- a/examples/openapi-ts-nuxt/client/client.gen.ts +++ b/examples/openapi-ts-nuxt/client/client.gen.ts @@ -1,5 +1,25 @@ // This file is auto-generated by @hey-api/openapi-ts -import { createClient, createConfig } from '@hey-api/client-nuxt'; +import { + type ClientOptions as DefaultClientOptions, + type Config, + createClient, + createConfig, +} from '@hey-api/client-nuxt'; -export const client = createClient(createConfig()); +import type { ClientOptions } from './types.gen'; + +/** + * The `createClientConfig()` function will be called on client initialization + * and the returned object will become the client's initial configuration. + * + * You may want to initialize your client this way instead of calling + * `setConfig()`. This is useful for example if you're using Next.js + * to ensure your client always has the correct values. + */ +export type CreateClientConfig = + ( + override?: Config, + ) => Config & T>; + +export const client = createClient(createConfig()); diff --git a/examples/openapi-ts-nuxt/client/sdk.gen.ts b/examples/openapi-ts-nuxt/client/sdk.gen.ts index 48bcf1fb6..3ee4c19d6 100644 --- a/examples/openapi-ts-nuxt/client/sdk.gen.ts +++ b/examples/openapi-ts-nuxt/client/sdk.gen.ts @@ -72,23 +72,38 @@ import { export type Options< TComposable extends Composable, TData extends TDataShape = TDataShape, -> = ClientOptions & { + ResT = unknown, + DefaultT = undefined, +> = ClientOptions & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a * custom client. */ client?: Client; + /** + * You can pass arbitrary values through the `meta` object. This can be + * used to access values that aren't defined as part of the SDK function. + */ + meta?: Record; }; /** * Add a new pet to the store * Add a new pet to the store */ -export const addPet = ( - options: Options, +export const addPet = < + TComposable extends Composable, + DefaultT extends AddPetResponse = AddPetResponse, +>( + options: Options, ) => - (options.client ?? _heyApiClient).post({ + (options.client ?? _heyApiClient).post< + TComposable, + AddPetResponse | DefaultT, + unknown, + DefaultT + >({ responseTransformer: addPetResponseTransformer, responseValidator: async (data) => await zAddPetResponse.parseAsync(data), security: [ @@ -109,13 +124,17 @@ export const addPet = ( * Update an existing pet * Update an existing pet by Id */ -export const updatePet = ( - options: Options, +export const updatePet = < + TComposable extends Composable, + DefaultT extends UpdatePetResponse = UpdatePetResponse, +>( + options: Options, ) => (options.client ?? _heyApiClient).put< TComposable, - UpdatePetResponse, - unknown + UpdatePetResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: updatePetResponseTransformer, responseValidator: async (data) => @@ -138,13 +157,22 @@ export const updatePet = ( * Finds Pets by status * Multiple status values can be provided with comma separated strings */ -export const findPetsByStatus = ( - options: Options, +export const findPetsByStatus = < + TComposable extends Composable, + DefaultT extends FindPetsByStatusResponse = FindPetsByStatusResponse, +>( + options: Options< + TComposable, + FindPetsByStatusData, + FindPetsByStatusResponse, + DefaultT + >, ) => (options.client ?? _heyApiClient).get< TComposable, - FindPetsByStatusResponse, - unknown + FindPetsByStatusResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: findPetsByStatusResponseTransformer, responseValidator: async (data) => @@ -163,13 +191,22 @@ export const findPetsByStatus = ( * Finds Pets by tags * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. */ -export const findPetsByTags = ( - options: Options, +export const findPetsByTags = < + TComposable extends Composable, + DefaultT extends FindPetsByTagsResponse = FindPetsByTagsResponse, +>( + options: Options< + TComposable, + FindPetsByTagsData, + FindPetsByTagsResponse, + DefaultT + >, ) => (options.client ?? _heyApiClient).get< TComposable, - FindPetsByTagsResponse, - unknown + FindPetsByTagsResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: findPetsByTagsResponseTransformer, responseValidator: async (data) => @@ -187,10 +224,15 @@ export const findPetsByTags = ( /** * Deletes a pet */ -export const deletePet = ( - options: Options, +export const deletePet = ( + options: Options, ) => - (options.client ?? _heyApiClient).delete({ + (options.client ?? _heyApiClient).delete< + TComposable, + unknown | DefaultT, + unknown, + DefaultT + >({ security: [ { scheme: 'bearer', @@ -205,13 +247,17 @@ export const deletePet = ( * Find pet by ID * Returns a single pet */ -export const getPetById = ( - options: Options, +export const getPetById = < + TComposable extends Composable, + DefaultT extends GetPetByIdResponse = GetPetByIdResponse, +>( + options: Options, ) => (options.client ?? _heyApiClient).get< TComposable, - GetPetByIdResponse, - unknown + GetPetByIdResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: getPetByIdResponseTransformer, responseValidator: async (data) => @@ -233,10 +279,18 @@ export const getPetById = ( /** * Updates a pet in the store with form data */ -export const updatePetWithForm = ( - options: Options, +export const updatePetWithForm = < + TComposable extends Composable, + DefaultT = undefined, +>( + options: Options, ) => - (options.client ?? _heyApiClient).post({ + (options.client ?? _heyApiClient).post< + TComposable, + unknown | DefaultT, + unknown, + DefaultT + >({ security: [ { scheme: 'bearer', @@ -250,13 +304,17 @@ export const updatePetWithForm = ( /** * uploads an image */ -export const uploadFile = ( - options: Options, +export const uploadFile = < + TComposable extends Composable, + DefaultT extends UploadFileResponse = UploadFileResponse, +>( + options: Options, ) => (options.client ?? _heyApiClient).post< TComposable, - UploadFileResponse, - unknown + UploadFileResponse | DefaultT, + unknown, + DefaultT >({ responseValidator: async (data) => await zUploadFileResponse.parseAsync(data), @@ -278,13 +336,22 @@ export const uploadFile = ( * Returns pet inventories by status * Returns a map of status codes to quantities */ -export const getInventory = ( - options: Options, +export const getInventory = < + TComposable extends Composable, + DefaultT extends GetInventoryResponse = GetInventoryResponse, +>( + options: Options< + TComposable, + GetInventoryData, + GetInventoryResponse, + DefaultT + >, ) => (options.client ?? _heyApiClient).get< TComposable, - GetInventoryResponse, - unknown + GetInventoryResponse | DefaultT, + unknown, + DefaultT >({ responseValidator: async (data) => await zGetInventoryResponse.parseAsync(data), @@ -302,13 +369,17 @@ export const getInventory = ( * Place an order for a pet * Place a new order in the store */ -export const placeOrder = ( - options: Options, +export const placeOrder = < + TComposable extends Composable, + DefaultT extends PlaceOrderResponse = PlaceOrderResponse, +>( + options: Options, ) => (options.client ?? _heyApiClient).post< TComposable, - PlaceOrderResponse, - unknown + PlaceOrderResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: placeOrderResponseTransformer, responseValidator: async (data) => @@ -325,10 +396,18 @@ export const placeOrder = ( * Delete purchase order by ID * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors */ -export const deleteOrder = ( - options: Options, +export const deleteOrder = < + TComposable extends Composable, + DefaultT = undefined, +>( + options: Options, ) => - (options.client ?? _heyApiClient).delete({ + (options.client ?? _heyApiClient).delete< + TComposable, + unknown | DefaultT, + unknown, + DefaultT + >({ url: '/store/order/{orderId}', ...options, }); @@ -337,13 +416,22 @@ export const deleteOrder = ( * Find purchase order by ID * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. */ -export const getOrderById = ( - options: Options, +export const getOrderById = < + TComposable extends Composable, + DefaultT extends GetOrderByIdResponse = GetOrderByIdResponse, +>( + options: Options< + TComposable, + GetOrderByIdData, + GetOrderByIdResponse, + DefaultT + >, ) => (options.client ?? _heyApiClient).get< TComposable, - GetOrderByIdResponse, - unknown + GetOrderByIdResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: getOrderByIdResponseTransformer, responseValidator: async (data) => @@ -356,13 +444,17 @@ export const getOrderById = ( * Create user * This can only be done by the logged in user. */ -export const createUser = ( - options: Options, +export const createUser = < + TComposable extends Composable, + DefaultT extends CreateUserResponse = CreateUserResponse, +>( + options: Options, ) => (options.client ?? _heyApiClient).post< TComposable, - CreateUserResponse, - unknown + CreateUserResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: createUserResponseTransformer, responseValidator: async (data) => @@ -379,13 +471,23 @@ export const createUser = ( * Creates list of users with given input array * Creates list of users with given input array */ -export const createUsersWithListInput = ( - options: Options, +export const createUsersWithListInput = < + TComposable extends Composable, + DefaultT extends + CreateUsersWithListInputResponse = CreateUsersWithListInputResponse, +>( + options: Options< + TComposable, + CreateUsersWithListInputData, + CreateUsersWithListInputResponse, + DefaultT + >, ) => (options.client ?? _heyApiClient).post< TComposable, - CreateUsersWithListInputResponse, - unknown + CreateUsersWithListInputResponse | DefaultT, + unknown, + DefaultT >({ responseValidator: async (data) => await zCreateUsersWithListInputResponse.parseAsync(data), @@ -400,13 +502,17 @@ export const createUsersWithListInput = ( /** * Logs user into the system */ -export const loginUser = ( - options: Options, +export const loginUser = < + TComposable extends Composable, + DefaultT extends LoginUserResponse = LoginUserResponse, +>( + options: Options, ) => (options.client ?? _heyApiClient).get< TComposable, - LoginUserResponse, - unknown + LoginUserResponse | DefaultT, + unknown, + DefaultT >({ responseValidator: async (data) => await zLoginUserResponse.parseAsync(data), @@ -417,10 +523,18 @@ export const loginUser = ( /** * Logs out current logged in user session */ -export const logoutUser = ( - options: Options, +export const logoutUser = < + TComposable extends Composable, + DefaultT = undefined, +>( + options: Options, ) => - (options.client ?? _heyApiClient).get({ + (options.client ?? _heyApiClient).get< + TComposable, + unknown | DefaultT, + unknown, + DefaultT + >({ url: '/user/logout', ...options, }); @@ -429,10 +543,18 @@ export const logoutUser = ( * Delete user * This can only be done by the logged in user. */ -export const deleteUser = ( - options: Options, +export const deleteUser = < + TComposable extends Composable, + DefaultT = undefined, +>( + options: Options, ) => - (options.client ?? _heyApiClient).delete({ + (options.client ?? _heyApiClient).delete< + TComposable, + unknown | DefaultT, + unknown, + DefaultT + >({ url: '/user/{username}', ...options, }); @@ -440,13 +562,22 @@ export const deleteUser = ( /** * Get user by user name */ -export const getUserByName = ( - options: Options, +export const getUserByName = < + TComposable extends Composable, + DefaultT extends GetUserByNameResponse = GetUserByNameResponse, +>( + options: Options< + TComposable, + GetUserByNameData, + GetUserByNameResponse, + DefaultT + >, ) => (options.client ?? _heyApiClient).get< TComposable, - GetUserByNameResponse, - unknown + GetUserByNameResponse | DefaultT, + unknown, + DefaultT >({ responseTransformer: getUserByNameResponseTransformer, responseValidator: async (data) => @@ -459,10 +590,18 @@ export const getUserByName = ( * Update user * This can only be done by the logged in user. */ -export const updateUser = ( - options: Options, +export const updateUser = < + TComposable extends Composable, + DefaultT = undefined, +>( + options: Options, ) => - (options.client ?? _heyApiClient).put({ + (options.client ?? _heyApiClient).put< + TComposable, + unknown | DefaultT, + unknown, + DefaultT + >({ url: '/user/{username}', ...options, headers: { diff --git a/examples/openapi-ts-nuxt/client/types.gen.ts b/examples/openapi-ts-nuxt/client/types.gen.ts index d2c18d999..d39ddba5a 100644 --- a/examples/openapi-ts-nuxt/client/types.gen.ts +++ b/examples/openapi-ts-nuxt/client/types.gen.ts @@ -561,3 +561,7 @@ export type UpdateUserResponses = { */ default: unknown; }; + +export type ClientOptions = { + baseURL: `${string}://${string}/v3` | (string & {}); +}; diff --git a/examples/openapi-ts-nuxt/components/home.vue b/examples/openapi-ts-nuxt/components/home.vue index 8366391ef..a6921afa5 100644 --- a/examples/openapi-ts-nuxt/components/home.vue +++ b/examples/openapi-ts-nuxt/components/home.vue @@ -38,6 +38,10 @@ const query = computed(() => ({ */ const asyncData = await getPetById({ asyncDataOptions: { + default: () => ({ + name: 'Default Pet', + photoUrls: [], + }), watch: [petId], }, composable: 'useAsyncData', diff --git a/packages/client-nuxt/src/client.ts b/packages/client-nuxt/src/client.ts index 0c78dd297..9e99957f3 100644 --- a/packages/client-nuxt/src/client.ts +++ b/packages/client-nuxt/src/client.ts @@ -1,4 +1,3 @@ -import type { NuxtApp } from 'nuxt/app'; import { useAsyncData, useFetch, @@ -111,8 +110,7 @@ export const createClient = (config: Config = {}): Client => { : useFetch(() => buildUrl(opts), opts); } - const handler: (ctx?: NuxtApp) => Promise = () => - executeFetchFn(opts, fetchFn); + const handler: any = () => executeFetchFn(opts, fetchFn); if (composable === 'useAsyncData') { return key diff --git a/packages/client-nuxt/src/types.ts b/packages/client-nuxt/src/types.ts index 7e9565575..c96897187 100644 --- a/packages/client-nuxt/src/types.ts +++ b/packages/client-nuxt/src/types.ts @@ -30,6 +30,11 @@ type WithRefs = { : NonNullable | Ref>; }; +// copied from Nuxt +export type KeysOf = Array< + T extends T ? (keyof T extends string ? keyof T : never) : never +>; + export interface Config extends Omit< FetchOptions, @@ -53,6 +58,8 @@ export interface Config export interface RequestOptions< TComposable extends Composable = Composable, + ResT = unknown, + DefaultT = undefined, Url extends string = string, > extends Config, WithRefs<{ @@ -65,7 +72,7 @@ export interface RequestOptions< path?: FetchOptions['query']; query?: FetchOptions['query']; }> { - asyncDataOptions?: AsyncDataOptions; + asyncDataOptions?: AsyncDataOptions, DefaultT>; composable: TComposable; key?: string; /** @@ -77,18 +84,18 @@ export interface RequestOptions< export type RequestResult< TComposable extends Composable, - TData, + ResT, TError, > = TComposable extends '$fetch' - ? ReturnType> + ? ReturnType> : TComposable extends 'useAsyncData' - ? ReturnType> + ? ReturnType> : TComposable extends 'useFetch' - ? ReturnType> + ? ReturnType> : TComposable extends 'useLazyAsyncData' - ? ReturnType> + ? ReturnType> : TComposable extends 'useLazyFetch' - ? ReturnType> + ? ReturnType> : never; export interface ClientOptions { @@ -97,20 +104,22 @@ export interface ClientOptions { type MethodFn = < TComposable extends Composable, - TData = unknown, + ResT = unknown, TError = unknown, + DefaultT = undefined, >( - options: Omit, 'method'>, -) => RequestResult; + options: Omit, 'method'>, +) => RequestResult; type RequestFn = < TComposable extends Composable, - TData = unknown, + ResT = unknown, TError = unknown, + DefaultT = undefined, >( - options: Omit, 'method'> & - Pick>, 'method'>, -) => RequestResult; + options: Omit, 'method'> & + Pick>, 'method'>, +) => RequestResult; /** * The `createClientConfig()` function will be called on client initialization @@ -149,7 +158,12 @@ type OmitKeys = Pick>; export type Options< TComposable extends Composable, TData extends TDataShape = TDataShape, -> = OmitKeys, 'body' | 'path' | 'query' | 'url'> & + ResT = unknown, + DefaultT = undefined, +> = OmitKeys< + RequestOptions, + 'body' | 'path' | 'query' | 'url' +> & WithRefs>; export type OptionsLegacyParser = TData extends { body?: any } diff --git a/packages/openapi-ts/src/plugins/@hey-api/sdk/constants.ts b/packages/openapi-ts/src/plugins/@hey-api/sdk/constants.ts new file mode 100644 index 000000000..5b5567560 --- /dev/null +++ b/packages/openapi-ts/src/plugins/@hey-api/sdk/constants.ts @@ -0,0 +1,3 @@ +export const nuxtTypeComposable = 'TComposable'; +export const nuxtTypeDefault = 'DefaultT'; +export const nuxtTypeResponse = 'ResT'; diff --git a/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts b/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts index 59fc63814..25c2ea9ad 100644 --- a/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts +++ b/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts @@ -25,6 +25,7 @@ import { importIdentifierError, importIdentifierResponse, } from '../typescript/ref'; +import { nuxtTypeComposable, nuxtTypeDefault } from './constants'; import { serviceFunctionIdentifier } from './plugin-legacy'; import { createTypeOptions } from './typeOptions'; import type { Config } from './types'; @@ -47,8 +48,6 @@ export interface Auth { type: 'apiKey' | 'http'; } -const nuxtTypeComposable = 'TComposable'; - export const operationOptionsType = ({ context, file, @@ -61,12 +60,17 @@ export const operationOptionsType = ({ throwOnError?: string; }) => { const identifierData = importIdentifierData({ context, file, operation }); + const identifierResponse = importIdentifierResponse({ + context, + file, + operation, + }); const optionsName = clientApi.Options.name; const client = getClientPlugin(context.config); if (client.name === '@hey-api/client-nuxt') { - return `${optionsName}<${nuxtTypeComposable}, ${identifierData.name || 'unknown'}>`; + return `${optionsName}<${nuxtTypeComposable}, ${identifierData.name || 'unknown'}, ${identifierResponse.name || 'unknown'}, ${nuxtTypeDefault}>`; } // TODO: refactor this to be more generic, works for now @@ -503,7 +507,12 @@ const operationStatements = ({ name: compiler.identifier({ text: operation.method }), }), types: isNuxtClient - ? [nuxtTypeComposable, responseType, errorType] + ? [ + nuxtTypeComposable, + `${responseType} | ${nuxtTypeDefault}`, + errorType, + nuxtTypeDefault, + ] : [responseType, errorType, 'ThrowOnError'], }), ]; @@ -524,6 +533,11 @@ const generateClassSdk = ({ context.subscribe('operation', ({ operation }) => { const isRequiredOptions = !plugin.client || isNuxtClient || hasOperationDataRequired(operation); + const identifierResponse = importIdentifierResponse({ + context, + file, + operation, + }); const node = compiler.methodDeclaration({ accessLevel: 'public', comment: [ @@ -564,6 +578,19 @@ const generateClassSdk = ({ extends: compiler.typeNode('Composable'), name: nuxtTypeComposable, }, + { + default: identifierResponse.name + ? compiler.typeReferenceNode({ + typeName: identifierResponse.name, + }) + : compiler.typeNode('undefined'), + extends: identifierResponse.name + ? compiler.typeReferenceNode({ + typeName: identifierResponse.name, + }) + : undefined, + name: nuxtTypeDefault, + }, ] : [ { @@ -618,6 +645,11 @@ const generateFlatSdk = ({ context.subscribe('operation', ({ operation }) => { const isRequiredOptions = !plugin.client || isNuxtClient || hasOperationDataRequired(operation); + const identifierResponse = importIdentifierResponse({ + context, + file, + operation, + }); const node = compiler.constVariable({ comment: [ operation.deprecated && '@deprecated', @@ -652,6 +684,19 @@ const generateFlatSdk = ({ extends: compiler.typeNode('Composable'), name: nuxtTypeComposable, }, + { + default: identifierResponse.name + ? compiler.typeReferenceNode({ + typeName: identifierResponse.name, + }) + : compiler.typeNode('undefined'), + extends: identifierResponse.name + ? compiler.typeReferenceNode({ + typeName: identifierResponse.name, + }) + : undefined, + name: nuxtTypeDefault, + }, ] : [ { diff --git a/packages/openapi-ts/src/plugins/@hey-api/sdk/typeOptions.ts b/packages/openapi-ts/src/plugins/@hey-api/sdk/typeOptions.ts index 6d8ccb2cd..5bc20ace8 100644 --- a/packages/openapi-ts/src/plugins/@hey-api/sdk/typeOptions.ts +++ b/packages/openapi-ts/src/plugins/@hey-api/sdk/typeOptions.ts @@ -4,6 +4,7 @@ import type { FileImportResult } from '../../../generate/files'; import type { IR } from '../../../ir/types'; import type { Plugin } from '../../types'; import { getClientPlugin } from '../client-core/utils'; +import { nuxtTypeDefault, nuxtTypeResponse } from './constants'; import { sdkId } from './plugin'; import type { Config } from './types'; @@ -45,6 +46,8 @@ export const createTypeOptions = ({ ? [ compiler.typeReferenceNode({ typeName: 'TComposable' }), compiler.typeReferenceNode({ typeName: 'TData' }), + compiler.typeReferenceNode({ typeName: nuxtTypeResponse }), + compiler.typeReferenceNode({ typeName: nuxtTypeDefault }), ] : [ compiler.typeReferenceNode({ typeName: 'TData' }), @@ -99,6 +102,14 @@ export const createTypeOptions = ({ }), name: 'TData', }), + compiler.typeParameterDeclaration({ + defaultType: compiler.keywordTypeNode({ keyword: 'unknown' }), + name: nuxtTypeResponse, + }), + compiler.typeParameterDeclaration({ + defaultType: compiler.keywordTypeNode({ keyword: 'undefined' }), + name: nuxtTypeDefault, + }), ] : [ compiler.typeParameterDeclaration({ diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.cjs b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.cjs index f334c1f1a..4790ecf79 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.cjs +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.cjs @@ -1,2 +1,2 @@ -'use strict';var app=require('nuxt/app'),vue=require('vue');var E=async(r,t)=>{let e=typeof t=="function"?await t(r):t;if(e)return r.scheme==="bearer"?`Bearer ${e}`:r.scheme==="basic"?`Basic ${btoa(e)}`:e},U=(r,t,e)=>{typeof e=="string"||e instanceof Blob?r.append(t,e):r.append(t,JSON.stringify(e));},k=(r,t,e)=>{typeof e=="string"?r.append(t,e):r.append(t,JSON.stringify(e));},F={bodySerializer:r=>{let t=new FormData;return Object.entries(r).forEach(([e,i])=>{i!=null&&(Array.isArray(i)?i.forEach(o=>U(t,e,o)):U(t,e,i));}),t}},C={bodySerializer:r=>JSON.stringify(r,(t,e)=>typeof e=="bigint"?e.toString():e)},N={bodySerializer:r=>{let t=new URLSearchParams;return Object.entries(r).forEach(([e,i])=>{i!=null&&(Array.isArray(i)?i.forEach(o=>k(t,e,o)):k(t,e,i));}),t.toString()}},I=r=>{switch(r){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Q=r=>{switch(r){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},V=r=>{switch(r){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},S=({allowReserved:r,explode:t,name:e,style:i,value:o})=>{if(!t){let a=(r?o:o.map(u=>encodeURIComponent(u))).join(Q(i));switch(i){case "label":return `.${a}`;case "matrix":return `;${e}=${a}`;case "simple":return a;default:return `${e}=${a}`}}let n=I(i),s=o.map(a=>i==="label"||i==="simple"?r?a:encodeURIComponent(a):p({allowReserved:r,name:e,value:a})).join(n);return i==="label"||i==="matrix"?n+s:s},p=({allowReserved:r,name:t,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${r?e:encodeURIComponent(e)}`},z=({allowReserved:r,explode:t,name:e,style:i,value:o})=>{if(o instanceof Date)return `${e}=${o.toISOString()}`;if(i!=="deepObject"&&!t){let a=[];Object.entries(o).forEach(([l,d])=>{a=[...a,l,r?d:encodeURIComponent(d)];});let u=a.join(",");switch(i){case "form":return `${e}=${u}`;case "label":return `.${u}`;case "matrix":return `;${e}=${u}`;default:return u}}let n=V(i),s=Object.entries(o).map(([a,u])=>p({allowReserved:r,name:i==="deepObject"?`${e}[${a}]`:a,value:u})).join(n);return i==="label"||i==="matrix"?n+s:s};var W=/\{[^{}]+\}/g,J=({path:r,url:t})=>{let e=t,i=t.match(W);if(i)for(let o of i){let n=false,s=o.substring(1,o.length-1),a="simple";s.endsWith("*")&&(n=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),a="label"):s.startsWith(";")&&(s=s.substring(1),a="matrix");let u=vue.toValue(vue.toValue(r)[s]);if(u==null)continue;if(Array.isArray(u)){e=e.replace(o,S({explode:n,name:s,style:a,value:u}));continue}if(typeof u=="object"){e=e.replace(o,z({explode:n,name:s,style:a,value:u}));continue}if(a==="matrix"){e=e.replace(o,`;${p({name:s,value:u})}`);continue}let l=encodeURIComponent(a==="label"?`.${u}`:u);e=e.replace(o,l);}return e},v=({allowReserved:r,array:t,object:e}={})=>o=>{let n=[],s=vue.toValue(o);if(s&&typeof s=="object")for(let a in s){let u=vue.toValue(s[a]);if(u!=null){if(Array.isArray(u)){n=[...n,S({allowReserved:r,explode:true,name:a,style:"form",value:u,...t})];continue}if(typeof u=="object"){n=[...n,z({allowReserved:r,explode:true,name:a,style:"deepObject",value:u,...e})];continue}n=[...n,p({allowReserved:r,name:a,value:u})];}}return n.join("&")},B=async({security:r,...t})=>{for(let e of r){let i=await E(e,t.auth);if(!i)continue;let o=e.name??"Authorization";switch(e.in){case "query":t.query||(t.query={}),vue.toValue(t.query)[o]=i;break;case "header":default:t.headers.set(o,i);break}return}},h=r=>M({baseUrl:r.baseURL,path:r.path,query:r.query,querySerializer:typeof r.querySerializer=="function"?r.querySerializer:v(r.querySerializer),url:r.url}),M=({baseUrl:r,path:t,query:e,querySerializer:i,url:o})=>{let n=o.startsWith("/")?o:`/${o}`,s=(r??"")+n;t&&(s=J({path:t,url:s}));let a=e?i(e):"";return a.startsWith("?")&&(a=a.substring(1)),a&&(s+=`?${a}`),s},A=(r,t)=>{let e={...r,...t};return e.baseURL?.endsWith("/")&&(e.baseURL=e.baseURL.substring(0,e.baseURL.length-1)),e.headers=O(r.headers,t.headers),e},O=(...r)=>{let t=new Headers;for(let e of r){if(!e||typeof e!="object")continue;let i=e;vue.isRef(i)&&(i=vue.unref(i));let o=i instanceof Headers?i.entries():Object.entries(i);for(let[n,s]of o)if(s===null)t.delete(n);else if(Array.isArray(s))for(let a of s)t.append(n,y(a));else if(s!==undefined){let a=y(s);t.set(n,typeof a=="object"?JSON.stringify(a):a);}}return t},w=(...r)=>r.reduce((t,e)=>{if(typeof e=="function")t.push(e);else if(Array.isArray(e))return t.concat(e);return t},[]),_=v({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),K={"Content-Type":"application/json"},q=(r={})=>({...C,headers:K,querySerializer:_,...r}),y=r=>{if(r===null||typeof r!="object"||r instanceof Headers)return vue.isRef(r)?vue.unref(r):r;if(Array.isArray(r))return r.map(e=>y(e));if(vue.isRef(r))return y(vue.unref(r));let t={};for(let e in r)t[e]=y(r[e]);return t},b=r=>r.body&&r.bodySerializer?r.bodySerializer(r.body):r.body,P=(r,t)=>{let e=y(r);return e.body=b(e),t(h(r),e)};var re=(r={})=>{let t=A(q(),r),e=()=>({...t}),i=n=>(t=A(t,n),e()),o=({asyncDataOptions:n,composable:s,key:a,...u})=>{let l={...t,...u,$fetch:u.$fetch??t.$fetch??$fetch,headers:O(t.headers,u.headers),onRequest:w(t.onRequest,u.onRequest),onResponse:w(t.onResponse,u.onResponse)},{responseTransformer:d,responseValidator:R,security:j}=l;j&&(l.onRequest=[async({options:c})=>{await B({auth:l.auth,headers:c.headers,query:c.query,security:j});},...l.onRequest]),(d||R)&&(l.onResponse=[...l.onResponse,async({options:c,response:f})=>{c.responseType&&c.responseType!=="json"||f.ok&&(R&&await R(f._data),d&&(f._data=await d(f._data)));}]),l.body||l.headers.delete("Content-Type");let $=l.$fetch;if(s==="$fetch")return P(l,$);if(s==="useFetch"||s==="useLazyFetch"){let c=vue.reactive({body:l.body,bodySerializer:l.bodySerializer}),f=vue.ref(b(l));return l.body=f,vue.watch(c,D=>{f.value=b(D);}),s==="useLazyFetch"?app.useLazyFetch(()=>h(l),l):app.useFetch(()=>h(l),l)}let g=()=>P(l,$);if(s==="useAsyncData")return a?app.useAsyncData(a,g,n):app.useAsyncData(g,n);if(s==="useLazyAsyncData")return a?app.useLazyAsyncData(a,g,n):app.useLazyAsyncData(g,n)};return {buildUrl:h,connect:n=>o({...n,method:"CONNECT"}),delete:n=>o({...n,method:"DELETE"}),get:n=>o({...n,method:"GET"}),getConfig:e,head:n=>o({...n,method:"HEAD"}),options:n=>o({...n,method:"OPTIONS"}),patch:n=>o({...n,method:"PATCH"}),post:n=>o({...n,method:"POST"}),put:n=>o({...n,method:"PUT"}),request:o,setConfig:i,trace:n=>o({...n,method:"TRACE"})}};exports.createClient=re;exports.createConfig=q;exports.formDataBodySerializer=F;exports.jsonBodySerializer=C;exports.urlSearchParamsBodySerializer=N;//# sourceMappingURL=index.cjs.map +'use strict';var app=require('nuxt/app'),vue=require('vue');var E=async(r,t)=>{let e=typeof t=="function"?await t(r):t;if(e)return r.scheme==="bearer"?`Bearer ${e}`:r.scheme==="basic"?`Basic ${btoa(e)}`:e},U=(r,t,e)=>{typeof e=="string"||e instanceof Blob?r.append(t,e):r.append(t,JSON.stringify(e));},k=(r,t,e)=>{typeof e=="string"?r.append(t,e):r.append(t,JSON.stringify(e));},F={bodySerializer:r=>{let t=new FormData;return Object.entries(r).forEach(([e,i])=>{i!=null&&(Array.isArray(i)?i.forEach(o=>U(t,e,o)):U(t,e,i));}),t}},C={bodySerializer:r=>JSON.stringify(r,(t,e)=>typeof e=="bigint"?e.toString():e)},I={bodySerializer:r=>{let t=new URLSearchParams;return Object.entries(r).forEach(([e,i])=>{i!=null&&(Array.isArray(i)?i.forEach(o=>k(t,e,o)):k(t,e,i));}),t.toString()}},N=r=>{switch(r){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Q=r=>{switch(r){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},V=r=>{switch(r){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},S=({allowReserved:r,explode:t,name:e,style:i,value:o})=>{if(!t){let a=(r?o:o.map(u=>encodeURIComponent(u))).join(Q(i));switch(i){case "label":return `.${a}`;case "matrix":return `;${e}=${a}`;case "simple":return a;default:return `${e}=${a}`}}let n=N(i),s=o.map(a=>i==="label"||i==="simple"?r?a:encodeURIComponent(a):p({allowReserved:r,name:e,value:a})).join(n);return i==="label"||i==="matrix"?n+s:s},p=({allowReserved:r,name:t,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${r?e:encodeURIComponent(e)}`},z=({allowReserved:r,explode:t,name:e,style:i,value:o})=>{if(o instanceof Date)return `${e}=${o.toISOString()}`;if(i!=="deepObject"&&!t){let a=[];Object.entries(o).forEach(([l,d])=>{a=[...a,l,r?d:encodeURIComponent(d)];});let u=a.join(",");switch(i){case "form":return `${e}=${u}`;case "label":return `.${u}`;case "matrix":return `;${e}=${u}`;default:return u}}let n=V(i),s=Object.entries(o).map(([a,u])=>p({allowReserved:r,name:i==="deepObject"?`${e}[${a}]`:a,value:u})).join(n);return i==="label"||i==="matrix"?n+s:s};var W=/\{[^{}]+\}/g,J=({path:r,url:t})=>{let e=t,i=t.match(W);if(i)for(let o of i){let n=false,s=o.substring(1,o.length-1),a="simple";s.endsWith("*")&&(n=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),a="label"):s.startsWith(";")&&(s=s.substring(1),a="matrix");let u=vue.toValue(vue.toValue(r)[s]);if(u==null)continue;if(Array.isArray(u)){e=e.replace(o,S({explode:n,name:s,style:a,value:u}));continue}if(typeof u=="object"){e=e.replace(o,z({explode:n,name:s,style:a,value:u}));continue}if(a==="matrix"){e=e.replace(o,`;${p({name:s,value:u})}`);continue}let l=encodeURIComponent(a==="label"?`.${u}`:u);e=e.replace(o,l);}return e},v=({allowReserved:r,array:t,object:e}={})=>o=>{let n=[],s=vue.toValue(o);if(s&&typeof s=="object")for(let a in s){let u=vue.toValue(s[a]);if(u!=null){if(Array.isArray(u)){n=[...n,S({allowReserved:r,explode:true,name:a,style:"form",value:u,...t})];continue}if(typeof u=="object"){n=[...n,z({allowReserved:r,explode:true,name:a,style:"deepObject",value:u,...e})];continue}n=[...n,p({allowReserved:r,name:a,value:u})];}}return n.join("&")},B=async({security:r,...t})=>{for(let e of r){let i=await E(e,t.auth);if(!i)continue;let o=e.name??"Authorization";switch(e.in){case "query":t.query||(t.query={}),vue.toValue(t.query)[o]=i;break;case "header":default:t.headers.set(o,i);break}return}},h=r=>M({baseUrl:r.baseURL,path:r.path,query:r.query,querySerializer:typeof r.querySerializer=="function"?r.querySerializer:v(r.querySerializer),url:r.url}),M=({baseUrl:r,path:t,query:e,querySerializer:i,url:o})=>{let n=o.startsWith("/")?o:`/${o}`,s=(r??"")+n;t&&(s=J({path:t,url:s}));let a=e?i(e):"";return a.startsWith("?")&&(a=a.substring(1)),a&&(s+=`?${a}`),s},A=(r,t)=>{let e={...r,...t};return e.baseURL?.endsWith("/")&&(e.baseURL=e.baseURL.substring(0,e.baseURL.length-1)),e.headers=O(r.headers,t.headers),e},O=(...r)=>{let t=new Headers;for(let e of r){if(!e||typeof e!="object")continue;let i=e;vue.isRef(i)&&(i=vue.unref(i));let o=i instanceof Headers?i.entries():Object.entries(i);for(let[n,s]of o)if(s===null)t.delete(n);else if(Array.isArray(s))for(let a of s)t.append(n,y(a));else if(s!==undefined){let a=y(s);t.set(n,typeof a=="object"?JSON.stringify(a):a);}}return t},q=(...r)=>r.reduce((t,e)=>{if(typeof e=="function")t.push(e);else if(Array.isArray(e))return t.concat(e);return t},[]),_=v({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),K={"Content-Type":"application/json"},w=(r={})=>({...C,headers:K,querySerializer:_,...r}),y=r=>{if(r===null||typeof r!="object"||r instanceof Headers)return vue.isRef(r)?vue.unref(r):r;if(Array.isArray(r))return r.map(e=>y(e));if(vue.isRef(r))return y(vue.unref(r));let t={};for(let e in r)t[e]=y(r[e]);return t},b=r=>r.body&&r.bodySerializer?r.bodySerializer(r.body):r.body,P=(r,t)=>{let e=y(r);return e.body=b(e),t(h(r),e)};var re=(r={})=>{let t=A(w(),r),e=()=>({...t}),i=n=>(t=A(t,n),e()),o=({asyncDataOptions:n,composable:s,key:a,...u})=>{let l={...t,...u,$fetch:u.$fetch??t.$fetch??$fetch,headers:O(t.headers,u.headers),onRequest:q(t.onRequest,u.onRequest),onResponse:q(t.onResponse,u.onResponse)},{responseTransformer:d,responseValidator:R,security:j}=l;j&&(l.onRequest=[async({options:c})=>{await B({auth:l.auth,headers:c.headers,query:c.query,security:j});},...l.onRequest]),(d||R)&&(l.onResponse=[...l.onResponse,async({options:c,response:f})=>{c.responseType&&c.responseType!=="json"||f.ok&&(R&&await R(f._data),d&&(f._data=await d(f._data)));}]),l.body||l.headers.delete("Content-Type");let $=l.$fetch;if(s==="$fetch")return P(l,$);if(s==="useFetch"||s==="useLazyFetch"){let c=vue.reactive({body:l.body,bodySerializer:l.bodySerializer}),f=vue.ref(b(l));return l.body=f,vue.watch(c,D=>{f.value=b(D);}),s==="useLazyFetch"?app.useLazyFetch(()=>h(l),l):app.useFetch(()=>h(l),l)}let g=()=>P(l,$);if(s==="useAsyncData")return a?app.useAsyncData(a,g,n):app.useAsyncData(g,n);if(s==="useLazyAsyncData")return a?app.useLazyAsyncData(a,g,n):app.useLazyAsyncData(g,n)};return {buildUrl:h,connect:n=>o({...n,method:"CONNECT"}),delete:n=>o({...n,method:"DELETE"}),get:n=>o({...n,method:"GET"}),getConfig:e,head:n=>o({...n,method:"HEAD"}),options:n=>o({...n,method:"OPTIONS"}),patch:n=>o({...n,method:"PATCH"}),post:n=>o({...n,method:"POST"}),put:n=>o({...n,method:"PUT"}),request:o,setConfig:i,trace:n=>o({...n,method:"TRACE"})}};exports.createClient=re;exports.createConfig=w;exports.formDataBodySerializer=F;exports.jsonBodySerializer=C;exports.urlSearchParamsBodySerializer=I;//# sourceMappingURL=index.cjs.map //# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.cts b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.cts index 73bce3810..7500bf0b4 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.cts +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.cts @@ -115,6 +115,7 @@ type QuerySerializer = (query: Parameters[0]['query']) => st type WithRefs = { [K in keyof TData]: NonNullable extends object ? WithRefs> | Ref> : NonNullable | Ref>; }; +type KeysOf = Array; interface Config extends Omit, 'baseURL' | 'body' | 'headers' | 'method' | 'query'>, WithRefs, 'query'>>, Omit { /** * Base URL for all requests made by this client. @@ -129,7 +130,7 @@ interface Config extends Omit extends Config, WithRefs<{ +interface RequestOptions extends Config, WithRefs<{ /** * Any body that you want to add to your request. * @@ -139,7 +140,7 @@ interface RequestOptions['query']; query?: FetchOptions['query']; }> { - asyncDataOptions?: AsyncDataOptions; + asyncDataOptions?: AsyncDataOptions, DefaultT>; composable: TComposable; key?: string; /** @@ -148,12 +149,12 @@ interface RequestOptions; url: Url; } -type RequestResult = TComposable extends '$fetch' ? ReturnType> : TComposable extends 'useAsyncData' ? ReturnType> : TComposable extends 'useFetch' ? ReturnType> : TComposable extends 'useLazyAsyncData' ? ReturnType> : TComposable extends 'useLazyFetch' ? ReturnType> : never; +type RequestResult = TComposable extends '$fetch' ? ReturnType> : TComposable extends 'useAsyncData' ? ReturnType> : TComposable extends 'useFetch' ? ReturnType> : TComposable extends 'useLazyAsyncData' ? ReturnType> : TComposable extends 'useLazyFetch' ? ReturnType> : never; interface ClientOptions { baseURL?: string; } -type MethodFn = (options: Omit, 'method'>) => RequestResult; -type RequestFn = (options: Omit, 'method'> & Pick>, 'method'>) => RequestResult; +type MethodFn = (options: Omit, 'method'>) => RequestResult; +type RequestFn = (options: Omit, 'method'> & Pick>, 'method'>) => RequestResult; /** * The `createClientConfig()` function will be called on client initialization * and the returned object will become the client's initial configuration. @@ -174,7 +175,7 @@ type BuildUrlOptions = Omit>(options: BuildUrlOptions) => string; type Client = Client$1; type OmitKeys = Pick>; -type Options = OmitKeys, 'body' | 'path' | 'query' | 'url'> & WithRefs>; +type Options = OmitKeys, 'body' | 'path' | 'query' | 'url'> & WithRefs>; type OptionsLegacyParser = TData extends { body?: any; } ? TData extends { diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.ts b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.ts index 73bce3810..7500bf0b4 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.ts +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/client/index.d.ts @@ -115,6 +115,7 @@ type QuerySerializer = (query: Parameters[0]['query']) => st type WithRefs = { [K in keyof TData]: NonNullable extends object ? WithRefs> | Ref> : NonNullable | Ref>; }; +type KeysOf = Array; interface Config extends Omit, 'baseURL' | 'body' | 'headers' | 'method' | 'query'>, WithRefs, 'query'>>, Omit { /** * Base URL for all requests made by this client. @@ -129,7 +130,7 @@ interface Config extends Omit extends Config, WithRefs<{ +interface RequestOptions extends Config, WithRefs<{ /** * Any body that you want to add to your request. * @@ -139,7 +140,7 @@ interface RequestOptions['query']; query?: FetchOptions['query']; }> { - asyncDataOptions?: AsyncDataOptions; + asyncDataOptions?: AsyncDataOptions, DefaultT>; composable: TComposable; key?: string; /** @@ -148,12 +149,12 @@ interface RequestOptions; url: Url; } -type RequestResult = TComposable extends '$fetch' ? ReturnType> : TComposable extends 'useAsyncData' ? ReturnType> : TComposable extends 'useFetch' ? ReturnType> : TComposable extends 'useLazyAsyncData' ? ReturnType> : TComposable extends 'useLazyFetch' ? ReturnType> : never; +type RequestResult = TComposable extends '$fetch' ? ReturnType> : TComposable extends 'useAsyncData' ? ReturnType> : TComposable extends 'useFetch' ? ReturnType> : TComposable extends 'useLazyAsyncData' ? ReturnType> : TComposable extends 'useLazyFetch' ? ReturnType> : never; interface ClientOptions { baseURL?: string; } -type MethodFn = (options: Omit, 'method'>) => RequestResult; -type RequestFn = (options: Omit, 'method'> & Pick>, 'method'>) => RequestResult; +type MethodFn = (options: Omit, 'method'>) => RequestResult; +type RequestFn = (options: Omit, 'method'> & Pick>, 'method'>) => RequestResult; /** * The `createClientConfig()` function will be called on client initialization * and the returned object will become the client's initial configuration. @@ -174,7 +175,7 @@ type BuildUrlOptions = Omit>(options: BuildUrlOptions) => string; type Client = Client$1; type OmitKeys = Pick>; -type Options = OmitKeys, 'body' | 'path' | 'query' | 'url'> & WithRefs>; +type Options = OmitKeys, 'body' | 'path' | 'query' | 'url'> & WithRefs>; type OptionsLegacyParser = TData extends { body?: any; } ? TData extends { diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/sdk.gen.ts b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/sdk.gen.ts index 3f917d055..fb9e7463c 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/sdk.gen.ts +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/bundle/sdk.gen.ts @@ -4,7 +4,7 @@ import { type Options as ClientOptions, type Composable, type TDataShape, type C import type { ExportData, PatchApiVbyApiVersionNoTagData, ImportData, ImportResponse, FooWowData, ApiVVersionODataControllerCountData, ApiVVersionODataControllerCountResponse, GetApiVbyApiVersionSimpleOperationData, GetApiVbyApiVersionSimpleOperationResponse, GetApiVbyApiVersionSimpleOperationError, DeleteCallWithoutParametersAndResponseData, GetCallWithoutParametersAndResponseData, HeadCallWithoutParametersAndResponseData, OptionsCallWithoutParametersAndResponseData, PatchCallWithoutParametersAndResponseData, PostCallWithoutParametersAndResponseData, PutCallWithoutParametersAndResponseData, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostCallWithOptionalParamResponse, PostApiVbyApiVersionRequestBodyData, PostApiVbyApiVersionFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, DuplicateNameData, DuplicateName2Data, DuplicateName3Data, DuplicateName4Data, CallWithNoContentResponseData, CallWithNoContentResponseResponse, CallWithResponseAndNoContentResponseData, CallWithResponseAndNoContentResponseResponse, DummyAData, DummyAResponse, DummyBData, DummyBResponse, CallWithResponseData, CallWithResponseResponse, CallWithDuplicateResponsesData, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError, CallWithResponsesData, CallWithResponsesResponse, CallWithResponsesError, CollectionFormatData, TypesData, TypesResponse, UploadFileData, UploadFileResponse, FileResponseData, FileResponseResponse, ComplexTypesData, ComplexTypesResponse, MultipartResponseData, MultipartResponseResponse, MultipartRequestData, ComplexParamsData, ComplexParamsResponse, CallWithResultFromHeaderData, TestErrorCodeData, NonAsciiæøåÆøÅöôêÊ字符串Data, NonAsciiæøåÆøÅöôêÊ字符串Response, PutWithFormUrlEncodedData } from './types.gen'; import { client as _heyApiClient } from './client.gen'; -export type Options = ClientOptions & { +export type Options = ClientOptions & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a @@ -18,22 +18,22 @@ export type Options; }; -export const export_ = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const export_ = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const patchApiVbyApiVersionNoTag = (options: Options) => { - return (options.client ?? _heyApiClient).patch({ +export const patchApiVbyApiVersionNoTag = (options: Options) => { + return (options.client ?? _heyApiClient).patch({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const import_ = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const import_ = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/no+tag', ...options, headers: { @@ -43,85 +43,85 @@ export const import_ = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const fooWow = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const apiVVersionODataControllerCount = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const apiVVersionODataControllerCount = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple/$count', ...options }); }; -export const getApiVbyApiVersionSimpleOperation = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getApiVbyApiVersionSimpleOperation = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple:operation', ...options }); }; -export const deleteCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const deleteCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/simple', ...options }); }; -export const getCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple', ...options }); }; -export const headCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).head({ +export const headCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).head({ url: '/api/v{api-version}/simple', ...options }); }; -export const optionsCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).options({ +export const optionsCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).options({ url: '/api/v{api-version}/simple', ...options }); }; -export const patchCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).patch({ +export const patchCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).patch({ url: '/api/v{api-version}/simple', ...options }); }; -export const postCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/simple', ...options }); }; -export const putCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const putCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/simple', ...options }); }; -export const deleteFoo = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const deleteFoo = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', ...options }); }; -export const callWithDescriptions = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDescriptions = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/descriptions', ...options }); @@ -130,15 +130,15 @@ export const callWithDescriptions = (options: Op /** * @deprecated */ -export const deprecatedCall = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const deprecatedCall = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/deprecated', ...options }); }; -export const callWithParameters = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithParameters = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/{parameterPath}', ...options, headers: { @@ -148,8 +148,8 @@ export const callWithParameters = (options: Opti }); }; -export const callWithWeirdParameterNames = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithWeirdParameterNames = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}', ...options, headers: { @@ -159,8 +159,8 @@ export const callWithWeirdParameterNames = (opti }); }; -export const getCallWithOptionalParam = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getCallWithOptionalParam = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -170,8 +170,8 @@ export const getCallWithOptionalParam = (options }); }; -export const postCallWithOptionalParam = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postCallWithOptionalParam = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -181,8 +181,8 @@ export const postCallWithOptionalParam = (option }); }; -export const postApiVbyApiVersionRequestBody = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postApiVbyApiVersionRequestBody = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/requestBody', ...options, headers: { @@ -192,8 +192,8 @@ export const postApiVbyApiVersionRequestBody = ( }); }; -export const postApiVbyApiVersionFormData = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postApiVbyApiVersionFormData = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...formDataBodySerializer, url: '/api/v{api-version}/formData', ...options, @@ -204,120 +204,120 @@ export const postApiVbyApiVersionFormData = (opt }); }; -export const callWithDefaultParameters = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithDefaultParameters = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callWithDefaultOptionalParameters = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDefaultOptionalParameters = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callToTestOrderOfParams = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const callToTestOrderOfParams = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/defaults', ...options }); }; -export const duplicateName = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const duplicateName = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName2 = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const duplicateName2 = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName3 = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const duplicateName3 = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName4 = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const duplicateName4 = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const callWithNoContentResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithNoContentResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/no-content', ...options }); }; -export const callWithResponseAndNoContentResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithResponseAndNoContentResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/response-and-no-content', ...options }); }; -export const dummyA = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const dummyA = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/a', ...options }); }; -export const dummyB = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const dummyB = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/b', ...options }); }; -export const callWithResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithDuplicateResponses = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDuplicateResponses = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithResponses = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const callWithResponses = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/response', ...options }); }; -export const collectionFormat = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const collectionFormat = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/collectionFormat', ...options }); }; -export const types = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const types = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/types', ...options }); }; -export const uploadFile = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const uploadFile = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/upload', ...options, @@ -328,29 +328,29 @@ export const uploadFile = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const fileResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/file/{id}', ...options }); }; -export const complexTypes = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const complexTypes = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/complex', ...options }); }; -export const multipartResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const multipartResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multipart', ...options }); }; -export const multipartRequest = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const multipartRequest = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...formDataBodySerializer, url: '/api/v{api-version}/multipart', ...options, @@ -361,8 +361,8 @@ export const multipartRequest = (options: Option }); }; -export const complexParams = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const complexParams = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/complex/{id}', ...options, headers: { @@ -372,22 +372,22 @@ export const complexParams = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithResultFromHeader = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/header', ...options }); }; -export const testErrorCode = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const testErrorCode = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/error', ...options }); }; -export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options }); @@ -396,8 +396,8 @@ export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const putWithFormUrlEncoded = (options: Options) => { + return (options.client ?? _heyApiClient).put({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options, diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/sdk.gen.ts b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/sdk.gen.ts index 05170389f..52b3d2f89 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/sdk.gen.ts +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/sdk.gen.ts @@ -4,7 +4,7 @@ import { type Options as ClientOptions, type Composable, type TDataShape, type C import type { ExportData, PatchApiVbyApiVersionNoTagData, ImportData, ImportResponse, FooWowData, ApiVVersionODataControllerCountData, ApiVVersionODataControllerCountResponse, GetApiVbyApiVersionSimpleOperationData, GetApiVbyApiVersionSimpleOperationResponse, GetApiVbyApiVersionSimpleOperationError, DeleteCallWithoutParametersAndResponseData, GetCallWithoutParametersAndResponseData, HeadCallWithoutParametersAndResponseData, OptionsCallWithoutParametersAndResponseData, PatchCallWithoutParametersAndResponseData, PostCallWithoutParametersAndResponseData, PutCallWithoutParametersAndResponseData, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostCallWithOptionalParamResponse, PostApiVbyApiVersionRequestBodyData, PostApiVbyApiVersionFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, DuplicateNameData, DuplicateName2Data, DuplicateName3Data, DuplicateName4Data, CallWithNoContentResponseData, CallWithNoContentResponseResponse, CallWithResponseAndNoContentResponseData, CallWithResponseAndNoContentResponseResponse, DummyAData, DummyAResponse, DummyBData, DummyBResponse, CallWithResponseData, CallWithResponseResponse, CallWithDuplicateResponsesData, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError, CallWithResponsesData, CallWithResponsesResponse, CallWithResponsesError, CollectionFormatData, TypesData, TypesResponse, UploadFileData, UploadFileResponse, FileResponseData, FileResponseResponse, ComplexTypesData, ComplexTypesResponse, MultipartResponseData, MultipartResponseResponse, MultipartRequestData, ComplexParamsData, ComplexParamsResponse, CallWithResultFromHeaderData, TestErrorCodeData, NonAsciiæøåÆøÅöôêÊ字符串Data, NonAsciiæøåÆøÅöôêÊ字符串Response, PutWithFormUrlEncodedData } from './types.gen'; import { client as _heyApiClient } from './client.gen'; -export type Options = ClientOptions & { +export type Options = ClientOptions & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a @@ -18,22 +18,22 @@ export type Options; }; -export const export_ = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const export_ = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const patchApiVbyApiVersionNoTag = (options: Options) => { - return (options.client ?? _heyApiClient).patch({ +export const patchApiVbyApiVersionNoTag = (options: Options) => { + return (options.client ?? _heyApiClient).patch({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const import_ = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const import_ = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/no+tag', ...options, headers: { @@ -43,85 +43,85 @@ export const import_ = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const fooWow = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const apiVVersionODataControllerCount = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const apiVVersionODataControllerCount = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple/$count', ...options }); }; -export const getApiVbyApiVersionSimpleOperation = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getApiVbyApiVersionSimpleOperation = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple:operation', ...options }); }; -export const deleteCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const deleteCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/simple', ...options }); }; -export const getCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple', ...options }); }; -export const headCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).head({ +export const headCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).head({ url: '/api/v{api-version}/simple', ...options }); }; -export const optionsCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).options({ +export const optionsCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).options({ url: '/api/v{api-version}/simple', ...options }); }; -export const patchCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).patch({ +export const patchCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).patch({ url: '/api/v{api-version}/simple', ...options }); }; -export const postCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/simple', ...options }); }; -export const putCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const putCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/simple', ...options }); }; -export const deleteFoo = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const deleteFoo = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', ...options }); }; -export const callWithDescriptions = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDescriptions = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/descriptions', ...options }); @@ -130,15 +130,15 @@ export const callWithDescriptions = (options: Op /** * @deprecated */ -export const deprecatedCall = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const deprecatedCall = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/deprecated', ...options }); }; -export const callWithParameters = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithParameters = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/{parameterPath}', ...options, headers: { @@ -148,8 +148,8 @@ export const callWithParameters = (options: Opti }); }; -export const callWithWeirdParameterNames = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithWeirdParameterNames = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}', ...options, headers: { @@ -159,8 +159,8 @@ export const callWithWeirdParameterNames = (opti }); }; -export const getCallWithOptionalParam = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getCallWithOptionalParam = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -170,8 +170,8 @@ export const getCallWithOptionalParam = (options }); }; -export const postCallWithOptionalParam = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postCallWithOptionalParam = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -181,8 +181,8 @@ export const postCallWithOptionalParam = (option }); }; -export const postApiVbyApiVersionRequestBody = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postApiVbyApiVersionRequestBody = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/requestBody', ...options, headers: { @@ -192,8 +192,8 @@ export const postApiVbyApiVersionRequestBody = ( }); }; -export const postApiVbyApiVersionFormData = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postApiVbyApiVersionFormData = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...formDataBodySerializer, url: '/api/v{api-version}/formData', ...options, @@ -204,120 +204,120 @@ export const postApiVbyApiVersionFormData = (opt }); }; -export const callWithDefaultParameters = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithDefaultParameters = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callWithDefaultOptionalParameters = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDefaultOptionalParameters = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callToTestOrderOfParams = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const callToTestOrderOfParams = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/defaults', ...options }); }; -export const duplicateName = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const duplicateName = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName2 = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const duplicateName2 = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName3 = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const duplicateName3 = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName4 = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const duplicateName4 = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const callWithNoContentResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithNoContentResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/no-content', ...options }); }; -export const callWithResponseAndNoContentResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithResponseAndNoContentResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/response-and-no-content', ...options }); }; -export const dummyA = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const dummyA = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/a', ...options }); }; -export const dummyB = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const dummyB = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/b', ...options }); }; -export const callWithResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithDuplicateResponses = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDuplicateResponses = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithResponses = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const callWithResponses = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/response', ...options }); }; -export const collectionFormat = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const collectionFormat = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/collectionFormat', ...options }); }; -export const types = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const types = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/types', ...options }); }; -export const uploadFile = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const uploadFile = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/upload', ...options, @@ -328,29 +328,29 @@ export const uploadFile = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const fileResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/file/{id}', ...options }); }; -export const complexTypes = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const complexTypes = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/complex', ...options }); }; -export const multipartResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const multipartResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multipart', ...options }); }; -export const multipartRequest = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const multipartRequest = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...formDataBodySerializer, url: '/api/v{api-version}/multipart', ...options, @@ -361,8 +361,8 @@ export const multipartRequest = (options: Option }); }; -export const complexParams = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const complexParams = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/complex/{id}', ...options, headers: { @@ -372,22 +372,22 @@ export const complexParams = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithResultFromHeader = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/header', ...options }); }; -export const testErrorCode = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const testErrorCode = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/error', ...options }); }; -export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options }); @@ -396,8 +396,8 @@ export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const putWithFormUrlEncoded = (options: Options) => { + return (options.client ?? _heyApiClient).put({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options, diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/sdk.gen.ts b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/sdk.gen.ts index 05170389f..52b3d2f89 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/sdk.gen.ts +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/sdk.gen.ts @@ -4,7 +4,7 @@ import { type Options as ClientOptions, type Composable, type TDataShape, type C import type { ExportData, PatchApiVbyApiVersionNoTagData, ImportData, ImportResponse, FooWowData, ApiVVersionODataControllerCountData, ApiVVersionODataControllerCountResponse, GetApiVbyApiVersionSimpleOperationData, GetApiVbyApiVersionSimpleOperationResponse, GetApiVbyApiVersionSimpleOperationError, DeleteCallWithoutParametersAndResponseData, GetCallWithoutParametersAndResponseData, HeadCallWithoutParametersAndResponseData, OptionsCallWithoutParametersAndResponseData, PatchCallWithoutParametersAndResponseData, PostCallWithoutParametersAndResponseData, PutCallWithoutParametersAndResponseData, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostCallWithOptionalParamResponse, PostApiVbyApiVersionRequestBodyData, PostApiVbyApiVersionFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, DuplicateNameData, DuplicateName2Data, DuplicateName3Data, DuplicateName4Data, CallWithNoContentResponseData, CallWithNoContentResponseResponse, CallWithResponseAndNoContentResponseData, CallWithResponseAndNoContentResponseResponse, DummyAData, DummyAResponse, DummyBData, DummyBResponse, CallWithResponseData, CallWithResponseResponse, CallWithDuplicateResponsesData, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError, CallWithResponsesData, CallWithResponsesResponse, CallWithResponsesError, CollectionFormatData, TypesData, TypesResponse, UploadFileData, UploadFileResponse, FileResponseData, FileResponseResponse, ComplexTypesData, ComplexTypesResponse, MultipartResponseData, MultipartResponseResponse, MultipartRequestData, ComplexParamsData, ComplexParamsResponse, CallWithResultFromHeaderData, TestErrorCodeData, NonAsciiæøåÆøÅöôêÊ字符串Data, NonAsciiæøåÆøÅöôêÊ字符串Response, PutWithFormUrlEncodedData } from './types.gen'; import { client as _heyApiClient } from './client.gen'; -export type Options = ClientOptions & { +export type Options = ClientOptions & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a @@ -18,22 +18,22 @@ export type Options; }; -export const export_ = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const export_ = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const patchApiVbyApiVersionNoTag = (options: Options) => { - return (options.client ?? _heyApiClient).patch({ +export const patchApiVbyApiVersionNoTag = (options: Options) => { + return (options.client ?? _heyApiClient).patch({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const import_ = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const import_ = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/no+tag', ...options, headers: { @@ -43,85 +43,85 @@ export const import_ = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const fooWow = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const apiVVersionODataControllerCount = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const apiVVersionODataControllerCount = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple/$count', ...options }); }; -export const getApiVbyApiVersionSimpleOperation = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getApiVbyApiVersionSimpleOperation = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple:operation', ...options }); }; -export const deleteCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const deleteCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/simple', ...options }); }; -export const getCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/simple', ...options }); }; -export const headCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).head({ +export const headCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).head({ url: '/api/v{api-version}/simple', ...options }); }; -export const optionsCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).options({ +export const optionsCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).options({ url: '/api/v{api-version}/simple', ...options }); }; -export const patchCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).patch({ +export const patchCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).patch({ url: '/api/v{api-version}/simple', ...options }); }; -export const postCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/simple', ...options }); }; -export const putCallWithoutParametersAndResponse = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const putCallWithoutParametersAndResponse = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/simple', ...options }); }; -export const deleteFoo = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const deleteFoo = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', ...options }); }; -export const callWithDescriptions = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDescriptions = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/descriptions', ...options }); @@ -130,15 +130,15 @@ export const callWithDescriptions = (options: Op /** * @deprecated */ -export const deprecatedCall = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const deprecatedCall = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/deprecated', ...options }); }; -export const callWithParameters = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithParameters = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/{parameterPath}', ...options, headers: { @@ -148,8 +148,8 @@ export const callWithParameters = (options: Opti }); }; -export const callWithWeirdParameterNames = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithWeirdParameterNames = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}', ...options, headers: { @@ -159,8 +159,8 @@ export const callWithWeirdParameterNames = (opti }); }; -export const getCallWithOptionalParam = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const getCallWithOptionalParam = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -170,8 +170,8 @@ export const getCallWithOptionalParam = (options }); }; -export const postCallWithOptionalParam = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postCallWithOptionalParam = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -181,8 +181,8 @@ export const postCallWithOptionalParam = (option }); }; -export const postApiVbyApiVersionRequestBody = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postApiVbyApiVersionRequestBody = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/requestBody', ...options, headers: { @@ -192,8 +192,8 @@ export const postApiVbyApiVersionRequestBody = ( }); }; -export const postApiVbyApiVersionFormData = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const postApiVbyApiVersionFormData = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...formDataBodySerializer, url: '/api/v{api-version}/formData', ...options, @@ -204,120 +204,120 @@ export const postApiVbyApiVersionFormData = (opt }); }; -export const callWithDefaultParameters = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithDefaultParameters = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callWithDefaultOptionalParameters = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDefaultOptionalParameters = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callToTestOrderOfParams = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const callToTestOrderOfParams = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/defaults', ...options }); }; -export const duplicateName = (options: Options) => { - return (options.client ?? _heyApiClient).delete({ +export const duplicateName = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName2 = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const duplicateName2 = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName3 = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const duplicateName3 = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName4 = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const duplicateName4 = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const callWithNoContentResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithNoContentResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/no-content', ...options }); }; -export const callWithResponseAndNoContentResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithResponseAndNoContentResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/response-and-no-content', ...options }); }; -export const dummyA = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const dummyA = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/a', ...options }); }; -export const dummyB = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const dummyB = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multiple-tags/b', ...options }); }; -export const callWithResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const callWithResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithDuplicateResponses = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithDuplicateResponses = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithResponses = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const callWithResponses = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/response', ...options }); }; -export const collectionFormat = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const collectionFormat = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/collectionFormat', ...options }); }; -export const types = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const types = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/types', ...options }); }; -export const uploadFile = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const uploadFile = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/upload', ...options, @@ -328,29 +328,29 @@ export const uploadFile = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const fileResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/file/{id}', ...options }); }; -export const complexTypes = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const complexTypes = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/complex', ...options }); }; -export const multipartResponse = (options: Options) => { - return (options.client ?? _heyApiClient).get({ +export const multipartResponse = (options: Options) => { + return (options.client ?? _heyApiClient).get({ url: '/api/v{api-version}/multipart', ...options }); }; -export const multipartRequest = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const multipartRequest = (options: Options) => { + return (options.client ?? _heyApiClient).post({ ...formDataBodySerializer, url: '/api/v{api-version}/multipart', ...options, @@ -361,8 +361,8 @@ export const multipartRequest = (options: Option }); }; -export const complexParams = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const complexParams = (options: Options) => { + return (options.client ?? _heyApiClient).put({ url: '/api/v{api-version}/complex/{id}', ...options, headers: { @@ -372,22 +372,22 @@ export const complexParams = (options: Options(options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const callWithResultFromHeader = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/header', ...options }); }; -export const testErrorCode = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const testErrorCode = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/error', ...options }); }; -export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return (options.client ?? _heyApiClient).post({ +export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { + return (options.client ?? _heyApiClient).post({ url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options }); @@ -396,8 +396,8 @@ export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return (options.client ?? _heyApiClient).put({ +export const putWithFormUrlEncoded = (options: Options) => { + return (options.client ?? _heyApiClient).put({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options, diff --git a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/sdk.gen.ts b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/sdk.gen.ts index 7db2affb8..a9dcde0e7 100644 --- a/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/sdk.gen.ts +++ b/packages/openapi-ts/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/sdk.gen.ts @@ -3,7 +3,7 @@ import { type Options as ClientOptions, type Composable, type TDataShape, type Client, formDataBodySerializer, urlSearchParamsBodySerializer } from '@hey-api/client-nuxt'; import type { ExportData, PatchApiVbyApiVersionNoTagData, ImportData, ImportResponse, FooWowData, ApiVVersionODataControllerCountData, ApiVVersionODataControllerCountResponse, GetApiVbyApiVersionSimpleOperationData, GetApiVbyApiVersionSimpleOperationResponse, GetApiVbyApiVersionSimpleOperationError, DeleteCallWithoutParametersAndResponseData, GetCallWithoutParametersAndResponseData, HeadCallWithoutParametersAndResponseData, OptionsCallWithoutParametersAndResponseData, PatchCallWithoutParametersAndResponseData, PostCallWithoutParametersAndResponseData, PutCallWithoutParametersAndResponseData, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostCallWithOptionalParamResponse, PostApiVbyApiVersionRequestBodyData, PostApiVbyApiVersionFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, DuplicateNameData, DuplicateName2Data, DuplicateName3Data, DuplicateName4Data, CallWithNoContentResponseData, CallWithNoContentResponseResponse, CallWithResponseAndNoContentResponseData, CallWithResponseAndNoContentResponseResponse, DummyAData, DummyAResponse, DummyBData, DummyBResponse, CallWithResponseData, CallWithResponseResponse, CallWithDuplicateResponsesData, CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError, CallWithResponsesData, CallWithResponsesResponse, CallWithResponsesError, CollectionFormatData, TypesData, TypesResponse, UploadFileData, UploadFileResponse, FileResponseData, FileResponseResponse, ComplexTypesData, ComplexTypesResponse, MultipartResponseData, MultipartResponseResponse, MultipartRequestData, ComplexParamsData, ComplexParamsResponse, CallWithResultFromHeaderData, TestErrorCodeData, NonAsciiæøåÆøÅöôêÊ字符串Data, NonAsciiæøåÆøÅöôêÊ字符串Response, PutWithFormUrlEncodedData } from './types.gen'; -export type Options = ClientOptions & { +export type Options = ClientOptions & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a @@ -17,22 +17,22 @@ export type Options; }; -export const export_ = (options: Options) => { - return options.client.get({ +export const export_ = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const patchApiVbyApiVersionNoTag = (options: Options) => { - return options.client.patch({ +export const patchApiVbyApiVersionNoTag = (options: Options) => { + return options.client.patch({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const import_ = (options: Options) => { - return options.client.post({ +export const import_ = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/no+tag', ...options, headers: { @@ -42,85 +42,85 @@ export const import_ = (options: Options(options: Options) => { - return options.client.put({ +export const fooWow = (options: Options) => { + return options.client.put({ url: '/api/v{api-version}/no+tag', ...options }); }; -export const apiVVersionODataControllerCount = (options: Options) => { - return options.client.get({ +export const apiVVersionODataControllerCount = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/simple/$count', ...options }); }; -export const getApiVbyApiVersionSimpleOperation = (options: Options) => { - return options.client.get({ +export const getApiVbyApiVersionSimpleOperation = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/simple:operation', ...options }); }; -export const deleteCallWithoutParametersAndResponse = (options: Options) => { - return options.client.delete({ +export const deleteCallWithoutParametersAndResponse = (options: Options) => { + return options.client.delete({ url: '/api/v{api-version}/simple', ...options }); }; -export const getCallWithoutParametersAndResponse = (options: Options) => { - return options.client.get({ +export const getCallWithoutParametersAndResponse = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/simple', ...options }); }; -export const headCallWithoutParametersAndResponse = (options: Options) => { - return options.client.head({ +export const headCallWithoutParametersAndResponse = (options: Options) => { + return options.client.head({ url: '/api/v{api-version}/simple', ...options }); }; -export const optionsCallWithoutParametersAndResponse = (options: Options) => { - return options.client.options({ +export const optionsCallWithoutParametersAndResponse = (options: Options) => { + return options.client.options({ url: '/api/v{api-version}/simple', ...options }); }; -export const patchCallWithoutParametersAndResponse = (options: Options) => { - return options.client.patch({ +export const patchCallWithoutParametersAndResponse = (options: Options) => { + return options.client.patch({ url: '/api/v{api-version}/simple', ...options }); }; -export const postCallWithoutParametersAndResponse = (options: Options) => { - return options.client.post({ +export const postCallWithoutParametersAndResponse = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/simple', ...options }); }; -export const putCallWithoutParametersAndResponse = (options: Options) => { - return options.client.put({ +export const putCallWithoutParametersAndResponse = (options: Options) => { + return options.client.put({ url: '/api/v{api-version}/simple', ...options }); }; -export const deleteFoo = (options: Options) => { - return options.client.delete({ +export const deleteFoo = (options: Options) => { + return options.client.delete({ url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', ...options }); }; -export const callWithDescriptions = (options: Options) => { - return options.client.post({ +export const callWithDescriptions = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/descriptions', ...options }); @@ -129,15 +129,15 @@ export const callWithDescriptions = (options: Op /** * @deprecated */ -export const deprecatedCall = (options: Options) => { - return options.client.post({ +export const deprecatedCall = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/parameters/deprecated', ...options }); }; -export const callWithParameters = (options: Options) => { - return options.client.post({ +export const callWithParameters = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/parameters/{parameterPath}', ...options, headers: { @@ -147,8 +147,8 @@ export const callWithParameters = (options: Opti }); }; -export const callWithWeirdParameterNames = (options: Options) => { - return options.client.post({ +export const callWithWeirdParameterNames = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}', ...options, headers: { @@ -158,8 +158,8 @@ export const callWithWeirdParameterNames = (opti }); }; -export const getCallWithOptionalParam = (options: Options) => { - return options.client.get({ +export const getCallWithOptionalParam = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -169,8 +169,8 @@ export const getCallWithOptionalParam = (options }); }; -export const postCallWithOptionalParam = (options: Options) => { - return options.client.post({ +export const postCallWithOptionalParam = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/parameters', ...options, headers: { @@ -180,8 +180,8 @@ export const postCallWithOptionalParam = (option }); }; -export const postApiVbyApiVersionRequestBody = (options: Options) => { - return options.client.post({ +export const postApiVbyApiVersionRequestBody = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/requestBody', ...options, headers: { @@ -191,8 +191,8 @@ export const postApiVbyApiVersionRequestBody = ( }); }; -export const postApiVbyApiVersionFormData = (options: Options) => { - return options.client.post({ +export const postApiVbyApiVersionFormData = (options: Options) => { + return options.client.post({ ...formDataBodySerializer, url: '/api/v{api-version}/formData', ...options, @@ -203,120 +203,120 @@ export const postApiVbyApiVersionFormData = (opt }); }; -export const callWithDefaultParameters = (options: Options) => { - return options.client.get({ +export const callWithDefaultParameters = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callWithDefaultOptionalParameters = (options: Options) => { - return options.client.post({ +export const callWithDefaultOptionalParameters = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/defaults', ...options }); }; -export const callToTestOrderOfParams = (options: Options) => { - return options.client.put({ +export const callToTestOrderOfParams = (options: Options) => { + return options.client.put({ url: '/api/v{api-version}/defaults', ...options }); }; -export const duplicateName = (options: Options) => { - return options.client.delete({ +export const duplicateName = (options: Options) => { + return options.client.delete({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName2 = (options: Options) => { - return options.client.get({ +export const duplicateName2 = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName3 = (options: Options) => { - return options.client.post({ +export const duplicateName3 = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const duplicateName4 = (options: Options) => { - return options.client.put({ +export const duplicateName4 = (options: Options) => { + return options.client.put({ url: '/api/v{api-version}/duplicate', ...options }); }; -export const callWithNoContentResponse = (options: Options) => { - return options.client.get({ +export const callWithNoContentResponse = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/no-content', ...options }); }; -export const callWithResponseAndNoContentResponse = (options: Options) => { - return options.client.get({ +export const callWithResponseAndNoContentResponse = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/multiple-tags/response-and-no-content', ...options }); }; -export const dummyA = (options: Options) => { - return options.client.get({ +export const dummyA = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/multiple-tags/a', ...options }); }; -export const dummyB = (options: Options) => { - return options.client.get({ +export const dummyB = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/multiple-tags/b', ...options }); }; -export const callWithResponse = (options: Options) => { - return options.client.get({ +export const callWithResponse = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithDuplicateResponses = (options: Options) => { - return options.client.post({ +export const callWithDuplicateResponses = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/response', ...options }); }; -export const callWithResponses = (options: Options) => { - return options.client.put({ +export const callWithResponses = (options: Options) => { + return options.client.put({ url: '/api/v{api-version}/response', ...options }); }; -export const collectionFormat = (options: Options) => { - return options.client.get({ +export const collectionFormat = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/collectionFormat', ...options }); }; -export const types = (options: Options) => { - return options.client.get({ +export const types = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/types', ...options }); }; -export const uploadFile = (options: Options) => { - return options.client.post({ +export const uploadFile = (options: Options) => { + return options.client.post({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/upload', ...options, @@ -327,29 +327,29 @@ export const uploadFile = (options: Options(options: Options) => { - return options.client.get({ +export const fileResponse = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/file/{id}', ...options }); }; -export const complexTypes = (options: Options) => { - return options.client.get({ +export const complexTypes = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/complex', ...options }); }; -export const multipartResponse = (options: Options) => { - return options.client.get({ +export const multipartResponse = (options: Options) => { + return options.client.get({ url: '/api/v{api-version}/multipart', ...options }); }; -export const multipartRequest = (options: Options) => { - return options.client.post({ +export const multipartRequest = (options: Options) => { + return options.client.post({ ...formDataBodySerializer, url: '/api/v{api-version}/multipart', ...options, @@ -360,8 +360,8 @@ export const multipartRequest = (options: Option }); }; -export const complexParams = (options: Options) => { - return options.client.put({ +export const complexParams = (options: Options) => { + return options.client.put({ url: '/api/v{api-version}/complex/{id}', ...options, headers: { @@ -371,22 +371,22 @@ export const complexParams = (options: Options(options: Options) => { - return options.client.post({ +export const callWithResultFromHeader = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/header', ...options }); }; -export const testErrorCode = (options: Options) => { - return options.client.post({ +export const testErrorCode = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/error', ...options }); }; -export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return options.client.post({ +export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { + return options.client.post({ url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options }); @@ -395,8 +395,8 @@ export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options) => { - return options.client.put({ +export const putWithFormUrlEncoded = (options: Options) => { + return options.client.put({ ...urlSearchParamsBodySerializer, url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串', ...options,