UNPKG

k6-trpc

Version:
36 lines 2.07 kB
import { type AnyProcedure, type AnyRouter, type CombinedDataTransformer, type DataTransformer } from "@trpc/server"; import { type get, type Params, type post } from "k6/http"; declare const NONE: unique symbol; declare const OPTION: unique symbol; export declare const createOptions: (options: Omit<Params, "responseCallback">) => { auth?: import("k6/http").AuthMethod | undefined; timeout?: string | number | undefined; compression?: string | undefined; cookies?: { [name: string]: import("k6/http").ParamsCookieValue; } | undefined; headers?: { [name: string]: string; } | undefined; jar?: import("k6/http").CookieJar | undefined; redirects?: number | undefined; responseType?: import("k6/http").ResponseType | undefined; tags?: { [name: string]: string; } | undefined; [OPTION]: string; }; type RouterKeys<T extends AnyRouter> = Exclude<keyof T, keyof AnyRouter>; type ProcedureType<T extends AnyProcedure> = T["_type"]; type InputType<P extends AnyProcedure> = P["_def"]["_input_in"] extends infer input ? input extends symbol ? typeof NONE : input : never; type Handler<R extends AnyRouter, K extends keyof R> = R[K] extends AnyRouter ? Client<R[K]> : R[K] extends AnyProcedure ? ProcedureType<R[K]> extends infer T ? InputType<R[K]> extends infer I ? T extends "query" ? { query: I extends typeof NONE ? (opts?: ReturnType<typeof createOptions>) => ReturnType<typeof get> : (input: I, opts?: ReturnType<typeof createOptions>) => ReturnType<typeof get>; } : T extends "mutation" ? { mutate: I extends typeof NONE ? (opts?: ReturnType<typeof createOptions>) => ReturnType<typeof post> : (input: I, opts?: ReturnType<typeof createOptions>) => ReturnType<typeof post>; } : never : never : never : never; export type Client<R extends AnyRouter> = { [K in RouterKeys<R>]: Handler<R, K>; }; export declare const createClient: <R extends AnyRouter>(url: string, transformer?: CombinedDataTransformer | DataTransformer) => Client<R>; export {}; //# sourceMappingURL=index.d.ts.map