@trpc/tanstack-react-query 11.0.0-rc.764 → 11.0.0-rc.772

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.
Files changed (41) hide show
  1. package/dist/bundle-analysis.json +31 -31
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/internals/Context.d.ts +13 -7
  5. package/dist/internals/Context.d.ts.map +1 -1
  6. package/dist/internals/Context.js +5 -1
  7. package/dist/internals/Context.mjs +5 -1
  8. package/dist/internals/createOptionsProxy.d.ts +37 -15
  9. package/dist/internals/createOptionsProxy.d.ts.map +1 -1
  10. package/dist/internals/createOptionsProxy.js +9 -4
  11. package/dist/internals/createOptionsProxy.mjs +9 -4
  12. package/dist/internals/infiniteQueryOptions.d.ts +5 -15
  13. package/dist/internals/infiniteQueryOptions.d.ts.map +1 -1
  14. package/dist/internals/mutationOptions.d.ts +8 -3
  15. package/dist/internals/mutationOptions.d.ts.map +1 -1
  16. package/dist/internals/mutationOptions.js +3 -1
  17. package/dist/internals/mutationOptions.mjs +3 -1
  18. package/dist/internals/queryOptions.d.ts +8 -15
  19. package/dist/internals/queryOptions.d.ts.map +1 -1
  20. package/dist/internals/queryOptions.js +3 -1
  21. package/dist/internals/queryOptions.mjs +3 -1
  22. package/dist/internals/subscriptionOptions.d.ts +12 -16
  23. package/dist/internals/subscriptionOptions.d.ts.map +1 -1
  24. package/dist/internals/subscriptionOptions.js +7 -3
  25. package/dist/internals/subscriptionOptions.mjs +7 -3
  26. package/dist/internals/types.d.ts +24 -0
  27. package/dist/internals/types.d.ts.map +1 -1
  28. package/dist/internals/utils.d.ts +10 -2
  29. package/dist/internals/utils.d.ts.map +1 -1
  30. package/dist/internals/utils.js +9 -3
  31. package/dist/internals/utils.mjs +9 -3
  32. package/package.json +7 -7
  33. package/src/index.ts +1 -0
  34. package/src/internals/Context.tsx +20 -7
  35. package/src/internals/createOptionsProxy.ts +55 -39
  36. package/src/internals/infiniteQueryOptions.ts +25 -8
  37. package/src/internals/mutationOptions.ts +23 -6
  38. package/src/internals/queryOptions.ts +17 -3
  39. package/src/internals/subscriptionOptions.ts +24 -8
  40. package/src/internals/types.ts +24 -0
  41. package/src/internals/utils.ts +11 -2
@@ -4,7 +4,9 @@ var reactQuery = require('@tanstack/react-query');
4
4
  var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
5
5
  var utils = require('./utils.js');
6
6
 
