From 5915332cd757f3986a47ed75898a07ffe30a57c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20Bak=C4=B1r?= <f.yusufbakir@gmail.com> Date: Sat, 9 Nov 2024 12:38:39 +0300 Subject: [PATCH 1/2] fix: added missing request params in to the queryFn --- src/common.mts | 3 ++- src/createUseQuery.mts | 2 +- tests/__snapshots__/createSource.test.ts.snap | 12 ++++++------ tests/__snapshots__/generate.test.ts.snap | 11 ++++++++--- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/common.mts b/src/common.mts index d8e0e76..41c73f2 100644 --- a/src/common.mts +++ b/src/common.mts @@ -237,9 +237,10 @@ export function createQueryKeyFnExport( queryKey: string, method: VariableDeclaration, type: "query" | "mutation" = "query", + modelNames: string[] = [], ) { // Mutation keys don't require clientOptions - const params = type === "query" ? getRequestParamFromMethod(method) : null; + const params = type === "query" ? getRequestParamFromMethod(method, undefined, modelNames) : null; // override key is used to allow the user to override the the queryKey values const overrideKey = ts.factory.createParameterDeclaration( diff --git a/src/createUseQuery.mts b/src/createUseQuery.mts index c5ad08d..5ae7855 100644 --- a/src/createUseQuery.mts +++ b/src/createUseQuery.mts @@ -533,7 +533,7 @@ export const createUseQuery = ({ queryKey, }); - const queryKeyFn = createQueryKeyFnExport(queryKey, method); + const queryKeyFn = createQueryKeyFnExport(queryKey, method, "query", modelNames); return { apiResponse: defaultApiResponse, diff --git a/tests/__snapshots__/createSource.test.ts.snap b/tests/__snapshots__/createSource.test.ts.snap index 861fc50..eb73615 100644 --- a/tests/__snapshots__/createSource.test.ts.snap +++ b/tests/__snapshots__/createSource.test.ts.snap @@ -19,7 +19,7 @@ import { AxiosError } from "axios"; export type FindPetsDefaultResponse = Awaited<ReturnType<typeof findPets>>["data"]; export type FindPetsQueryResult<TData = FindPetsDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useFindPetsKey = "FindPets"; -export const UseFindPetsKeyFn = (clientOptions: Options<unknown, true> = {}, queryKey?: Array<unknown>) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPetsKeyFn = (clientOptions: Options<FindPetsData, true> = {}, queryKey?: Array<unknown>) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; export type GetNotDefinedDefaultResponse = Awaited<ReturnType<typeof getNotDefined>>["data"]; export type GetNotDefinedQueryResult<TData = GetNotDefinedDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useGetNotDefinedKey = "GetNotDefined"; @@ -27,11 +27,11 @@ export const UseGetNotDefinedKeyFn = (clientOptions: Options<unknown, true> = {} export type FindPetByIdDefaultResponse = Awaited<ReturnType<typeof findPetById>>["data"]; export type FindPetByIdQueryResult<TData = FindPetByIdDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useFindPetByIdKey = "FindPetById"; -export const UseFindPetByIdKeyFn = (clientOptions: Options<unknown, true>, queryKey?: Array<unknown>) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPetByIdKeyFn = (clientOptions: Options<FindPetByIdData, true>, queryKey?: Array<unknown>) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; export type FindPaginatedPetsDefaultResponse = Awaited<ReturnType<typeof findPaginatedPets>>["data"]; export type FindPaginatedPetsQueryResult<TData = FindPaginatedPetsDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useFindPaginatedPetsKey = "FindPaginatedPets"; -export const UseFindPaginatedPetsKeyFn = (clientOptions: Options<unknown, true> = {}, queryKey?: Array<unknown>) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPaginatedPetsKeyFn = (clientOptions: Options<FindPaginatedPetsData, true> = {}, queryKey?: Array<unknown>) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited<ReturnType<typeof addPet>>; export const useAddPetKey = "AddPet"; export const UseAddPetKeyFn = (mutationKey?: Array<unknown>) => [useAddPetKey, ...(mutationKey ?? [])]; @@ -113,7 +113,7 @@ import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddP export type FindPetsDefaultResponse = Awaited<ReturnType<typeof findPets>>["data"]; export type FindPetsQueryResult<TData = FindPetsDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useFindPetsKey = "FindPets"; -export const UseFindPetsKeyFn = (clientOptions: Options<unknown, true> = {}, queryKey?: Array<unknown>) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPetsKeyFn = (clientOptions: Options<FindPetsData, true> = {}, queryKey?: Array<unknown>) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; export type GetNotDefinedDefaultResponse = Awaited<ReturnType<typeof getNotDefined>>["data"]; export type GetNotDefinedQueryResult<TData = GetNotDefinedDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useGetNotDefinedKey = "GetNotDefined"; @@ -121,11 +121,11 @@ export const UseGetNotDefinedKeyFn = (clientOptions: Options<unknown, true> = {} export type FindPetByIdDefaultResponse = Awaited<ReturnType<typeof findPetById>>["data"]; export type FindPetByIdQueryResult<TData = FindPetByIdDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useFindPetByIdKey = "FindPetById"; -export const UseFindPetByIdKeyFn = (clientOptions: Options<unknown, true>, queryKey?: Array<unknown>) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPetByIdKeyFn = (clientOptions: Options<FindPetByIdData, true>, queryKey?: Array<unknown>) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; export type FindPaginatedPetsDefaultResponse = Awaited<ReturnType<typeof findPaginatedPets>>["data"]; export type FindPaginatedPetsQueryResult<TData = FindPaginatedPetsDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>; export const useFindPaginatedPetsKey = "FindPaginatedPets"; -export const UseFindPaginatedPetsKeyFn = (clientOptions: Options<unknown, true> = {}, queryKey?: Array<unknown>) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPaginatedPetsKeyFn = (clientOptions: Options<FindPaginatedPetsData, true> = {}, queryKey?: Array<unknown>) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited<ReturnType<typeof addPet>>; export const useAddPetKey = "AddPet"; export const UseAddPetKeyFn = (mutationKey?: Array<unknown>) => [useAddPetKey, ...(mutationKey ?? [])]; diff --git a/tests/__snapshots__/generate.test.ts.snap b/tests/__snapshots__/generate.test.ts.snap index e95e4cb..082275f 100644 --- a/tests/__snapshots__/generate.test.ts.snap +++ b/tests/__snapshots__/generate.test.ts.snap @@ -14,6 +14,11 @@ import type { getNotDefined, postNotDefined, } from "../requests/services.gen"; +import type { + FindPaginatedPetsData, + FindPetByIdData, + FindPetsData, +} from "../requests/types.gen"; export type FindPetsDefaultResponse = Awaited< ReturnType<typeof findPets> >["data"]; @@ -23,7 +28,7 @@ export type FindPetsQueryResult< > = UseQueryResult<TData, TError>; export const useFindPetsKey = "FindPets"; export const UseFindPetsKeyFn = ( - clientOptions: Options<unknown, true> = {}, + clientOptions: Options<FindPetsData, true> = {}, queryKey?: Array<unknown>, ) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; export type GetNotDefinedDefaultResponse = Awaited< @@ -47,7 +52,7 @@ export type FindPetByIdQueryResult< > = UseQueryResult<TData, TError>; export const useFindPetByIdKey = "FindPetById"; export const UseFindPetByIdKeyFn = ( - clientOptions: Options<unknown, true>, + clientOptions: Options<FindPetByIdData, true>, queryKey?: Array<unknown>, ) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; export type FindPaginatedPetsDefaultResponse = Awaited< @@ -59,7 +64,7 @@ export type FindPaginatedPetsQueryResult< > = UseQueryResult<TData, TError>; export const useFindPaginatedPetsKey = "FindPaginatedPets"; export const UseFindPaginatedPetsKeyFn = ( - clientOptions: Options<unknown, true> = {}, + clientOptions: Options<FindPaginatedPetsData, true> = {}, queryKey?: Array<unknown>, ) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited<ReturnType<typeof addPet>>; From 2bb02e279e40204ae84a671ba07061a1a6ea71f5 Mon Sep 17 00:00:00 2001 From: Urata Daiki <7nohe@users.noreply.github.com> Date: Tue, 21 Jan 2025 07:51:54 +0900 Subject: [PATCH 2/2] chore: Run `lint:fix` --- src/common.mts | 5 ++++- src/createUseQuery.mts | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common.mts b/src/common.mts index 41c73f2..f3cb036 100644 --- a/src/common.mts +++ b/src/common.mts @@ -240,7 +240,10 @@ export function createQueryKeyFnExport( modelNames: string[] = [], ) { // Mutation keys don't require clientOptions - const params = type === "query" ? getRequestParamFromMethod(method, undefined, modelNames) : null; + const params = + type === "query" + ? getRequestParamFromMethod(method, undefined, modelNames) + : null; // override key is used to allow the user to override the the queryKey values const overrideKey = ts.factory.createParameterDeclaration( diff --git a/src/createUseQuery.mts b/src/createUseQuery.mts index 5ae7855..f626641 100644 --- a/src/createUseQuery.mts +++ b/src/createUseQuery.mts @@ -533,7 +533,12 @@ export const createUseQuery = ({ queryKey, }); - const queryKeyFn = createQueryKeyFnExport(queryKey, method, "query", modelNames); + const queryKeyFn = createQueryKeyFnExport( + queryKey, + method, + "query", + modelNames, + ); return { apiResponse: defaultApiResponse,