@trpc/react-query 11.0.0-alpha-tmp-app-router-example.364 → 11.0.0-alpha-tmp-rethrow-next-errors.385

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.
@@ -1,12 +1,12 @@
1
1
  {
2
- "bundleSize": 29442,
3
- "bundleOrigSize": 64714,
4
- "bundleReduction": 54.5,
2
+ "bundleSize": 29431,
3
+ "bundleOrigSize": 63440,
4
+ "bundleReduction": 53.61,
5
5
  "modules": [
6
6
  {
7
7
  "id": "/src/shared/hooks/createHooksInternal.tsx",
8
- "size": 12873,
9
- "origSize": 14940,
8
+ "size": 13743,
9
+ "origSize": 15767,
10
10
  "renderedExports": [
11
11
  "createRootHooks"
12
12
  ],
@@ -14,8 +14,8 @@
14
14
  "dependents": [
15
15
  "/src/createTRPCReact.tsx"
16
16
  ],
17
- "percent": 43.72,
18
- "reduction": 13.84
17
+ "percent": 46.7,
18
+ "reduction": 12.84
19
19
  },
20
20
  {
21
21
  "id": "/src/utils/createUtilityFunctions.ts",
@@ -59,7 +59,7 @@
59
59
  "dependents": [
60
60
  "/src/shared/index.ts"
61
61
  ],
62
- "percent": 9.74,
62
+ "percent": 9.75,
63
63
  "reduction": 74.38
64
64
  },
65
65
  {
@@ -73,7 +73,6 @@
73
73
  "removedExports": [],
74
74
  "dependents": [
75
75
  "/src/index.ts",
76
- "/src/rsc.tsx",
77
76
  "/src/server/ssgProxy.ts",
78
77
  "/src/shared/proxy/utilsProxy.ts",
79
78
  "/src/shared/proxy/useQueriesProxy.ts",
@@ -82,18 +81,6 @@
82
81
  "percent": 6.79,
83
82
  "reduction": 42.49
84
83
  },
85
- {
86
- "id": "/src/rsc.tsx",
87
- "size": 881,
88
- "origSize": 2101,
89
- "renderedExports": [
90
- "createHydrationHelpers"
91
- ],
92
- "removedExports": [],
93
- "dependents": [],
94
- "percent": 2.99,
95
- "reduction": 58.07
96
- },
97
84
  {
98
85
  "id": "/src/createTRPCReact.tsx",
99
86
  "size": 850,
@@ -249,5 +236,5 @@
249
236
  "reduction": 100
250
237
  }
251
238
  ],
252
- "moduleCount": 17
239
+ "moduleCount": 16
253
240
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createHooksInternal.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/createHooksInternal.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,mCAAmC,EACnC,kCAAkC,EAClC,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,SAAS,SAAS,EACzB,WAAW,GAAG,OAAO,EACrB,MAAM,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC;;;;;qBAmFhC,MAAM,EAAE,SACP,OAAO;6BA6DR,MAAM,EAAE,SACP,OAAO;;;wBAsCR,MAAM,EAAE;4BA0CR,MAAM,EAAE,SACP,OAAO;6BA6CR,MAAM,EAAE,SACP,OAAO;qCAyER,MAAM,EAAE,SACP,OAAO;EAsHjB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAC/B,OAAO,SAAS,SAAS,EACzB,WAAW,GAAG,OAAO,IACnB,UAAU,CAAC,OAAO,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createHooksInternal.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/createHooksInternal.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAG1E,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,mCAAmC,EACnC,kCAAkC,EAClC,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,SAAS,SAAS,EACzB,WAAW,GAAG,OAAO,EACrB,MAAM,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC;;;;;qBAmFhC,MAAM,EAAE,SACP,OAAO;6BAuFR,MAAM,EAAE,SACP,OAAO;;;wBAsCR,MAAM,EAAE;4BA0CR,MAAM,EAAE,SACP,OAAO;6BA6CR,MAAM,EAAE,SACP,OAAO;qCAyER,MAAM,EAAE,SACP,OAAO;EAsHjB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAC/B,OAAO,SAAS,SAAS,EACzB,WAAW,GAAG,OAAO,IACnB,UAAU,CAAC,OAAO,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var reactQuery = require('@tanstack/react-query');
4
4
  var client = require('@trpc/client');
5
+ var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
5
6
  var React = require('react');
6
7
  var context = require('../../internals/context.js');
7
8
  var getClientArgs = require('../../internals/getClientArgs.js');
@@ -109,7 +110,7 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
109
110
  const hook = reactQuery.useQuery({
110
111
  ...ssrOpts,
111
112
  queryKey: queryKey,
112
- queryFn: isInputSkipToken ? input : (queryFunctionContext)=>{
113
+ queryFn: isInputSkipToken ? input : async (queryFunctionContext)=>{
113
114
  const actualOpts = {
114
115
  ...ssrOpts,
115
116
  trpc: {
@@ -119,7 +120,28 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
119
120
  } : {}
120
121
  }
121
122
  };
122
- return client.query(...getClientArgs.getClientArgs(queryKey, actualOpts));
123
+ const result = await client.query(...getClientArgs.getClientArgs(queryKey, actualOpts));
124
+ if (unstableCoreDoNotImport.isAsyncIterable(result)) {
125
+ const queryCache = queryClient.getQueryCache();
126
+ const query = queryCache.build(queryFunctionContext.queryKey, {
127
+ queryKey
128
+ });
129
+ query.setState({
130
+ data: [],
131
+ status: 'success'
132
+ });
133
+ const aggregate = [];
134
+ for await (const value of result){
135
+ aggregate.push(value);
136
+ query.setState({
137
+ data: [
138
+ ...aggregate
139
+ ]
140
+ });
141
+ }
142
+ return aggregate;
143
+ }
144
+ return result;
123
145
  }
124
146
  }, queryClient);
125
147
  hook.trpc = useHookResult.useHookResult({
@@ -1,5 +1,6 @@
1
1
  import { useQuery, useSuspenseQuery, useQueryClient, useMutation, hashKey, useInfiniteQuery, useSuspenseInfiniteQuery, useQueries, useSuspenseQueries, skipToken } from '@tanstack/react-query';
2
2
  import { createTRPCUntypedClient } from '@trpc/client';
3
+ import { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';
3
4
  import * as React from 'react';
4
5
  import { TRPCContext } from '../../internals/context.mjs';
5
6
  import { getClientArgs } from '../../internals/getClientArgs.mjs';
@@ -88,7 +89,7 @@ import { createUseQueries } from '../proxy/useQueriesProxy.mjs';
88
89
  const hook = useQuery({
89
90
  ...ssrOpts,
90
91
  queryKey: queryKey,
91
- queryFn: isInputSkipToken ? input : (queryFunctionContext)=>{
92
+ queryFn: isInputSkipToken ? input : async (queryFunctionContext)=>{
92
93
  const actualOpts = {
93
94
  ...ssrOpts,
94
95
  trpc: {
@@ -98,7 +99,28 @@ import { createUseQueries } from '../proxy/useQueriesProxy.mjs';
98
99
  } : {}
99
100
  }
100
101
  };
101
- return client.query(...getClientArgs(queryKey, actualOpts));
102
+ const result = await client.query(...getClientArgs(queryKey, actualOpts));
103
+ if (isAsyncIterable(result)) {
104
+ const queryCache = queryClient.getQueryCache();
105
+ const query = queryCache.build(queryFunctionContext.queryKey, {
106
+ queryKey
107
+ });
108
+ query.setState({
109
+ data: [],
110
+ status: 'success'
111
+ });
112
+ const aggregate = [];
113
+ for await (const value of result){
114
+ aggregate.push(value);
115
+ query.setState({
116
+ data: [
117
+ ...aggregate
118
+ ]
119
+ });
120
+ }
121
+ return aggregate;
122
+ }
123
+ return result;
102
124
  }
103
125
  }, queryClient);
104
126
  hook.trpc = useHookResult({
@@ -58,10 +58,11 @@ export interface TRPCProviderProps<TRouter extends AnyRouter, TSSRContext> exten
58
58
  export type TRPCProvider<TRouter extends AnyRouter, TSSRContext> = (props: TRPCProviderProps<TRouter, TSSRContext>) => JSX.Element;
59
59
  export type UseDehydratedState<TRouter extends AnyRouter> = (client: TRPCUntypedClient<TRouter>, trpcState: DehydratedState | undefined) => DehydratedState | undefined;
60
60
  export type CreateClient<TRouter extends AnyRouter> = (opts: CreateTRPCClientOptions<TRouter>) => TRPCUntypedClient<TRouter>;
61
+ type coerceAsyncIterableToArray<TValue> = TValue extends AsyncIterable<infer $Inferred> ? $Inferred[] : TValue;
61
62
  /**
62
63
  * @internal
63
64
  */
64
- export type UseTRPCQueryResult<TData, TError> = TRPCHookResult & UseQueryResult<TData, TError>;
65
+ export type UseTRPCQueryResult<TData, TError> = TRPCHookResult & UseQueryResult<coerceAsyncIterableToArray<TData>, TError>;
65
66
  /**
66
67
  * @internal
67
68
  */
@@ -101,4 +102,5 @@ export interface TRPCHookResult {
101
102
  path: string;
102
103
  };
103
104
  }
105
+ export {};
104
106
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/react-query",
3
- "version": "11.0.0-alpha-tmp-app-router-example.364+4d068acf1",
3
+ "version": "11.0.0-alpha-tmp-rethrow-next-errors.385+b1c8fe83e",
4
4
  "description": "The tRPC React library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -27,11 +27,6 @@
27
27
  "require": "./dist/index.js",
28
28
  "default": "./dist/index.js"
29
29
  },
30
- "./rsc": {
31
- "import": "./dist/rsc.mjs",
32
- "require": "./dist/rsc.js",
33
- "default": "./dist/rsc.js"
34
- },
35
30
  "./server": {
36
31
  "import": "./dist/server/index.mjs",
37
32
  "require": "./dist/server/index.js",
@@ -48,7 +43,6 @@
48
43
  "src",
49
44
  "README.md",
50
45
  "package.json",
51
- "rsc",
52
46
  "server",
53
47
  "shared",
54
48
  "!**/*.test.*"
@@ -63,16 +57,16 @@
63
57
  }
64
58
  },
65
59
  "peerDependencies": {
66
- "@tanstack/react-query": "^5.40.0",
67
- "@trpc/client": "11.0.0-alpha-tmp-app-router-example.364+4d068acf1",
68
- "@trpc/server": "11.0.0-alpha-tmp-app-router-example.364+4d068acf1",
60
+ "@tanstack/react-query": "^5.25.0",
61
+ "@trpc/client": "11.0.0-alpha-tmp-rethrow-next-errors.385+b1c8fe83e",
62
+ "@trpc/server": "11.0.0-alpha-tmp-rethrow-next-errors.385+b1c8fe83e",
69
63
  "react": ">=18.2.0",
70
64
  "react-dom": ">=18.2.0"
71
65
  },
72
66
  "devDependencies": {
73
- "@tanstack/react-query": "^5.40.0",
74
- "@trpc/client": "11.0.0-alpha-tmp-app-router-example.364+4d068acf1",
75
- "@trpc/server": "11.0.0-alpha-tmp-app-router-example.364+4d068acf1",
67
+ "@tanstack/react-query": "^5.25.0",
68
+ "@trpc/client": "11.0.0-alpha-tmp-rethrow-next-errors.385+b1c8fe83e",
69
+ "@trpc/server": "11.0.0-alpha-tmp-rethrow-next-errors.385+b1c8fe83e",
76
70
  "@types/express": "^4.17.17",
77
71
  "@types/node": "^20.10.0",
78
72
  "@types/react": "^18.3.1",
@@ -82,6 +76,7 @@
82
76
  "react": "^18.3.1",
83
77
  "react-dom": "^18.3.1",
84
78
  "rollup": "^4.9.5",
79
+ "tslib": "^2.5.0",
85
80
  "tsx": "^4.0.0",
86
81
  "zod": "^3.0.0"
87
82
  },
@@ -91,5 +86,5 @@
91
86
  "funding": [
92
87
  "https://trpc.io/sponsor"
93
88
  ],
94
- "gitHead": "4d068acf1d662ab7a081af1641ee5831f5f78d51"
89
+ "gitHead": "b1c8fe83e22693e12a3759c4f7b2b1174cd2cf8f"
95
90
  }
@@ -13,6 +13,7 @@ import {
13
13
  import type { TRPCClientErrorLike } from '@trpc/client';
14
14
  import { createTRPCUntypedClient } from '@trpc/client';
15
15
  import type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';
16
+ import { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';
16
17
  import * as React from 'react';
17
18
  import type { SSRState, TRPCContextState } from '../../internals/context';
18
19
  import { TRPCContext } from '../../internals/context';
@@ -170,7 +171,7 @@ export function createRootHooks<
170
171
  queryKey: queryKey as any,
171
172
  queryFn: isInputSkipToken
172
173
  ? input
173
- : (queryFunctionContext) => {
174
+ : async (queryFunctionContext) => {
174
175
  const actualOpts = {
175
176
  ...ssrOpts,
176
177
  trpc: {
@@ -181,7 +182,33 @@ export function createRootHooks<
181
182
  },
182
183
  };
183
184
 
184
- return client.query(...getClientArgs(queryKey, actualOpts));
185
+ const result = await client.query(
186
+ ...getClientArgs(queryKey, actualOpts),
187
+ );
188
+
189
+ if (isAsyncIterable(result)) {
190
+ const queryCache = queryClient.getQueryCache();
191
+
192
+ const query = queryCache.build(queryFunctionContext.queryKey, {
193
+ queryKey,
194
+ });
195
+
196
+ query.setState({
197
+ data: [],
198
+ status: 'success',
199
+ });
200
+
201
+ const aggregate: unknown[] = [];
202
+ for await (const value of result) {
203
+ aggregate.push(value);
204
+
205
+ query.setState({
206
+ data: [...aggregate],
207
+ });
208
+ }
209
+ return aggregate;
210
+ }
211
+ return result;
185
212
  },
186
213
  },
187
214
  queryClient,
@@ -160,11 +160,17 @@ export type CreateClient<TRouter extends AnyRouter> = (
160
160
  opts: CreateTRPCClientOptions<TRouter>,
161
161
  ) => TRPCUntypedClient<TRouter>;
162
162
 
163
+ type coerceAsyncIterableToArray<TValue> = TValue extends AsyncIterable<
164
+ infer $Inferred
165
+ >
166
+ ? $Inferred[]
167
+ : TValue;
168
+
163
169
  /**
164
170
  * @internal
165
171
  */
166
172
  export type UseTRPCQueryResult<TData, TError> = TRPCHookResult &
167
- UseQueryResult<TData, TError>;
173
+ UseQueryResult<coerceAsyncIterableToArray<TData>, TError>;
168
174
 
169
175
  /**
170
176
  * @internal
package/dist/rsc.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import { type QueryClient } from '@tanstack/react-query';
2
- import { type AnyRouter, type inferProcedureInput, type RouterRecord } from '@trpc/server/unstable-core-do-not-import';
3
- import type { AnyProcedure, inferProcedureOutput, RouterCaller, TypeError } from '@trpc/server/unstable-core-do-not-import';
4
- import * as React from 'react';
5
- type DecorateProcedure<TProcedure extends AnyProcedure> = (input: inferProcedureInput<TProcedure>) => Promise<inferProcedureOutput<TProcedure>>;
6
- type DecorateRouterRecord<TRecord extends RouterRecord> = {
7
- [TKey in keyof TRecord]: TRecord[TKey] extends AnyProcedure ? DecorateProcedure<TRecord[TKey]> : TRecord[TKey] extends RouterRecord ? DecorateRouterRecord<TRecord[TKey]> : never;
8
- };
9
- type Caller<TRouter extends AnyRouter> = ReturnType<RouterCaller<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>>;
10
- export declare function createHydrationHelpers<TRouter extends AnyRouter>(caller: AnyRouter extends TRouter ? TypeError<'Generic parameter missing in `createHydrationHelpers<HERE>`'> : Caller<TRouter>, getQueryClient: () => QueryClient): {
11
- trpc: DecorateRouterRecord<TRouter["_def"]["record"]>;
12
- HydrateClient: (props: {
13
- children: React.ReactNode;
14
- }) => React.JSX.Element;
15
- };
16
- export {};
17
- //# sourceMappingURL=rsc.d.ts.map
package/dist/rsc.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../src/rsc.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,SAAS,EACV,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,iBAAiB,CAAC,UAAU,SAAS,YAAY,IAAI,CACxD,KAAK,EAAE,mBAAmB,CAAC,UAAU,CAAC,KACnC,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;AAE/C,KAAK,oBAAoB,CAAC,OAAO,SAAS,YAAY,IAAI;KACvD,IAAI,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,YAAY,GACvD,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,SAAS,YAAY,GAClC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GACnC,KAAK;CACV,CAAC;AAEF,KAAK,MAAM,CAAC,OAAO,SAAS,SAAS,IAAI,UAAU,CACjD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAC9E,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,SAAS,EAC9D,MAAM,EAAE,SAAS,SAAS,OAAO,GAC7B,SAAS,CAAC,6DAA6D,CAAC,GACxE,MAAM,CAAC,OAAO,CAAC,EACnB,cAAc,EAAE,MAAM,WAAW;;2BAoBH;QAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;KAAE;EAW5D"}
package/dist/rsc.js DELETED
@@ -1,51 +0,0 @@
1
- 'use strict';
2
-
3
- var reactQuery = require('@tanstack/react-query');
4
- var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
5
- var React = require('react');
6
- var getQueryKey = require('./internals/getQueryKey.js');
7
-
8
- function _interopNamespaceDefault(e) {
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () { return e[k]; }
17
- });
18
- }
19
- });
20
- }
21
- n.default = e;
22
- return Object.freeze(n);
23
- }
24
-
25
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
-
27
- function createHydrationHelpers(caller, getQueryClient) {
28
- const wrappedProxy = unstableCoreDoNotImport.createRecursiveProxy(async ({ path , args })=>{
29
- const proc = path.reduce(// @ts-expect-error - ??
30
- (acc, key)=>acc[key], caller);
31
- const [input] = args;
32
- const promise = proc(input);
33
- void getQueryClient().prefetchQuery({
34
- queryKey: getQueryKey.getQueryKeyInternal(path, input, 'query'),
35
- queryFn: ()=>promise
36
- });
37
- return promise;
38
- });
39
- function HydrateClient(props) {
40
- const dehydratedState = reactQuery.dehydrate(getQueryClient()); // TODO: transform??
41
- return /*#__PURE__*/ React__namespace.createElement(reactQuery.HydrationBoundary, {
42
- state: dehydratedState
43
- }, props.children);
44
- }
45
- return {
46
- trpc: wrappedProxy,
47
- HydrateClient
48
- };
49
- }
50
-
51
- exports.createHydrationHelpers = createHydrationHelpers;
package/dist/rsc.mjs DELETED
@@ -1,30 +0,0 @@
1
- import { dehydrate, HydrationBoundary } from '@tanstack/react-query';
2
- import { createRecursiveProxy } from '@trpc/server/unstable-core-do-not-import';
3
- import * as React from 'react';
4
- import { getQueryKeyInternal } from './internals/getQueryKey.mjs';
5
-
6
- function createHydrationHelpers(caller, getQueryClient) {
7
- const wrappedProxy = createRecursiveProxy(async ({ path , args })=>{
8
- const proc = path.reduce(// @ts-expect-error - ??
9
- (acc, key)=>acc[key], caller);
10
- const [input] = args;
11
- const promise = proc(input);
12
- void getQueryClient().prefetchQuery({
13
- queryKey: getQueryKeyInternal(path, input, 'query'),
14
- queryFn: ()=>promise
15
- });
16
- return promise;
17
- });
18
- function HydrateClient(props) {
19
- const dehydratedState = dehydrate(getQueryClient()); // TODO: transform??
20
- return /*#__PURE__*/ React.createElement(HydrationBoundary, {
21
- state: dehydratedState
22
- }, props.children);
23
- }
24
- return {
25
- trpc: wrappedProxy,
26
- HydrateClient
27
- };
28
- }
29
-
30
- export { createHydrationHelpers };
package/rsc/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from '../dist/rsc';
package/rsc/index.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('../dist/rsc');
package/src/rsc.tsx DELETED
@@ -1,72 +0,0 @@
1
- import {
2
- dehydrate,
3
- HydrationBoundary,
4
- type QueryClient,
5
- } from '@tanstack/react-query';
6
- import {
7
- createRecursiveProxy,
8
- type AnyRouter,
9
- type inferProcedureInput,
10
- type RouterRecord,
11
- } from '@trpc/server/unstable-core-do-not-import';
12
- import type {
13
- AnyProcedure,
14
- inferProcedureOutput,
15
- RouterCaller,
16
- TypeError,
17
- } from '@trpc/server/unstable-core-do-not-import';
18
- import * as React from 'react';
19
- import { getQueryKeyInternal } from './internals/getQueryKey';
20
-
21
- type DecorateProcedure<TProcedure extends AnyProcedure> = (
22
- input: inferProcedureInput<TProcedure>,
23
- ) => Promise<inferProcedureOutput<TProcedure>>;
24
-
25
- type DecorateRouterRecord<TRecord extends RouterRecord> = {
26
- [TKey in keyof TRecord]: TRecord[TKey] extends AnyProcedure
27
- ? DecorateProcedure<TRecord[TKey]>
28
- : TRecord[TKey] extends RouterRecord
29
- ? DecorateRouterRecord<TRecord[TKey]>
30
- : never;
31
- };
32
-
33
- type Caller<TRouter extends AnyRouter> = ReturnType<
34
- RouterCaller<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>
35
- >;
36
-
37
- export function createHydrationHelpers<TRouter extends AnyRouter>(
38
- caller: AnyRouter extends TRouter
39
- ? TypeError<'Generic parameter missing in `createHydrationHelpers<HERE>`'>
40
- : Caller<TRouter>,
41
- getQueryClient: () => QueryClient,
42
- ) {
43
- const wrappedProxy = createRecursiveProxy(async ({ path, args }) => {
44
- const proc = path.reduce(
45
- // @ts-expect-error - ??
46
- (acc, key) => acc[key],
47
- caller,
48
- ) as unknown as DecorateProcedure<AnyProcedure>;
49
-
50
- const [input] = args;
51
- const promise = proc(input);
52
-
53
- void getQueryClient().prefetchQuery({
54
- queryKey: getQueryKeyInternal(path, input, 'query'),
55
- queryFn: () => promise,
56
- });
57
-
58
- return promise;
59
- }) as DecorateRouterRecord<TRouter['_def']['record']>;
60
-
61
- function HydrateClient(props: { children: React.ReactNode }) {
62
- const dehydratedState = dehydrate(getQueryClient()); // TODO: transform??
63
-
64
- return (
65
- <HydrationBoundary state={dehydratedState}>
66
- {props.children}
67
- </HydrationBoundary>
68
- );
69
- }
70
-
71
- return { trpc: wrappedProxy, HydrateClient };
72
- }