7
- function trpcQueryOptions(args) {
7
+ /**
8
+ * @internal
9
+ */ function trpcQueryOptions(args) {
8
10
  const { query, path, queryKey, opts } = args;
9
11
  const queryClient = utils.unwrapLazyArg(args.queryClient);
10
12
  const inputIsSkipToken = queryKey[1]?.input === reactQuery.skipToken;
@@ -2,7 +2,9 @@ import { skipToken, queryOptions } from '@tanstack/react-query';
2
2
  import { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';
3
3
  import { unwrapLazyArg, createTRPCOptionsResult, getClientArgs, buildQueryFromAsyncIterable } from './utils.mjs';
4
4
 
5
- function trpcQueryOptions(args) {
5
+ /**
6
+ * @internal
7
+ */ function trpcQueryOptions(args) {
6
8
  const { query, path, queryKey, opts } = args;
7
9
  const queryClient = unwrapLazyArg(args.queryClient);
8
10
  const inputIsSkipToken = queryKey[1]?.input === skipToken;
@@ -1,4 +1,4 @@
1
- import { type SkipToken } from '@tanstack/react-query';
1
+ import type { SkipToken } from '@tanstack/react-query';
2
2
  import type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';
3
3
  import type { TRPCConnectionState } from '@trpc/client/unstable-internals';
4
4
  import type { Unsubscribable } from '@trpc/server/observable';
@@ -7,14 +7,15 @@ import type { ResolverDef, TRPCQueryKey, TRPCQueryOptionsResult } from './types'
7
7
  interface BaseTRPCSubscriptionOptionsIn<TOutput, TError> {
8
8
  enabled?: boolean;
9
9
  onStarted?: () => void;
10
- onData: (data: inferAsyncIterableYield<TOutput>) => void;
10
+ onData?: (data: inferAsyncIterableYield<TOutput>) => void;
11
11
  onError?: (err: TError) => void;
12
+ onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
12
13
  }
13
14
  interface UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError> {
14
15
  onStarted?: () => void;
15
- onData: (data: inferAsyncIterableYield<TOutput>) => void;
16
+ onData?: (data: inferAsyncIterableYield<TOutput>) => void;
16
17
  onError?: (err: TError) => void;
17
- onConnectionStateChange: (state: TRPCConnectionState<TError>) => void;
18
+ onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
18
19
  }
19
20
  interface TRPCSubscriptionOptionsOut<TOutput, TError> extends UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>, TRPCQueryOptionsResult {
20
21
  enabled: boolean;
@@ -56,22 +57,17 @@ export interface TRPCSubscriptionErrorResult<TOutput, TError> extends TRPCSubscr
56
57
  error: TError;
57
58
  }
58
59
  export type TRPCSubscriptionResult<TOutput, TError> = TRPCSubscriptionIdleResult<TOutput> | TRPCSubscriptionConnectingResult<TOutput, TError> | TRPCSubscriptionErrorResult<TOutput, TError> | TRPCSubscriptionPendingResult<TOutput>;
60
+ type AnyTRPCSubscriptionOptionsIn = BaseTRPCSubscriptionOptionsIn<unknown, unknown> | UnusedSkipTokenTRPCSubscriptionOptionsIn<unknown, unknown>;
61
+ type AnyTRPCSubscriptionOptionsOut = TRPCSubscriptionOptionsOut<unknown, unknown>;
62
+ /**
63
+ * @internal
64
+ */
59
65
  export declare const trpcSubscriptionOptions: (args: {
60
66
  subscribe: typeof TRPCUntypedClient.prototype.subscription;
61
67
  path: readonly string[];
62
68
  queryKey: TRPCQueryKey;
63
- opts: BaseTRPCSubscriptionOptionsIn<unknown, unknown> | undefined;
64
- }) => {
65
- enabled: boolean;
66
- subscribe: (innerOpts: UnusedSkipTokenTRPCSubscriptionOptionsIn<any, TRPCClientErrorLike<any>>) => Unsubscribable;
67
- queryKey: TRPCQueryKey;
68
- trpc: {
69
- path: string;
70
- };
71
- onStarted?: () => void;
72
- onData?: ((data: unknown) => void) | undefined;
73
- onError?: ((err: unknown) => void) | undefined;
74
- };
69
+ opts: AnyTRPCSubscriptionOptionsIn;
70
+ }) => AnyTRPCSubscriptionOptionsOut;
75
71
  export declare function useSubscription<TOutput, TError>(opts: TRPCSubscriptionOptionsOut<TOutput, TError>): TRPCSubscriptionResult<TOutput, TError>;
76
72
  export {};
77
73
  //# sourceMappingURL=subscriptionOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptionOptions.d.ts","sourceRoot":"","sources":["../../src/internals/subscriptionOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscriptionOptions.d.ts","sourceRoot":"","sources":["../../src/internals/subscriptionOptions.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,12 @@ function _interopNamespaceDefault(e) {
23
23
 
24
24
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
25
25
 
26
- const trpcSubscriptionOptions = (args)=>{
26
+ /**
27
+ * @internal
28
+ */ const trpcSubscriptionOptions = (args)=>{
27
29
  const { subscribe, path, queryKey, opts } = args;
28
30
  const input = queryKey[1]?.input;
29
- const enabled = opts?.enabled ?? input !== reactQuery.skipToken;
31
+ const enabled = 'enabled' in opts ? !!opts.enabled : input !== reactQuery.skipToken;
30
32
  const _subscribe = (innerOpts)=>{
31
33
  return subscribe(path.join('.'), input ?? undefined, innerOpts);
32
34
  };
@@ -47,7 +49,9 @@ function useSubscription(opts) {
47
49
  const addTrackedProp = React__namespace.useCallback((key)=>{
48
50
  trackedProps.current.add(key);
49
51
  }, []);
50
- const currentSubscriptionRef = React__namespace.useRef();
52
+ const currentSubscriptionRef = React__namespace.useRef(()=>{
53
+ // noop
54
+ });
51
55
  const reset = React__namespace.useCallback(()=>{
52
56
  // unsubscribe from the previous subscription
53
57
  currentSubscriptionRef.current?.();
@@ -2,10 +2,12 @@ import { hashKey, skipToken } from '@tanstack/react-query';
2
2
  import * as React from 'react';
3
3
  import { createTRPCOptionsResult } from './utils.mjs';
4
4
 
5
- const trpcSubscriptionOptions = (args)=>{
5
+ /**
6
+ * @internal
7
+ */ const trpcSubscriptionOptions = (args)=>{
6
8
  const { subscribe, path, queryKey, opts } = args;
7
9
  const input = queryKey[1]?.input;
8
- const enabled = opts?.enabled ?? input !== skipToken;
10
+ const enabled = 'enabled' in opts ? !!opts.enabled : input !== skipToken;
9
11
  const _subscribe = (innerOpts)=>{
10
12
  return subscribe(path.join('.'), input ?? undefined, innerOpts);
11
13
  };
@@ -26,7 +28,9 @@ function useSubscription(opts) {
26
28
  const addTrackedProp = React.useCallback((key)=>{
27
29
  trackedProps.current.add(key);
28
30
  }, []);
29
- const currentSubscriptionRef = React.useRef();
31
+ const currentSubscriptionRef = React.useRef(()=>{
32
+ // noop
33
+ });
30
34
  const reset = React.useCallback(()=>{
31
35
  // unsubscribe from the previous subscription
32
36
  currentSubscriptionRef.current?.();
@@ -1,13 +1,22 @@
1
1
  import type { TRPCRequestOptions } from '@trpc/client';
2
+ /**
3
+ * @internal
4
+ */
2
5
  export type ResolverDef = {
3
6
  input: any;
4
7
  output: any;
5
8
  transformer: boolean;
6
9
  errorShape: any;
7
10
  };
11
+ /**
12
+ * @internal
13
+ */
8
14
  export type ExtractCursorType<TInput> = TInput extends {
9
15
  cursor?: any;
10
16
  } ? TInput['cursor'] : unknown;
17
+ /**
18
+ * @public
19
+ */
11
20
  export interface TRPCReactRequestOptions extends Omit<TRPCRequestOptions, 'signal'> {
12
21
  /**
13
22
  * Opt out of SSR for this query by passing `ssr: false`
@@ -18,18 +27,30 @@ export interface TRPCReactRequestOptions extends Omit<TRPCRequestOptions, 'signa
18
27
  */
19
28
  abortOnUnmount?: boolean;
20
29
  }
30
+ /**
31
+ * @public
32
+ */
21
33
  export interface TRPCQueryBaseOptions {
22
34
  /**
23
35
  * tRPC-related options
24
36
  */
25
37
  trpc?: TRPCReactRequestOptions;
26
38
  }
39
+ /**
40
+ * @public
41
+ */
27
42
  export interface TRPCQueryOptionsResult {
28
43
  trpc: {
29
44
  path: string;
30
45
  };
31
46
  }
47
+ /**
48
+ * @public
49
+ */
32
50
  export type QueryType = 'any' | 'infinite' | 'query';
51
+ /**
52
+ * @public
53
+ */
33
54
  export type TRPCQueryKey = [
34
55
  readonly string[],
35
56
  {
@@ -37,5 +58,8 @@ export type TRPCQueryKey = [
37
58
  type?: Exclude<QueryType, 'any'>;
38
59
  }?
39
60
  ];
61
+ /**
62
+ * @public
63
+ */
40
64
  export type TRPCMutationKey = [readonly string[]];
41
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI,MAAM,SAAS;IAAE,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GACnE,MAAM,CAAC,QAAQ,CAAC,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,uBAEf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC1C;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,MAAM,EAAE;IACjB;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KAAE,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI,MAAM,SAAS;IAAE,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GACnE,MAAM,CAAC,QAAQ,CAAC,GAChB,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,uBAEf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC1C;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,MAAM,EAAE;IACjB;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KAAE,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type QueryClient } from '@tanstack/react-query';
1
+ import type { QueryClient } from '@tanstack/react-query';
2
2
  import type { QueryType, TRPCMutationKey, TRPCQueryKey, TRPCQueryOptionsResult } from './types';
3
3
  /**
4
4
  * @internal
@@ -21,8 +21,16 @@ export declare function buildQueryFromAsyncIterable(asyncIterable: AsyncIterable
21
21
  * To allow easy interactions with groups of related queries, such as
22
22
  * invalidating all queries of a router, we use an array as the path when
23
23
  * storing in tanstack query.
24
- **/
24
+ *
25
+ * @internal
26
+ */
25
27
  export declare function getQueryKeyInternal(path: readonly string[], input: unknown, type: QueryType): TRPCQueryKey;
28
+ /**
29
+ * @internal
30
+ */
26
31
  export declare function getMutationKeyInternal(path: readonly string[]): TRPCMutationKey;
32
+ /**
33
+ * @internal
34
+ */
27
35
  export declare function unwrapLazyArg<T>(valueOrLazy: T | (() => T)): T;
28
36
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internals/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAMjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EACpC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,QAAQ,EACd,cAAc,CAAC,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,mCAYF;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,EACrC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,sBAsBvB;AAED;;;;IAII;AACJ,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,SAAS,GACd,YAAY,CA0Cd;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,eAAe,CAKjB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAE9D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internals/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAMjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EACpC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,QAAQ,EACd,cAAc,CAAC,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,mCAYF;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,EACrC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,sBAsBvB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,SAAS,GACd,YAAY,CA0Cd;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,eAAe,CAKjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAE9D"}
@@ -57,7 +57,9 @@ var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import'
57
57
  * To allow easy interactions with groups of related queries, such as
58
58
  * invalidating all queries of a router, we use an array as the path when
59
59
  * storing in tanstack query.
60
- **/ function getQueryKeyInternal(path, input, type) {
60
+ *
61
+ * @internal
62
+ */ function getQueryKeyInternal(path, input, type) {
61
63
  // Construct a query key that is easy to destructure and flexible for
62
64
  // partial selecting etc.
63
65
  // https://github.com/trpc/trpc/issues/3128
@@ -93,14 +95,18 @@ var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import'
93
95
  }
94
96
  ];
95
97
  }
96
- function getMutationKeyInternal(path) {
98
+ /**
99
+ * @internal
100
+ */ function getMutationKeyInternal(path) {
97
101
  // some parts of the path may be dot-separated, split them up
98
102
  const splitPath = path.flatMap((part)=>part.split('.'));
99
103
  return splitPath.length ? [
100
104
  splitPath
101
105
  ] : [];
102
106
  }
103
- function unwrapLazyArg(valueOrLazy) {
107
+ /**
108
+ * @internal
109
+ */ function unwrapLazyArg(valueOrLazy) {
104
110
  return unstableCoreDoNotImport.isFunction(valueOrLazy) ? valueOrLazy() : valueOrLazy;
105
111
  }
106
112
 
@@ -55,7 +55,9 @@ import { isObject, isFunction } from '@trpc/server/unstable-core-do-not-import';
55
55
  * To allow easy interactions with groups of related queries, such as
56
56
  * invalidating all queries of a router, we use an array as the path when
57
57
  * storing in tanstack query.
58
- **/ function getQueryKeyInternal(path, input, type) {
58
+ *
59
+ * @internal
60
+ */ function getQueryKeyInternal(path, input, type) {
59
61
  // Construct a query key that is easy to destructure and flexible for
60
62
  // partial selecting etc.
61
63
  // https://github.com/trpc/trpc/issues/3128
@@ -91,14 +93,18 @@ import { isObject, isFunction } from '@trpc/server/unstable-core-do-not-import';
91
93
  }
92
94
  ];
93
95
  }
94
- function getMutationKeyInternal(path) {
96
+ /**
97
+ * @internal
98
+ */ function getMutationKeyInternal(path) {
95
99
  // some parts of the path may be dot-separated, split them up
96
100
  const splitPath = path.flatMap((part)=>part.split('.'));
97
101
  return splitPath.length ? [
98
102
  splitPath
99
103
  ] : [];
100
104
  }
101
- function unwrapLazyArg(valueOrLazy) {
105
+ /**
106
+ * @internal
107
+ */ function unwrapLazyArg(valueOrLazy) {
102
108
  return isFunction(valueOrLazy) ? valueOrLazy() : valueOrLazy;
103
109
  }
104
110
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/tanstack-react-query",
3
- "version": "11.0.0-rc.764+71c7ccc49",
3
+ "version": "11.0.0-rc.772+6627c5a96",
4
4
  "description": "TanStack React Query Integration for tRPC",
5
5
  "author": "juliusmarminge",
6
6
  "license": "MIT",
@@ -49,18 +49,18 @@
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@tanstack/react-query": "^5.62.8",
52
- "@trpc/client": "11.0.0-rc.764+71c7ccc49",
53
- "@trpc/server": "11.0.0-rc.764+71c7ccc49",
52
+ "@trpc/client": "11.0.0-rc.772+6627c5a96",
53
+ "@trpc/server": "11.0.0-rc.772+6627c5a96",
54
54
  "react": ">=18.2.0",
55
55
  "react-dom": ">=18.2.0",
56
56
  "typescript": ">=5.7.2"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@tanstack/react-query": "^5.66.0",
60
- "@trpc/client": "11.0.0-rc.764+71c7ccc49",
61
- "@trpc/server": "11.0.0-rc.764+71c7ccc49",
60
+ "@trpc/client": "11.0.0-rc.772+6627c5a96",
61
+ "@trpc/server": "11.0.0-rc.772+6627c5a96",
62
62
  "@types/node": "^20.10.0",
63
- "@types/react": "^18.3.1",
63
+ "@types/react": "^19.0.0",
64
64
  "eslint": "^8.57.0",
65
65
  "event-source-polyfill": "^1.0.31",
66
66
  "konn": "^0.7.0",
@@ -79,5 +79,5 @@
79
79
  "funding": [
80
80
  "https://trpc.io/sponsor"
81
81
  ],
82
- "gitHead": "71c7ccc4915f8689d4d974d983d1c69ebce74aef"
82
+ "gitHead": "6627c5a965a2081cd28cfad24d6712e985f0ad5f"
83
83
  }
package/src/index.ts CHANGED
@@ -23,3 +23,4 @@ export type {
23
23
  } from './internals/subscriptionOptions';
24
24
  export { createTRPCOptionsProxy } from './internals/createOptionsProxy';
25
25
  export { useSubscription } from './internals/subscriptionOptions';
26
+ export type * from './internals/types';
@@ -1,13 +1,26 @@
1
- import { type QueryClient } from '@tanstack/react-query';
2
- import { type CreateTRPCClient } from '@trpc/client';
1
+ import type { QueryClient } from '@tanstack/react-query';
2
+ import type { CreateTRPCClient } from '@trpc/client';
3
3
  import type { AnyTRPCRouter } from '@trpc/server';
4
4
  import * as React from 'react';
5
- import {
6
- createTRPCOptionsProxy,
7
- type TRPCOptionsProxy,
8
- } from './createOptionsProxy';
5
+ import type { TRPCOptionsProxy } from './createOptionsProxy';
6
+ import { createTRPCOptionsProxy } from './createOptionsProxy';
9
7
 
10
- export function createTRPCContext<TRouter extends AnyTRPCRouter>() {
8
+ export interface CreateTRPCContextResult<TRouter extends AnyTRPCRouter> {
9
+ TRPCProvider: React.FC<{
10
+ children: React.ReactNode;
11
+ queryClient: QueryClient;
12
+ trpcClient: CreateTRPCClient<TRouter>;
13
+ }>;
14
+ useTRPC: () => TRPCOptionsProxy<TRouter>;
15
+ }
16
+ /**
17
+ * Create a set of type-safe provider-consumers
18
+ *
19
+ * @see https://trpc.io/docs/client/tanstack-react-query/setup#3a-setup-the-trpc-context-provider
20
+ */
21
+ export function createTRPCContext<
22
+ TRouter extends AnyTRPCRouter,
23
+ >(): CreateTRPCContextResult<TRouter> {
11
24
  const TRPCContext = React.createContext<TRPCOptionsProxy<TRouter> | null>(
12
25
  null,
13
26
  );
@@ -1,28 +1,18 @@
1
- import type { DataTag } from '@tanstack/react-query';
2
- import { type QueryClient, type QueryFilters } from '@tanstack/react-query';
3
- import {
4
- getUntypedClient,
5
- TRPCUntypedClient,
6
- type CreateTRPCClient,
7
- type TRPCRequestOptions,
8
- } from '@trpc/client';
9
- import {
10
- type AnyProcedure,
11
- type inferProcedureInput,
12
- type inferRouterContext,
13
- type inferTransformedProcedureOutput,
14
- type ProcedureType,
15
- } from '@trpc/server';
1
+ import type { DataTag, QueryClient, QueryFilters } from '@tanstack/react-query';
2
+ import type { CreateTRPCClient, TRPCRequestOptions } from '@trpc/client';
3
+ import { getUntypedClient, TRPCUntypedClient } from '@trpc/client';
16
4
  import type {
17
- AnyRootTypes,
18
- AnyRouter,
19
- MaybePromise,
20
- RouterRecord,
21
- } from '@trpc/server/unstable-core-do-not-import';
22
- import {
23
- callProcedure,
24
- createRecursiveProxy,
25
- } from '@trpc/server/unstable-core-do-not-import';
5
+ AnyTRPCProcedure,
6
+ AnyTRPCRootTypes,
7
+ AnyTRPCRouter,
8
+ inferProcedureInput,
9
+ inferRouterContext,
10
+ inferTransformedProcedureOutput,
11
+ TRPCProcedureType,
12
+ TRPCRouterRecord,
13
+ } from '@trpc/server';
14
+ import { callTRPCProcedure, createTRPCRecursiveProxy } from '@trpc/server';
15
+ import type { MaybePromise } from '@trpc/server/unstable-core-do-not-import';
26
16
  import {
27
17
  trpcInfiniteQueryOptions,
28
18
  type TRPCInfiniteQueryOptions,
@@ -54,6 +44,7 @@ export interface DecorateQueryKeyable {
54
44
  * Calculate the TanStack Query Key for a Route
55
45
  *
56
46
  * @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys
47
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryKey
57
48
  */
58
49
  queryKey: () => TRPCQueryKey;
59
50
 
@@ -61,6 +52,7 @@ export interface DecorateQueryKeyable {
61
52
  * Calculate a TanStack Query Filter for a Route
62
53
  *
63
54
  * @see https://tanstack.com/query/latest/docs/framework/react/guides/filters
55
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryFilter
64
56
  */
65
57
  queryFilter: (input?: undefined, filters?: QueryFilters) => QueryFilters;
66
58
  }
@@ -88,12 +80,18 @@ export interface DecorateQueryProcedure<TDef extends ResolverDef> {
88
80
  };
89
81
 
90
82
  /**
83
+ * Create a set of type-safe query options that can be passed to `useQuery`, `prefetchQuery` etc.
84
+ *
91
85
  * @see https://tanstack.com/query/latest/docs/framework/react/reference/queryOptions#queryoptions
86
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryOptions
92
87
  */
93
88
  queryOptions: TRPCQueryOptions<TDef>;
94
89
 
95
90
  /**
91
+ * Create a set of type-safe infinite query options that can be passed to `useInfiniteQuery`, `prefetchInfiniteQuery` etc.
92
+ *
96
93
  * @see https://tanstack.com/query/latest/docs/framework/react/reference/infiniteQueryOptions#infinitequeryoptions
94
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#infiniteQueryOptions
97
95
  */
98
96
  infiniteQueryOptions: TRPCInfiniteQueryOptions<TDef>;
99
97
 
@@ -101,6 +99,7 @@ export interface DecorateQueryProcedure<TDef extends ResolverDef> {
101
99
  * Calculate the TanStack Query Key for a Query Procedure
102
100
  *
103
101
  * @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys
102
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryKey
104
103
  */
105
104
  queryKey: (
106
105
  input?: TDef['input'],
@@ -110,6 +109,7 @@ export interface DecorateQueryProcedure<TDef extends ResolverDef> {
110
109
  * Calculate a TanStack Query Filter for a Query Procedure
111
110
  *
112
111
  * @see https://tanstack.com/query/latest/docs/framework/react/guides/filters
112
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryFilter
113
113
  */
114
114
  queryFilter: (
115
115
  input?: TDef['input'],
@@ -132,25 +132,31 @@ export interface DecorateMutationProcedure<TDef extends ResolverDef> {
132
132
  };
133
133
 
134
134
  /**
135
- * @see
135
+ * Create a set of type-safe mutation options that can be passed to `useMutation`
136
+ *
137
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#mutationOptions
136
138
  */
137
139
  mutationOptions: TRPCMutationOptions<TDef>;
138
140
 
139
141
  /**
140
142
  * Calculate the TanStack Mutation Key for a Mutation Procedure
143
+ *
144
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#mutationKey
141
145
  */
142
146
  mutationKey: () => TRPCMutationKey;
143
147
  }
144
148
 
145
149
  export interface DecorateSubscriptionProcedure<TDef extends ResolverDef> {
146
150
  /**
147
- * @see
151
+ * Create a set of type-safe subscription options that can be passed to `useSubscription`
152
+ *
153
+ * @see https://trpc.io/docs/client/tanstack-react-query/usage#subscriptionOptions
148
154
  */
149
155
  subscriptionOptions: TRPCSubscriptionOptions<TDef>;
150
156
  }
151
157
 
152
158
  export type DecorateProcedure<
153
- TType extends ProcedureType,
159
+ TType extends TRPCProcedureType,
154
160
  TDef extends ResolverDef,
155
161
  > = TType extends 'query'
156
162
  ? DecorateQueryProcedure<TDef>
@@ -164,13 +170,13 @@ export type DecorateProcedure<
164
170
  * @internal
165
171
  */
166
172
  export type DecoratedProcedureUtilsRecord<
167
- TRoot extends AnyRootTypes,
168
- TRecord extends RouterRecord,
173
+ TRoot extends AnyTRPCRootTypes,
174
+ TRecord extends TRPCRouterRecord,
169
175
  > = {
170
176
  [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value
171
- ? $Value extends RouterRecord
177
+ ? $Value extends TRPCRouterRecord
172
178
  ? DecoratedProcedureUtilsRecord<TRoot, $Value> & DecorateQueryKeyable
173
- : $Value extends AnyProcedure
179
+ : $Value extends AnyTRPCProcedure
174
180
  ? DecorateProcedure<
175
181
  $Value['_def']['type'],
176
182
  {
@@ -184,7 +190,7 @@ export type DecoratedProcedureUtilsRecord<
184
190
  : never;
185
191
  };
186
192
 
187
- export type TRPCOptionsProxy<TRouter extends AnyRouter> =
193
+ export type TRPCOptionsProxy<TRouter extends AnyTRPCRouter> =
188
194
  DecoratedProcedureUtilsRecord<
189
195
  TRouter['_def']['_config']['$types'],
190
196
  TRouter['_def']['record']
@@ -198,18 +204,22 @@ export interface TRPCOptionsProxyOptionsBase {
198
204
  };
199
205
  }
200
206
 
201
- export interface TRPCOptionsProxyOptionsInternal<TRouter extends AnyRouter> {
207
+ export interface TRPCOptionsProxyOptionsInternal<
208
+ TRouter extends AnyTRPCRouter,
209
+ > {
202
210
  router: TRouter;
203
211
  ctx:
204
212
  | inferRouterContext<TRouter>
205
213
  | (() => MaybePromise<inferRouterContext<TRouter>>);
206
214
  }
207
215
 
208
- export interface TRPCOptionsProxyOptionsExternal<TRouter extends AnyRouter> {
216
+ export interface TRPCOptionsProxyOptionsExternal<
217
+ TRouter extends AnyTRPCRouter,
218
+ > {
209
219
  client: TRPCUntypedClient<TRouter> | CreateTRPCClient<TRouter>;
210
220
  }
211
221
 
212
- export type TRPCOptionsProxyOptions<TRouter extends AnyRouter> =
222
+ export type TRPCOptionsProxyOptions<TRouter extends AnyTRPCRouter> =
213
223
  TRPCOptionsProxyOptionsBase &
214
224
  (
215
225
  | TRPCOptionsProxyOptionsInternal<TRouter>
@@ -232,14 +242,20 @@ function getQueryType(method: UtilsMethods) {
232
242
  return map[method];
233
243
  }
234
244
 
235
- export function createTRPCOptionsProxy<TRouter extends AnyRouter>(
245
+ /**
246
+ * Create a typed proxy from your router types. Can also be used on the server.
247
+ *
248
+ * @see https://trpc.io/docs/client/tanstack-react-query/setup#3b-setup-without-react-context
249
+ * @see https://trpc.io/docs/client/tanstack-react-query/server-components#5-create-a-trpc-caller-for-server-components
250
+ */
251
+ export function createTRPCOptionsProxy<TRouter extends AnyTRPCRouter>(
236
252
  opts: TRPCOptionsProxyOptions<TRouter>,
237
253
  ): TRPCOptionsProxy<TRouter> {
238
- const callIt = (type: ProcedureType): any => {
254
+ const callIt = (type: TRPCProcedureType): any => {
239
255
  return (path: string, input: unknown, trpcOpts: TRPCRequestOptions) => {
240
256
  if ('router' in opts) {
241
257
  return Promise.resolve(unwrapLazyArg(opts.ctx)).then((ctx) =>
242
- callProcedure({
258
+ callTRPCProcedure({
243
259
  router: opts.router,
244
260
  path: path,
245
261
  getRawInput: async () => input,
@@ -259,7 +275,7 @@ export function createTRPCOptionsProxy<TRouter extends AnyRouter>(
259
275
  };
260
276
  };
261
277
 
262
- return createRecursiveProxy(({ args, path: _path }) => {
278
+ return createTRPCRecursiveProxy(({ args, path: _path }) => {
263
279
  const path = [..._path];
264
280
  const utilName = path.pop() as UtilsMethods;
265
281
  const [arg1, arg2] = args as any[];