@trpc/next 10.0.0-proxy-alpha.62 → 10.0.0-proxy-alpha.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,7 +68,7 @@ Now you can query your API in any component.
68
68
  import { trpc } from '~/utils/trpc';
69
69
 
70
70
  export function Hello() {
71
- const { data, error, status } = trpc.proxy.greeting.useQuery({
71
+ const { data, error, status } = trpc.greeting.useQuery({
72
72
  name: 'tRPC',
73
73
  });
74
74
 
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ var reactQuery = require('@tanstack/react-query');
6
6
  var react = require('@trpc/react');
7
7
  var React = require('react');
8
8
  var ssrPrepass = require('react-ssr-prepass');
9
+ var shared = require('@trpc/react/shared');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
@@ -182,19 +183,33 @@ function withTRPC(opts) {
182
183
 
183
184
  function setupTRPC(opts) {
184
185
  const hooks = react.createReactQueryHooks();
185
- const proxy = react.createReactQueryHooksProxy(hooks);
186
186
  // TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`
187
187
  const _withTRPC = withTRPC(opts);
188
- return {
189
- proxy,
190
- useContext: hooks.useContext,
191
- useInfiniteQuery: hooks.useInfiniteQuery,
192
- useMutation: hooks.useMutation,
193
- useQuery: hooks.useQuery,
194
- useSubscription: hooks.useSubscription,
195
- withTRPC: _withTRPC,
196
- queries: hooks.queries
197
- };
188
+ const proxy = new Proxy(()=>{
189
+ // no-op
190
+ }, {
191
+ get (_obj, name) {
192
+ if (name === 'useContext') {
193
+ return ()=>{
194
+ const context = hooks.useContext();
195
+ // create a stable reference of the utils context
196
+ return React.useMemo(()=>{
197
+ return shared.createReactQueryUtilsProxy(context);
198
+ }, [
199
+ context
200
+ ]);
201
+ };
202
+ }
203
+ if (name === 'withTRPC') {
204
+ return _withTRPC;
205
+ }
206
+ if (typeof name === 'string') {
207
+ return shared.createReactProxyDecoration(name, hooks);
208
+ }
209
+ throw new Error('Not supported');
210
+ }
211
+ });
212
+ return proxy;
198
213
  }
199
214
 
200
215
  exports.setupTRPC = setupTRPC;
package/dist/index.mjs CHANGED
@@ -1,7 +1,8 @@
1
1
  import { QueryClient, QueryClientProvider, Hydrate, dehydrate } from '@tanstack/react-query';
2
- import { createReactQueryHooks, createTRPCClient, createReactQueryHooksProxy } from '@trpc/react';
3
- import React, { useState, createElement } from 'react';
2
+ import { createReactQueryHooks, createTRPCClient } from '@trpc/react';
3
+ import React, { useState, createElement, useMemo } from 'react';
4
4
  import ssrPrepass from 'react-ssr-prepass';
5
+ import { createReactQueryUtilsProxy, createReactProxyDecoration } from '@trpc/react/shared';
5
6
 
6
7
  function extends_() {
7
8
  extends_ = Object.assign || function (target) {
@@ -173,19 +174,33 @@ function withTRPC(opts) {
173
174
 
174
175
  function setupTRPC(opts) {
175
176
  const hooks = createReactQueryHooks();
176
- const proxy = createReactQueryHooksProxy(hooks);
177
177
  // TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`
178
178
  const _withTRPC = withTRPC(opts);
179
- return {
180
- proxy,
181
- useContext: hooks.useContext,
182
- useInfiniteQuery: hooks.useInfiniteQuery,
183
- useMutation: hooks.useMutation,
184
- useQuery: hooks.useQuery,
185
- useSubscription: hooks.useSubscription,
186
- withTRPC: _withTRPC,
187
- queries: hooks.queries
188
- };
179
+ const proxy = new Proxy(()=>{
180
+ // no-op
181
+ }, {
182
+ get (_obj, name) {
183
+ if (name === 'useContext') {
184
+ return ()=>{
185
+ const context = hooks.useContext();
186
+ // create a stable reference of the utils context
187
+ return useMemo(()=>{
188
+ return createReactQueryUtilsProxy(context);
189
+ }, [
190
+ context
191
+ ]);
192
+ };
193
+ }
194
+ if (name === 'withTRPC') {
195
+ return _withTRPC;
196
+ }
197
+ if (typeof name === 'string') {
198
+ return createReactProxyDecoration(name, hooks);
199
+ }
200
+ throw new Error('Not supported');
201
+ }
202
+ });
203
+ return proxy;
189
204
  }
190
205
 
191
206
  export { setupTRPC, withTRPC };
@@ -1,103 +1,9 @@
1
- /// <reference types="react" />
1
+ import { DecoratedProcedureRecord, DecoratedProcedureUtilsRecord } from '@trpc/react/shared';
2
2
  import { AnyRouter } from '@trpc/server';
3
3
  import { NextPageContext } from 'next/types';
4
4
  import { WithTRPCNoSSROptions, WithTRPCSSROptions } from './withTRPC';
5
5
  export declare function setupTRPC<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): {
6
- proxy: {
7
- useContext(): import("@trpc/react").DecoratedProcedureUtilsRecord<TRouter>;
8
- } & {
9
- Provider: (props: {
10
- queryClient: import("@tanstack/query-core").QueryClient;
11
- client: import("@trpc/react").TRPCClient<TRouter>;
12
- children: import("react").ReactNode;
13
- ssrContext?: unknown;
14
- ssrState?: import("@trpc/react/dist/internals/context").SSRState | undefined;
15
- }) => JSX.Element;
16
- createClient: (opts: import("@trpc/react").CreateTRPCClientOptions<TRouter>) => import("@trpc/react").TRPCClient<TRouter>;
17
- useContext: () => import("@trpc/react/dist/createReactQueryHooks").TRPCContextState<TRouter, unknown>;
18
- useQuery: <TPath extends keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> & string, TQueryFnData = (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T ? { [TPath_1 in keyof T]: {
19
- input: import("@trpc/server").inferProcedureInput<(T & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1]>;
20
- output: import("@trpc/server").inferProcedureOutput<(T & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1]>;
21
- }; } : never)[TPath]["output"], TData = (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_1 ? { [TPath_1_1 in keyof T_1]: {
22
- input: import("@trpc/server").inferProcedureInput<(T_1 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_1]>;
23
- output: import("@trpc/server").inferProcedureOutput<(T_1 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_1]>;
24
- }; } : never)[TPath]["output"]>(pathAndInput: [path: TPath, ...args: import("@trpc/server").ProcedureArgs<import("@trpc/server").inferProcedureParams<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath]>>], opts?: import("@trpc/react/dist/createReactQueryHooks").UseTRPCQueryOptions<TPath, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_2 ? { [TPath_1_2 in keyof T_2]: {
25
- input: import("@trpc/server").inferProcedureInput<(T_2 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_2]>;
26
- output: import("@trpc/server").inferProcedureOutput<(T_2 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_2]>;
27
- }; } : never)[TPath]["input"], TQueryFnData, TData, import("@trpc/react").TRPCClientErrorLike<TRouter>> | undefined) => import("@tanstack/react-query").UseQueryResult<TData, import("@trpc/react").TRPCClientErrorLike<TRouter>>;
28
- useMutation: <TPath_2 extends keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> & string, TContext = unknown>(path: TPath_2 | [TPath_2], opts?: import("@trpc/react/dist/createReactQueryHooks").UseTRPCMutationOptions<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_1 ? { [TPath_3 in keyof T_1]: {
29
- input: import("@trpc/server").inferProcedureInput<(T_1 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3]>;
30
- output: import("@trpc/server").inferProcedureOutput<(T_1 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3]>;
31
- }; } : never)[TPath_2]["input"], import("@trpc/react").TRPCClientErrorLike<TRouter>, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_1_1 ? { [TPath_3_1 in keyof T_1_1]: {
32
- input: import("@trpc/server").inferProcedureInput<(T_1_1 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3_1]>;
33
- output: import("@trpc/server").inferProcedureOutput<(T_1_1 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3_1]>;
34
- }; } : never)[TPath_2]["output"], TContext> | undefined) => import("@tanstack/react-query").UseMutationResult<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_1_2 ? { [TPath_3_2 in keyof T_1_2]: {
35
- input: import("@trpc/server").inferProcedureInput<(T_1_2 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3_2]>;
36
- output: import("@trpc/server").inferProcedureOutput<(T_1_2 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3_2]>;
37
- }; } : never)[TPath_2]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_1_3 ? { [TPath_3_3 in keyof T_1_3]: {
38
- input: import("@trpc/server").inferProcedureInput<(T_1_3 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3_3]>;
39
- output: import("@trpc/server").inferProcedureOutput<(T_1_3 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>)[TPath_3_3]>;
40
- }; } : never)[TPath_2]["input"], TContext>;
41
- useSubscription: <TPath_4 extends keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord> & string, TOutput extends import("@trpc/server/observable").inferObservableValue<import("@trpc/server").inferProcedureOutput<TRouter["_def"]["subscriptions"][TPath_4]>>>(pathAndInput: [path: TPath_4, ...args: import("@trpc/server").ProcedureArgs<import("@trpc/server").inferProcedureParams<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord>[TPath_4]>>], opts: import("@trpc/react/dist/createReactQueryHooks").UseTRPCSubscriptionOptions<import("@trpc/server/observable").inferObservableValue<import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord>[TPath_4]>>, import("@trpc/server").inferProcedureClientError<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord>[TPath_4]>>) => void;
42
- useDehydratedState: (client: import("@trpc/react").TRPCClient<TRouter>, trpcState: import("@tanstack/query-core").DehydratedState | undefined) => import("@tanstack/query-core").DehydratedState | undefined;
43
- useInfiniteQuery: <TPath_6 extends (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_2 ? { [TPath_5 in keyof T_2]: import("@trpc/server").inferProcedureInput<(T_2 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_5]> extends {
44
- cursor?: any;
45
- } ? TPath_5 : never; } : never)[keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>] & string>(pathAndInput: [path: TPath_6, input: Omit<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_3 ? { [TPath_1_3 in keyof T_3]: {
46
- input: import("@trpc/server").inferProcedureInput<(T_3 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_3]>;
47
- output: import("@trpc/server").inferProcedureOutput<(T_3 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_3]>;
48
- }; } : never)[TPath_6]["input"], "cursor">], opts?: import("@trpc/react/dist/createReactQueryHooks").UseTRPCInfiniteQueryOptions<TPath_6, Omit<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_4 ? { [TPath_1_4 in keyof T_4]: {
49
- input: import("@trpc/server").inferProcedureInput<(T_4 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_4]>;
50
- output: import("@trpc/server").inferProcedureOutput<(T_4 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_4]>;
51
- }; } : never)[TPath_6]["input"], "cursor">, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_5 ? { [TPath_1_5 in keyof T_5]: {
52
- input: import("@trpc/server").inferProcedureInput<(T_5 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_5]>;
53
- output: import("@trpc/server").inferProcedureOutput<(T_5 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_5]>;
54
- }; } : never)[TPath_6]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>> | undefined) => import("@tanstack/react-query").UseInfiniteQueryResult<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_6 ? { [TPath_1_6 in keyof T_6]: {
55
- input: import("@trpc/server").inferProcedureInput<(T_6 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_6]>;
56
- output: import("@trpc/server").inferProcedureOutput<(T_6 & import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>)[TPath_1_6]>;
57
- }; } : never)[TPath_6]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>>;
58
- queries: TRouter["_def"]["queries"];
59
- } & import("@trpc/react").DecoratedProcedureRecord<TRouter["_def"]["record"], "">;
60
- useContext: () => import("@trpc/react/dist/createReactQueryHooks").TRPCContextState<TRouter, TSSRContext>;
61
- useInfiniteQuery: <TPath_3_4 extends (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_7 ? { [TPath_7 in keyof T_7]: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_7]> extends {
62
- cursor?: any;
63
- } ? TPath_7 : never; } : never)[keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>] & string>(pathAndInput: [path: TPath_3_4, input: Omit<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
64
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
65
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
66
- }; } : never)[TPath_3_4]["input"], "cursor">], opts?: import("@trpc/react/dist/createReactQueryHooks").UseTRPCInfiniteQueryOptions<TPath_3_4, Omit<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
67
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
68
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
69
- }; } : never)[TPath_3_4]["input"], "cursor">, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
70
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
71
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
72
- }; } : never)[TPath_3_4]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>> | undefined) => import("@tanstack/react-query").UseInfiniteQueryResult<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
73
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
74
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
75
- }; } : never)[TPath_3_4]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>>;
76
- useMutation: <TPath_1_7 extends keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> & string, TContext_1 = unknown>(path: TPath_1_7 | [TPath_1_7], opts?: import("@trpc/react/dist/createReactQueryHooks").UseTRPCMutationOptions<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_9 ? { [TPath_9 in keyof T_9]: {
77
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
78
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
79
- }; } : never)[TPath_1_7]["input"], import("@trpc/react").TRPCClientErrorLike<TRouter>, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_9 ? { [TPath_9 in keyof T_9]: {
80
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
81
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
82
- }; } : never)[TPath_1_7]["output"], TContext_1> | undefined) => import("@tanstack/react-query").UseMutationResult<(import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_9 ? { [TPath_9 in keyof T_9]: {
83
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
84
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
85
- }; } : never)[TPath_1_7]["output"], import("@trpc/react").TRPCClientErrorLike<TRouter>, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord> extends infer T_9 ? { [TPath_9 in keyof T_9]: {
86
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
87
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["mutations"], import("@trpc/server").ProcedureRecord>[TPath_9]>;
88
- }; } : never)[TPath_1_7]["input"], TContext_1>;
89
- useQuery: <TPath_10 extends keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> & string, TQueryFnData_1 = (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
90
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
91
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
92
- }; } : never)[TPath_10]["output"], TData_1 = (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
93
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
94
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
95
- }; } : never)[TPath_10]["output"]>(pathAndInput: [path: TPath_10, ...args: import("@trpc/server").ProcedureArgs<import("@trpc/server").inferProcedureParams<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_10]>>], opts?: import("@trpc/react/dist/createReactQueryHooks").UseTRPCQueryOptions<TPath_10, (import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord> extends infer T_8 ? { [TPath_8 in keyof T_8]: {
96
- input: import("@trpc/server").inferProcedureInput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
97
- output: import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["queries"], import("@trpc/server").ProcedureRecord>[TPath_8]>;
98
- }; } : never)[TPath_10]["input"], TQueryFnData_1, TData_1, import("@trpc/react").TRPCClientErrorLike<TRouter>> | undefined) => import("@tanstack/react-query").UseQueryResult<TData_1, import("@trpc/react").TRPCClientErrorLike<TRouter>>;
99
- useSubscription: <TPath_2_1 extends keyof import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord> & string, TOutput_1 extends import("@trpc/server/observable").inferObservableValue<import("@trpc/server").inferProcedureOutput<TRouter["_def"]["subscriptions"][TPath_2_1]>>>(pathAndInput: [path: TPath_2_1, ...args: import("@trpc/server").ProcedureArgs<import("@trpc/server").inferProcedureParams<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord>[TPath_2_1]>>], opts: import("@trpc/react/dist/createReactQueryHooks").UseTRPCSubscriptionOptions<import("@trpc/server/observable").inferObservableValue<import("@trpc/server").inferProcedureOutput<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord>[TPath_2_1]>>, import("@trpc/server").inferProcedureClientError<import("@trpc/react/dist/createReactQueryHooks").AssertType<import("@trpc/react").AssertLegacyDef<TRouter>["subscriptions"], import("@trpc/server").ProcedureRecord>[TPath_2_1]>>) => void;
6
+ useContext(): DecoratedProcedureUtilsRecord<TRouter>;
100
7
  withTRPC: (AppOrPage: import("next/types").NextComponentType<any, any, any>) => import("next/types").NextComponentType<NextPageContext, {}, {}>;
