@@ -285,12 +285,19 @@ export type SdkWithHooks = ReturnType<typeof getSdkWithHooks>;`
285285 `import useSWR, { useSWRInfinite, ConfigInterface as SWRConfigInterface, keyInterface as SWRKeyInterface, SWRInfiniteConfigInterface } from 'swr';`
286286 )
287287 expect ( output ) . toContain (
288- `export type SWRInfiniteKeyLoader<Data = any > = (
288+ `export type SWRInfiniteKeyLoader<Data = unknown, Variables = unknown > = (
289289 index: number,
290290 previousPageData: Data | null
291- ) => string | any[] | null;
291+ ) => Variables | null;
292292export function getSdkWithHooks(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) {
293293 const sdk = getSdk(client, withWrapper);
294+ const utilsForInfinite = {
295+ generateGetKey: <Data = unknown, Variables = unknown>(getKey: SWRInfiniteKeyLoader<Data, Variables>) => (pageIndex: number, previousData: Data | null) => {
296+ const key = getKey(pageIndex, previousData)
297+ return key ? [key] : key
298+ },
299+ generateFetcher: <Variables = unknown>(query: (...params: unknown[]) => unknown, variables?: Variables) => (...params) => query(Object.assign({}, variables, ...params))
300+ }
294301 return {
295302 ...sdk,
296303 useFeed(key: SWRKeyInterface, variables?: FeedQueryVariables, config?: SWRConfigInterface<FeedQuery>) {
@@ -299,17 +306,23 @@ export function getSdkWithHooks(client: GraphQLClient, withWrapper: SdkFunctionW
299306 useFeed2(key: SWRKeyInterface, variables: Feed2QueryVariables, config?: SWRConfigInterface<Feed2Query>) {
300307 return useSWR<Feed2Query>(key, () => sdk.feed2(variables), config);
301308 },
302- useFeed2Infinite(getKey: SWRInfiniteKeyLoader<Feed2Query>, variables: Feed2QueryVariables, config?: SWRInfiniteConfigInterface<Feed2Query>) {
303- return useSWRInfinite<Feed2Query>(getKey, () => sdk.feed2(variables), config);
309+ useFeed2Infinite(getKey: SWRInfiniteKeyLoader<Feed2Query, Feed2QueryVariables>, variables: Feed2QueryVariables, config?: SWRInfiniteConfigInterface<Feed2Query>) {
310+ return useSWRInfinite<Feed2Query>(
311+ utilsForInfinite.generateGetKey<Feed2Query, Feed2QueryVariables>(getKey),
312+ utilsForInfinite.generateFetcher<Feed2QueryVariables>(sdk.feed2, variables),
313+ config);
304314 },
305315 useFeed3(key: SWRKeyInterface, variables?: Feed3QueryVariables, config?: SWRConfigInterface<Feed3Query>) {
306316 return useSWR<Feed3Query>(key, () => sdk.feed3(variables), config);
307317 },
308318 useFeed4(key: SWRKeyInterface, variables?: Feed4QueryVariables, config?: SWRConfigInterface<Feed4Query>) {
309319 return useSWR<Feed4Query>(key, () => sdk.feed4(variables), config);
310320 },
311- useFeed4Infinite(getKey: SWRInfiniteKeyLoader<Feed4Query>, variables?: Feed4QueryVariables, config?: SWRInfiniteConfigInterface<Feed4Query>) {
312- return useSWRInfinite<Feed4Query>(getKey, () => sdk.feed4(variables), config);
321+ useFeed4Infinite(getKey: SWRInfiniteKeyLoader<Feed4Query, Feed4QueryVariables>, variables?: Feed4QueryVariables, config?: SWRInfiniteConfigInterface<Feed4Query>) {
322+ return useSWRInfinite<Feed4Query>(
323+ utilsForInfinite.generateGetKey<Feed4Query, Feed4QueryVariables>(getKey),
324+ utilsForInfinite.generateFetcher<Feed4QueryVariables>(sdk.feed4, variables),
325+ config);
313326 }
314327 };
315328}
0 commit comments