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,