101
- queries: TRouter["_def"]["queries"];
102
- };
8
+ } & DecoratedProcedureRecord<TRouter["_def"]["record"], "">;
103
9
  //# sourceMappingURL=setupNext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupNext.d.ts","sourceRoot":"","sources":["../src/setupNext.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAEhF,wBAAgB,SAAS,CACvB,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe,GAAG,eAAe,EACrD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlE"}
1
+ {"version":3,"file":"setupNext.d.ts","sourceRoot":"","sources":["../src/setupNext.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAG9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAEhF,wBAAgB,SAAS,CACvB,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe,GAAG,eAAe,EACrD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;kBAoCjD,8BAA8B,OAAO,CAAC;;4DAGvD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/next",
3
- "version": "10.0.0-proxy-alpha.62",
3
+ "version": "10.0.0-proxy-alpha.63",
4
4
  "description": "tRPC Next lib",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -36,9 +36,9 @@
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@tanstack/react-query": "^4.0.10",
39
- "@trpc/client": "10.0.0-proxy-alpha.62",
40
- "@trpc/react": "10.0.0-proxy-alpha.62",
41
- "@trpc/server": "10.0.0-proxy-alpha.62",
39
+ "@trpc/client": "10.0.0-proxy-alpha.63",
40
+ "@trpc/react": "10.0.0-proxy-alpha.63",
41
+ "@trpc/server": "10.0.0-proxy-alpha.63",
42
42
  "next": "*",
43
43
  "react": ">=16.8.0",
44
44
  "react-dom": ">=16.8.0"
@@ -48,9 +48,9 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@tanstack/react-query": "^4.0.10",
51
- "@trpc/client": "10.0.0-proxy-alpha.62",
52
- "@trpc/react": "10.0.0-proxy-alpha.62",
53
- "@trpc/server": "10.0.0-proxy-alpha.62",
51
+ "@trpc/client": "10.0.0-proxy-alpha.63",
52
+ "@trpc/react": "10.0.0-proxy-alpha.63",
53
+ "@trpc/server": "10.0.0-proxy-alpha.63",
54
54
  "@types/express": "^4.17.12",
55
55
  "express": "^4.17.1",
56
56
  "next": "^12.1.6",
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "f03a827d4500c9d81eeeafc08c76b3bd395b24c5"
64
+ "gitHead": "7eb10c98f1fe7385ab7a61d07fab49510294030b"
65
65
  }
package/src/setupNext.tsx CHANGED
@@ -1,6 +1,13 @@
1
- import { createReactQueryHooks, createReactQueryHooksProxy } from '@trpc/react';
1
+ import { createReactQueryHooks } from '@trpc/react';
2
+ import {
3
+ DecoratedProcedureRecord,
4
+ DecoratedProcedureUtilsRecord,
5
+ createReactProxyDecoration,
6
+ createReactQueryUtilsProxy,
7
+ } from '@trpc/react/shared';
2
8
  import { AnyRouter } from '@trpc/server';
3
9
  import { NextPageContext } from 'next/types';
10
+ import { useMemo } from 'react';
4
11
  import { WithTRPCNoSSROptions, WithTRPCSSROptions, withTRPC } from './withTRPC';
5
12
 
6
13
  export function setupTRPC<
@@ -8,19 +15,41 @@ export function setupTRPC<
8
15
  TSSRContext extends NextPageContext = NextPageContext,
9
16
  >(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>) {
10
17
  const hooks = createReactQueryHooks<TRouter, TSSRContext>();
11
- const proxy = createReactQueryHooksProxy<TRouter, TSSRContext>(hooks);
12
18
 
13
19
  // TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`
14
20
  const _withTRPC = withTRPC<TRouter, TSSRContext>(opts);
15
21
 
16
- return {
17
- proxy,
18
- useContext: hooks.useContext,
19
- useInfiniteQuery: hooks.useInfiniteQuery,
20
- useMutation: hooks.useMutation,
21
- useQuery: hooks.useQuery,
22
- useSubscription: hooks.useSubscription,
23
- withTRPC: _withTRPC,
24
- queries: hooks.queries,
25
- };
22
+ const proxy: unknown = new Proxy(
23
+ () => {
24
+ // no-op
25
+ },
26
+ {
27
+ get(_obj, name) {
28
+ if (name === 'useContext') {
29
+ return () => {
30
+ const context = hooks.useContext();
31
+ // create a stable reference of the utils context
32
+ return useMemo(() => {
33
+ return createReactQueryUtilsProxy(context as any);
34
+ }, [context]);
35
+ };
36
+ }
37
+
38
+ if (name === 'withTRPC') {
39
+ return _withTRPC;
40
+ }
41
+
42
+ if (typeof name === 'string') {
43
+ return createReactProxyDecoration(name, hooks);
44
+ }
45
+
46
+ throw new Error('Not supported');
47
+ },
48
+ },
49
+ );
50
+
51
+ return proxy as {
52
+ useContext(): DecoratedProcedureUtilsRecord<TRouter>;
53
+ withTRPC: typeof _withTRPC;
54
+ } & DecoratedProcedureRecord<TRouter['_def']['record']>;
26
55
  }