diff --git a/packages/query/src/index.ts b/packages/query/src/index.ts index 955bed014..27f8ba178 100644 --- a/packages/query/src/index.ts +++ b/packages/query/src/index.ts @@ -1110,9 +1110,9 @@ ${doc}export const ${camel( `${operationPrefix}-${type}`, )}(${queryOptionsVarName}) as ${returnType}; - ${queryResultVarName}.queryKey = ${queryOptionsVarName}.queryKey ${ - isVue(outputClient) ? 'as QueryKey' : '' - }; + ${queryResultVarName}.queryKey = ${ + isVue(outputClient) ? `unref(${queryOptionsVarName})` : queryOptionsVarName + }.queryKey ${isVue(outputClient) ? 'as QueryKey' : ''}; return ${queryResultVarName}; }\n diff --git a/samples/vue-query/package.json b/samples/vue-query/package.json index a89c8c789..00a09f1cc 100644 --- a/samples/vue-query/package.json +++ b/samples/vue-query/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@faker-js/faker": "^8.0.2", - "@tanstack/vue-query": "4.29.5", + "@tanstack/vue-query": "^5.28.4", "axios": "^0.26.1", "vue": "^3.3.4" }, diff --git a/samples/vue-query/src/api/endpoints/petstoreFromFileSpecWithTransformer.ts b/samples/vue-query/src/api/endpoints/petstoreFromFileSpecWithTransformer.ts index c29692093..89d48cc1a 100644 --- a/samples/vue-query/src/api/endpoints/petstoreFromFileSpecWithTransformer.ts +++ b/samples/vue-query/src/api/endpoints/petstoreFromFileSpecWithTransformer.ts @@ -6,6 +6,7 @@ */ import { useInfiniteQuery, useMutation, useQuery } from '@tanstack/vue-query'; import type { + InfiniteData, MutationFunction, QueryFunction, QueryKey, @@ -54,16 +55,24 @@ export const getListPetsQueryKey = ( }; export const getListPetsInfiniteQueryOptions = < - TData = Awaited>, + TData = InfiniteData< + Awaited>, + ListPetsParams['limit'] + >, TError = Error, >( params?: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseInfiniteQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseInfiniteQueryOptions< + Awaited>, + TError, + TData, + Awaited>, + QueryKey, + ListPetsParams['limit'] + > >; }, ) => { @@ -71,10 +80,11 @@ export const getListPetsInfiniteQueryOptions = < const queryKey = getListPetsQueryKey(params, version); - const queryFn: QueryFunction>> = ({ - signal, - pageParam, - }) => + const queryFn: QueryFunction< + Awaited>, + QueryKey, + ListPetsParams['limit'] + > = ({ signal, pageParam }) => listPets( { ...params, limit: pageParam || unref(params)?.['limit'] }, version, @@ -89,7 +99,10 @@ export const getListPetsInfiniteQueryOptions = < } as UseInfiniteQueryOptions< Awaited>, TError, - TData + TData, + Awaited>, + QueryKey, + ListPetsParams['limit'] >; }; @@ -102,16 +115,24 @@ export type ListPetsInfiniteQueryError = Error; * @summary List all pets */ export const useListPetsInfinite = < - TData = Awaited>, + TData = InfiniteData< + Awaited>, + ListPetsParams['limit'] + >, TError = Error, >( params?: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseInfiniteQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseInfiniteQueryOptions< + Awaited>, + TError, + TData, + Awaited>, + QueryKey, + ListPetsParams['limit'] + > >; }, ): UseInfiniteQueryReturnType & { queryKey: QueryKey } => { @@ -126,7 +147,7 @@ export const useListPetsInfinite = < TError > & { queryKey: QueryKey }; - query.queryKey = queryOptions.queryKey as QueryKey; + query.queryKey = unref(queryOptions).queryKey as QueryKey; return query; }; @@ -138,10 +159,8 @@ export const getListPetsQueryOptions = < params?: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseQueryOptions>, TError, TData> >; }, ) => { @@ -176,10 +195,8 @@ export const useListPets = < params?: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseQueryOptions>, TError, TData> >; }, ): UseQueryReturnType & { queryKey: QueryKey } => { @@ -189,7 +206,7 @@ export const useListPets = < queryKey: QueryKey; }; - query.queryKey = queryOptions.queryKey as QueryKey; + query.queryKey = unref(queryOptions).queryKey as QueryKey; return query; }; @@ -297,16 +314,18 @@ export const getShowPetByIdQueryKey = ( }; export const getShowPetByIdInfiniteQueryOptions = < - TData = Awaited>, + TData = InfiniteData>>, TError = Error, >( petId: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseInfiniteQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseInfiniteQueryOptions< + Awaited>, + TError, + TData + > >; }, ) => { @@ -339,16 +358,18 @@ export type ShowPetByIdInfiniteQueryError = Error; * @summary Info for a specific pet */ export const useShowPetByIdInfinite = < - TData = Awaited>, + TData = InfiniteData>>, TError = Error, >( petId: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseInfiniteQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseInfiniteQueryOptions< + Awaited>, + TError, + TData + > >; }, ): UseInfiniteQueryReturnType & { queryKey: QueryKey } => { @@ -363,7 +384,7 @@ export const useShowPetByIdInfinite = < TError > & { queryKey: QueryKey }; - query.queryKey = queryOptions.queryKey as QueryKey; + query.queryKey = unref(queryOptions).queryKey as QueryKey; return query; }; @@ -375,10 +396,8 @@ export const getShowPetByIdQueryOptions = < petId: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseQueryOptions>, TError, TData> >; }, ) => { @@ -413,10 +432,8 @@ export const useShowPetById = < petId: MaybeRef, version: MaybeRef = 1, options?: { - query?: UseQueryOptions< - Awaited>, - TError, - TData + query?: Partial< + UseQueryOptions>, TError, TData> >; }, ): UseQueryReturnType & { queryKey: QueryKey } => { @@ -426,7 +443,7 @@ export const useShowPetById = < queryKey: QueryKey; }; - query.queryKey = queryOptions.queryKey as QueryKey; + query.queryKey = unref(queryOptions).queryKey as QueryKey; return query; }; diff --git a/samples/vue-query/yarn.lock b/samples/vue-query/yarn.lock index dabc103ce..d00c139ef 100644 --- a/samples/vue-query/yarn.lock +++ b/samples/vue-query/yarn.lock @@ -296,27 +296,27 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== -"@tanstack/match-sorter-utils@^8.1.1": - version "8.7.6" - resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.7.6.tgz#ccf54a37447770e0cf0fe49a579c595fd2655b16" - integrity sha512-2AMpRiA6QivHOUiBpQAVxjiHAA68Ei23ZUMNaRJrN6omWiSFLoYrxGcT6BXtuzp0Jw4h6HZCmGGIM/gbwebO2A== +"@tanstack/match-sorter-utils@^8.11.8": + version "8.11.8" + resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.11.8.tgz#9132c2a21cf18ca2f0071b604ddadb7a66e73367" + integrity sha512-3VPh0SYMGCa5dWQEqNab87UpCMk+ANWHDP4ALs5PeEW9EpfTAbrezzaOk/OiM52IESViefkoAOYuxdoa04p6aA== dependencies: remove-accents "0.4.2" -"@tanstack/query-core@4.29.5": - version "4.29.5" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.29.5.tgz#a0273e88bf2fc102c4c893dc7c034127b67fd5d9" - integrity sha512-xXIiyQ/4r9KfaJ3k6kejqcaqFXXBTzN2aOJ5H1J6aTJE9hl/nbgAdfF6oiIu0CD5xowejJEJ6bBg8TO7BN4NuQ== +"@tanstack/query-core@5.28.4": + version "5.28.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.28.4.tgz#fa416532f8b33ca8608d40bb9728b60e2e1a38dc" + integrity sha512-uQZqOFqLWUvXNIQZ63XdKzg22NtHzgCBUfDmjDHi3BoF+nUYeBNvMi/xFPtFrMhqRzG2Ir4mYaGsWZzmiEjXpA== -"@tanstack/vue-query@4.29.5": - version "4.29.5" - resolved "https://registry.yarnpkg.com/@tanstack/vue-query/-/vue-query-4.29.5.tgz#a6795e0e86fb6c58e09fa38775ca2f6e4f8f5fda" - integrity sha512-o5EqXKG/SbOcqDxc0LHNMQvB/77dFTRL9EdfFKXUHGIFGhKDhuiA0ByT/HydzXWzj7oGj44ovosAusej90yKVg== +"@tanstack/vue-query@^5.28.4": + version "5.28.4" + resolved "https://registry.yarnpkg.com/@tanstack/vue-query/-/vue-query-5.28.4.tgz#41d9d4bcb2186b3c58db41141f2a4c3e5d1524c0" + integrity sha512-/xt4CmP/0NHN5FDtt1uvh+aXm8uHDos7gsXlDr5l6Ul5pkN9eByd86PqEkiRxgrZcuHvcB5RXSaiagxOIgoByg== dependencies: - "@tanstack/match-sorter-utils" "^8.1.1" - "@tanstack/query-core" "4.29.5" - "@vue/devtools-api" "^6.4.2" - vue-demi "^0.13.11" + "@tanstack/match-sorter-utils" "^8.11.8" + "@tanstack/query-core" "5.28.4" + "@vue/devtools-api" "^6.5.1" + vue-demi "^0.14.6" "@testing-library/dom@^9.3.3": version "9.3.3" @@ -566,10 +566,10 @@ "@vue/compiler-dom" "3.3.4" "@vue/shared" "3.3.4" -"@vue/devtools-api@^6.4.2": - version "6.4.5" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380" - integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ== +"@vue/devtools-api@^6.5.1": + version "6.6.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" + integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== "@vue/language-core@1.8.18": version "1.8.18" @@ -2740,8 +2740,7 @@ strict-event-emitter@^0.5.0, strict-event-emitter@^0.5.1: resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93" integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.2.3: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2759,6 +2758,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -2775,8 +2783,7 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1: - name strip-ansi-cjs +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -2790,6 +2797,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -3051,10 +3065,10 @@ vue-component-type-helpers@^1.8.21: resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-1.8.22.tgz#24c1f324885e5652c7bcc5d9cbd76800b0af3809" integrity sha512-LK3wJHs3vJxHG292C8cnsRusgyC5SEZDCzDCD01mdE/AoREFMl2tzLRuzwyuEsOIz13tqgBcnvysN3Lxsa14Fw== -vue-demi@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" - integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== +vue-demi@^0.14.6: + version "0.14.7" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2" + integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== vue-template-compiler@^2.7.14: version "2.7.14" @@ -3188,8 +3202,7 @@ why-is-node-running@^2.2.2: siginfo "^2.0.0" stackback "0.0.2" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -3207,6 +3220,15 @@ wrap-ansi@^6.0.1: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"