@trpc/next
Version:
54 lines (52 loc) • 2.48 kB
text/typescript
import { QueryClient } from "@tanstack/react-query";
import { TransformerOptions } from "@trpc/client/unstable-internals";
import { CreateTRPCReactOptions, CreateTRPCReactQueryClientConfig } from "@trpc/react-query/shared";
import { AnyRouter, ResponseMeta, inferClientTypes } from "@trpc/server/unstable-core-do-not-import";
import { CreateTRPCClientOptions, TRPCClient, TRPCClientError, TRPCUntypedClient } from "@trpc/client";
import { NextComponentType, NextPageContext } from "next/dist/shared/lib/utils";
//#region src/withTRPC.d.ts
type WithTRPCConfig<TRouter extends AnyRouter> = CreateTRPCClientOptions<TRouter> & CreateTRPCReactQueryClientConfig & {
abortOnUnmount?: boolean;
};
type WithTRPCOptions<TRouter extends AnyRouter> = CreateTRPCReactOptions<TRouter> & {
config: (info: {
ctx?: NextPageContext;
}) => WithTRPCConfig<TRouter>;
} & TransformerOptions<inferClientTypes<TRouter>>;
type TRPCPrepassHelper = (opts: {
parent: WithTRPCSSROptions<AnyRouter>;
WithTRPC: NextComponentType<any, any, any>;
AppOrPage: NextComponentType<any, any, any>;
}) => void;
type WithTRPCSSROptions<TRouter extends AnyRouter> = WithTRPCOptions<TRouter> & {
/**
* If you enable this, you also need to add a `ssrPrepass`-prop
* @see https://trpc.io/docs/client/nextjs/ssr
*/
ssr: true | ((opts: {
ctx: NextPageContext;
}) => boolean | Promise<boolean>);
responseMeta?: (opts: {
ctx: NextPageContext;
clientErrors: TRPCClientError<TRouter>[];
}) => ResponseMeta;
/**
* use `import { ssrPrepass } from '@trpc/next/ssrPrepass'`
* @see https://trpc.io/docs/client/nextjs/ssr
*/
ssrPrepass: TRPCPrepassHelper;
};
type WithTRPCNoSSROptions<TRouter extends AnyRouter> = WithTRPCOptions<TRouter> & {
ssr?: false;
};
type TRPCPrepassProps<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext> = {
config: WithTRPCConfig<TRouter>;
queryClient: QueryClient;
trpcClient: TRPCUntypedClient<TRouter> | TRPCClient<TRouter>;
ssrState: 'prepass';
ssrContext: TSSRContext;
};
declare function withTRPC<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): (AppOrPage: NextComponentType<any, any, any>) => NextComponentType;
//#endregion
export { TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, withTRPC };
//# sourceMappingURL=withTRPC.d-B3f3A0sf.d.mts.map