diff --git a/packages/openapi-react-query/src/index.ts b/packages/openapi-react-query/src/index.ts index 95b965472..d89d8f6c0 100644 --- a/packages/openapi-react-query/src/index.ts +++ b/packages/openapi-react-query/src/index.ts @@ -93,6 +93,17 @@ export interface OpenapiQueryClient; } +export type MethodResponse< + CreatedClient extends OpenapiQueryClient, + Method extends HttpMethod, + Path extends CreatedClient extends OpenapiQueryClient + ? PathsWithMethod + : never, + Options = object, +> = CreatedClient extends OpenapiQueryClient + ? NonNullable["data"]> + : never; + // TODO: Add the ability to bring queryClient as argument export default function createClient( client: FetchClient, diff --git a/packages/openapi-react-query/test/index.test.tsx b/packages/openapi-react-query/test/index.test.tsx index 20616bb36..91d8c5946 100644 --- a/packages/openapi-react-query/test/index.test.tsx +++ b/packages/openapi-react-query/test/index.test.tsx @@ -1,7 +1,7 @@ import { afterAll, beforeAll, describe, expect, it } from "vitest"; import { server, baseUrl, useMockRequestHandler } from "./fixtures/mock-server.js"; import type { paths } from "./fixtures/api.js"; -import createClient from "../src/index.js"; +import createClient, { type MethodResponse } from "../src/index.js"; import createFetchClient from "openapi-fetch"; import { fireEvent, render, renderHook, screen, waitFor, act } from "@testing-library/react"; import { QueryClient, QueryClientProvider, useQueries } from "@tanstack/react-query"; @@ -212,6 +212,7 @@ describe("client", () => { const { data, error } = result.current; + expectTypeOf(data).toEqualTypeOf | undefined>(); expectTypeOf(data).toEqualTypeOf(); expectTypeOf(error).toEqualTypeOf<{ code: number; message: string } | null>(); });