UNPKG

infinity-forge

Version:
29 lines (28 loc) 1.32 kB
import { useQueryProps } from '../../use-query/index.js'; export type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? T[P] extends Array<infer U> ? Array<DeepPartial<U>> : DeepPartial<T[P]> : T[P]; }; export declare function createClient<Swagger>({ basePath, customBody, customHeaders, }: { basePath?: string; customBody?: () => Record<string, string>; customHeaders?: () => Record<string, string>; }): { client: <Url extends keyof Swagger, Method extends keyof Swagger[Url]>({ url, body, method, headers, arrayFormat, }: { url: Url; server?: boolean; method: Method; signal?: AbortSignal; headers?: Record<string, string>; arrayFormat?: "repeat" | "brackets"; body?: DeepPartial<Omit<Swagger[Url][Method], "result">>; }) => Promise<Swagger[Url][Method] extends { result: infer R; } ? R : never>; useSwagger: <Url extends keyof Swagger, Method extends keyof Swagger[Url]>({ url, method, body, ...rest }: { url: Url; method: Method; body?: DeepPartial<Omit<Swagger[Url][Method], "result">>; } & Partial<Omit<useQueryProps<any>, "queryFn">>) => Required<import("../../use-query/index.js").QueryState<Awaited<Swagger[Url][Method] extends { result: infer R; } ? R : never>>>; };