cal.pub0.org/packages/trpc/react/trpc.ts

37 lines
1.4 KiB
TypeScript
Raw Normal View History

import superjson from "superjson";
import { createReactQueryHooks } from "@trpc/react";
// Type-only import:
// https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export
import type { inferProcedureInput, inferProcedureOutput } from "../server";
import type { AppRouter } from "../server/routers/_app";
/**
* A set of strongly-typed React hooks from your `AppRouter` type signature with `createReactQueryHooks`.
* @link https://trpc.io/docs/react#3-create-trpc-hooks
*/
export const trpc = createReactQueryHooks<AppRouter>();
export const proxy = trpc.proxy;
export const transformer = superjson;
/**
* This is a helper method to infer the output of a query resolver
* @example type HelloOutput = inferQueryOutput<'hello'>
*/
export type inferQueryOutput<TRouteKey extends keyof AppRouter["_def"]["queries"]> = inferProcedureOutput<
AppRouter["_def"]["queries"][TRouteKey]
>;
export type inferQueryInput<TRouteKey extends keyof AppRouter["_def"]["queries"]> = inferProcedureInput<
AppRouter["_def"]["queries"][TRouteKey]
>;
export type inferMutationInput<TRouteKey extends keyof AppRouter["_def"]["mutations"]> = inferProcedureInput<
AppRouter["_def"]["mutations"][TRouteKey]
>;
2021-09-27 16:09:19 +00:00
export type inferMutationOutput<TRouteKey extends keyof AppRouter["_def"]["mutations"]> =
inferProcedureOutput<AppRouter["_def"]["mutations"][TRouteKey]>;