@trpc/react-query 10.0.0-rc.7 → 10.0.0-rc.8
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 +3 -3
- package/dist/{createHooksInternal-0438ab3f.mjs → createHooksInternal-2bef4843.mjs} +20 -20
- package/dist/{createHooksInternal-c6b8f183.js → createHooksInternal-d633d100.js} +20 -20
- package/dist/{getArrayQueryKey-5ab807a3.js → getArrayQueryKey-24927615.js} +13 -3
- package/dist/{getArrayQueryKey-e56d8d64.mjs → getArrayQueryKey-c6f6badf.mjs} +13 -3
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/internals/getArrayQueryKey.d.ts +5 -1
- package/dist/internals/getArrayQueryKey.d.ts.map +1 -1
- package/dist/shared/hooks/createHooksInternal.d.ts.map +1 -1
- package/dist/shared/index.js +2 -2
- package/dist/shared/index.mjs +2 -2
- package/dist/ssg/index.js +5 -5
- package/dist/ssg/index.mjs +5 -5
- package/dist/ssg/ssg.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/internals/getArrayQueryKey.test.ts +43 -8
- package/src/internals/getArrayQueryKey.ts +15 -3
- package/src/shared/hooks/createHooksInternal.tsx +29 -21
- package/src/ssg/ssg.ts +26 -20
package/README.md
CHANGED
|
@@ -22,13 +22,13 @@ Full documentation for `@trpc/react-query` can be found [here](https://trpc.io/d
|
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
# npm
|
|
25
|
-
npm install @trpc/react-query
|
|
25
|
+
npm install @trpc/react-query @tanstack/react-query
|
|
26
26
|
|
|
27
27
|
# Yarn
|
|
28
|
-
yarn add @trpc/react-query
|
|
28
|
+
yarn add @trpc/react-query @tanstack/react-query
|
|
29
29
|
|
|
30
30
|
# pnpm
|
|
31
|
-
pnpm add @trpc/react-query
|
|
31
|
+
pnpm add @trpc/react-query @tanstack/react-query
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## Basic Example
|
|
@@ -2,7 +2,7 @@ import { createRecursiveProxy, createFlatProxy } from '@trpc/server/shared';
|
|
|
2
2
|
import { createTRPCClientProxy, createTRPCClient } from '@trpc/client';
|
|
3
3
|
import { useQuery, useQueryClient, useMutation, hashQueryKey, useInfiniteQuery } from '@tanstack/react-query';
|
|
4
4
|
import React, { createContext, useState, useEffect, useCallback, useMemo, useRef } from 'react';
|
|
5
|
-
import { g as getArrayQueryKey } from './getArrayQueryKey-
|
|
5
|
+
import { g as getArrayQueryKey } from './getArrayQueryKey-c6f6badf.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* We treat `undefined` as an input the same as omitting an `input`
|
|
@@ -159,13 +159,13 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
159
159
|
ssrContext: ssrContext || null,
|
|
160
160
|
ssrState,
|
|
161
161
|
fetchQuery: useCallback((pathAndInput, opts)=>{
|
|
162
|
-
return queryClient.fetchQuery(getArrayQueryKey(pathAndInput), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
162
|
+
return queryClient.fetchQuery(getArrayQueryKey(pathAndInput, 'query'), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
163
163
|
}, [
|
|
164
164
|
client,
|
|
165
165
|
queryClient
|
|
166
166
|
]),
|
|
167
167
|
fetchInfiniteQuery: useCallback((pathAndInput, opts)=>{
|
|
168
|
-
return queryClient.fetchInfiniteQuery(getArrayQueryKey(pathAndInput), ({ pageParam })=>{
|
|
168
|
+
return queryClient.fetchInfiniteQuery(getArrayQueryKey(pathAndInput, 'infinite'), ({ pageParam })=>{
|
|
169
169
|
const [path, input] = pathAndInput;
|
|
170
170
|
const actualInput = {
|
|
171
171
|
...input,
|
|
@@ -181,13 +181,13 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
181
181
|
queryClient
|
|
182
182
|
]),
|
|
183
183
|
prefetchQuery: useCallback((pathAndInput, opts)=>{
|
|
184
|
-
return queryClient.prefetchQuery(getArrayQueryKey(pathAndInput), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
184
|
+
return queryClient.prefetchQuery(getArrayQueryKey(pathAndInput, 'query'), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
185
185
|
}, [
|
|
186
186
|
client,
|
|
187
187
|
queryClient
|
|
188
188
|
]),
|
|
189
189
|
prefetchInfiniteQuery: useCallback((pathAndInput, opts)=>{
|
|
190
|
-
return queryClient.prefetchInfiniteQuery(getArrayQueryKey(pathAndInput), ({ pageParam })=>{
|
|
190
|
+
return queryClient.prefetchInfiniteQuery(getArrayQueryKey(pathAndInput, 'infinite'), ({ pageParam })=>{
|
|
191
191
|
const [path, input] = pathAndInput;
|
|
192
192
|
const actualInput = {
|
|
193
193
|
...input,
|
|
@@ -204,42 +204,42 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
204
204
|
]),
|
|
205
205
|
invalidateQueries: useCallback((...args)=>{
|
|
206
206
|
const [queryKey, ...rest] = args;
|
|
207
|
-
return queryClient.invalidateQueries(getArrayQueryKey(queryKey), ...rest);
|
|
207
|
+
return queryClient.invalidateQueries(getArrayQueryKey(queryKey, 'any'), ...rest);
|
|
208
208
|
}, [
|
|
209
209
|
queryClient
|
|
210
210
|
]),
|
|
211
211
|
refetchQueries: useCallback((...args)=>{
|
|
212
212
|
const [queryKey, ...rest] = args;
|
|
213
|
-
return queryClient.refetchQueries(getArrayQueryKey(queryKey), ...rest);
|
|
213
|
+
return queryClient.refetchQueries(getArrayQueryKey(queryKey, 'any'), ...rest);
|
|
214
214
|
}, [
|
|
215
215
|
queryClient
|
|
216
216
|
]),
|
|
217
217
|
cancelQuery: useCallback((pathAndInput)=>{
|
|
218
|
-
return queryClient.cancelQueries(getArrayQueryKey(pathAndInput));
|
|
218
|
+
return queryClient.cancelQueries(getArrayQueryKey(pathAndInput, 'any'));
|
|
219
219
|
}, [
|
|
220
220
|
queryClient
|
|
221
221
|
]),
|
|
222
222
|
setQueryData: useCallback((...args)=>{
|
|
223
223
|
const [queryKey, ...rest] = args;
|
|
224
|
-
return queryClient.setQueryData(getArrayQueryKey(queryKey), ...rest);
|
|
224
|
+
return queryClient.setQueryData(getArrayQueryKey(queryKey, 'query'), ...rest);
|
|
225
225
|
}, [
|
|
226
226
|
queryClient
|
|
227
227
|
]),
|
|
228
228
|
getQueryData: useCallback((...args)=>{
|
|
229
229
|
const [queryKey, ...rest] = args;
|
|
230
|
-
return queryClient.getQueryData(getArrayQueryKey(queryKey), ...rest);
|
|
230
|
+
return queryClient.getQueryData(getArrayQueryKey(queryKey, 'query'), ...rest);
|
|
231
231
|
}, [
|
|
232
232
|
queryClient
|
|
233
233
|
]),
|
|
234
234
|
setInfiniteQueryData: useCallback((...args)=>{
|
|
235
235
|
const [queryKey, ...rest] = args;
|
|
236
|
-
return queryClient.setQueryData(getArrayQueryKey(queryKey), ...rest);
|
|
236
|
+
return queryClient.setQueryData(getArrayQueryKey(queryKey, 'infinite'), ...rest);
|
|
237
237
|
}, [
|
|
238
238
|
queryClient
|
|
239
239
|
]),
|
|
240
240
|
getInfiniteQueryData: useCallback((...args)=>{
|
|
241
241
|
const [queryKey, ...rest] = args;
|
|
242
|
-
return queryClient.getQueryData(getArrayQueryKey(queryKey), ...rest);
|
|
242
|
+
return queryClient.getQueryData(getArrayQueryKey(queryKey, 'infinite'), ...rest);
|
|
243
243
|
}, [
|
|
244
244
|
queryClient
|
|
245
245
|
])
|
|
@@ -252,22 +252,22 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
252
252
|
/**
|
|
253
253
|
* Hack to make sure errors return `status`='error` when doing SSR
|
|
254
254
|
* @link https://github.com/trpc/trpc/pull/1645
|
|
255
|
-
*/ function useSSRQueryOptionsIfNeeded(pathAndInput, opts) {
|
|
255
|
+
*/ function useSSRQueryOptionsIfNeeded(pathAndInput, type, opts) {
|
|
256
256
|
const { queryClient , ssrState } = useContext();
|
|
257
|
-
return ssrState && ssrState !== 'mounted' && queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput))?.state.status === 'error' ? {
|
|
257
|
+
return ssrState && ssrState !== 'mounted' && queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput, type))?.state.status === 'error' ? {
|
|
258
258
|
retryOnMount: false,
|
|
259
259
|
...opts
|
|
260
260
|
} : opts;
|
|
261
261
|
}
|
|
262
262
|
function useQuery$1(pathAndInput, opts) {
|
|
263
263
|
const { abortOnUnmount , client , ssrState , queryClient , prefetchQuery } = useContext();
|
|
264
|
-
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput))) {
|
|
264
|
+
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput, 'query'))) {
|
|
265
265
|
void prefetchQuery(pathAndInput, opts);
|
|
266
266
|
}
|
|
267
|
-
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, opts);
|
|
267
|
+
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, 'query', opts);
|
|
268
268
|
// request option should take priority over global
|
|
269
269
|
const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
|
|
270
|
-
const hook = useQuery(getArrayQueryKey(pathAndInput), (queryFunctionContext)=>{
|
|
270
|
+
const hook = useQuery(getArrayQueryKey(pathAndInput, 'query'), (queryFunctionContext)=>{
|
|
271
271
|
const actualOpts = {
|
|
272
272
|
...ssrOpts,
|
|
273
273
|
trpc: {
|
|
@@ -358,13 +358,13 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
358
358
|
function useInfiniteQuery$1(pathAndInput, opts) {
|
|
359
359
|
const [path, input] = pathAndInput;
|
|
360
360
|
const { client , ssrState , prefetchInfiniteQuery , queryClient , abortOnUnmount , } = useContext();
|
|
361
|
-
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput))) {
|
|
361
|
+
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput, 'infinite'))) {
|
|
362
362
|
void prefetchInfiniteQuery(pathAndInput, opts);
|
|
363
363
|
}
|
|
364
|
-
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, opts);
|
|
364
|
+
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, 'infinite', opts);
|
|
365
365
|
// request option should take priority over global
|
|
366
366
|
const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
|
|
367
|
-
const hook = useInfiniteQuery(getArrayQueryKey(pathAndInput), (queryFunctionContext)=>{
|
|
367
|
+
const hook = useInfiniteQuery(getArrayQueryKey(pathAndInput, 'infinite'), (queryFunctionContext)=>{
|
|
368
368
|
const actualOpts = {
|
|
369
369
|
...ssrOpts,
|
|
370
370
|
trpc: {
|
|
@@ -4,7 +4,7 @@ var shared = require('@trpc/server/shared');
|
|
|
4
4
|
var client = require('@trpc/client');
|
|
5
5
|
var reactQuery = require('@tanstack/react-query');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var getArrayQueryKey = require('./getArrayQueryKey-
|
|
7
|
+
var getArrayQueryKey = require('./getArrayQueryKey-24927615.js');
|
|
8
8
|
|
|
9
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
10
|
|
|
@@ -165,13 +165,13 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
165
165
|
ssrContext: ssrContext || null,
|
|
166
166
|
ssrState,
|
|
167
167
|
fetchQuery: React.useCallback((pathAndInput, opts)=>{
|
|
168
|
-
return queryClient.fetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
168
|
+
return queryClient.fetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'query'), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
169
169
|
}, [
|
|
170
170
|
client,
|
|
171
171
|
queryClient
|
|
172
172
|
]),
|
|
173
173
|
fetchInfiniteQuery: React.useCallback((pathAndInput, opts)=>{
|
|
174
|
-
return queryClient.fetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ({ pageParam })=>{
|
|
174
|
+
return queryClient.fetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'infinite'), ({ pageParam })=>{
|
|
175
175
|
const [path, input] = pathAndInput;
|
|
176
176
|
const actualInput = {
|
|
177
177
|
...input,
|
|
@@ -187,13 +187,13 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
187
187
|
queryClient
|
|
188
188
|
]),
|
|
189
189
|
prefetchQuery: React.useCallback((pathAndInput, opts)=>{
|
|
190
|
-
return queryClient.prefetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
190
|
+
return queryClient.prefetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'query'), ()=>client.query(...getClientArgs(pathAndInput, opts)), opts);
|
|
191
191
|
}, [
|
|
192
192
|
client,
|
|
193
193
|
queryClient
|
|
194
194
|
]),
|
|
195
195
|
prefetchInfiniteQuery: React.useCallback((pathAndInput, opts)=>{
|
|
196
|
-
return queryClient.prefetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ({ pageParam })=>{
|
|
196
|
+
return queryClient.prefetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'infinite'), ({ pageParam })=>{
|
|
197
197
|
const [path, input] = pathAndInput;
|
|
198
198
|
const actualInput = {
|
|
199
199
|
...input,
|
|
@@ -210,42 +210,42 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
210
210
|
]),
|
|
211
211
|
invalidateQueries: React.useCallback((...args)=>{
|
|
212
212
|
const [queryKey, ...rest] = args;
|
|
213
|
-
return queryClient.invalidateQueries(getArrayQueryKey.getArrayQueryKey(queryKey), ...rest);
|
|
213
|
+
return queryClient.invalidateQueries(getArrayQueryKey.getArrayQueryKey(queryKey, 'any'), ...rest);
|
|
214
214
|
}, [
|
|
215
215
|
queryClient
|
|
216
216
|
]),
|
|
217
217
|
refetchQueries: React.useCallback((...args)=>{
|
|
218
218
|
const [queryKey, ...rest] = args;
|
|
219
|
-
return queryClient.refetchQueries(getArrayQueryKey.getArrayQueryKey(queryKey), ...rest);
|
|
219
|
+
return queryClient.refetchQueries(getArrayQueryKey.getArrayQueryKey(queryKey, 'any'), ...rest);
|
|
220
220
|
}, [
|
|
221
221
|
queryClient
|
|
222
222
|
]),
|
|
223
223
|
cancelQuery: React.useCallback((pathAndInput)=>{
|
|
224
|
-
return queryClient.cancelQueries(getArrayQueryKey.getArrayQueryKey(pathAndInput));
|
|
224
|
+
return queryClient.cancelQueries(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'any'));
|
|
225
225
|
}, [
|
|
226
226
|
queryClient
|
|
227
227
|
]),
|
|
228
228
|
setQueryData: React.useCallback((...args)=>{
|
|
229
229
|
const [queryKey, ...rest] = args;
|
|
230
|
-
return queryClient.setQueryData(getArrayQueryKey.getArrayQueryKey(queryKey), ...rest);
|
|
230
|
+
return queryClient.setQueryData(getArrayQueryKey.getArrayQueryKey(queryKey, 'query'), ...rest);
|
|
231
231
|
}, [
|
|
232
232
|
queryClient
|
|
233
233
|
]),
|
|
234
234
|
getQueryData: React.useCallback((...args)=>{
|
|
235
235
|
const [queryKey, ...rest] = args;
|
|
236
|
-
return queryClient.getQueryData(getArrayQueryKey.getArrayQueryKey(queryKey), ...rest);
|
|
236
|
+
return queryClient.getQueryData(getArrayQueryKey.getArrayQueryKey(queryKey, 'query'), ...rest);
|
|
237
237
|
}, [
|
|
238
238
|
queryClient
|
|
239
239
|
]),
|
|
240
240
|
setInfiniteQueryData: React.useCallback((...args)=>{
|
|
241
241
|
const [queryKey, ...rest] = args;
|
|
242
|
-
return queryClient.setQueryData(getArrayQueryKey.getArrayQueryKey(queryKey), ...rest);
|
|
242
|
+
return queryClient.setQueryData(getArrayQueryKey.getArrayQueryKey(queryKey, 'infinite'), ...rest);
|
|
243
243
|
}, [
|
|
244
244
|
queryClient
|
|
245
245
|
]),
|
|
246
246
|
getInfiniteQueryData: React.useCallback((...args)=>{
|
|
247
247
|
const [queryKey, ...rest] = args;
|
|
248
|
-
return queryClient.getQueryData(getArrayQueryKey.getArrayQueryKey(queryKey), ...rest);
|
|
248
|
+
return queryClient.getQueryData(getArrayQueryKey.getArrayQueryKey(queryKey, 'infinite'), ...rest);
|
|
249
249
|
}, [
|
|
250
250
|
queryClient
|
|
251
251
|
])
|
|
@@ -258,22 +258,22 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
258
258
|
/**
|
|
259
259
|
* Hack to make sure errors return `status`='error` when doing SSR
|
|
260
260
|
* @link https://github.com/trpc/trpc/pull/1645
|
|
261
|
-
*/ function useSSRQueryOptionsIfNeeded(pathAndInput, opts) {
|
|
261
|
+
*/ function useSSRQueryOptionsIfNeeded(pathAndInput, type, opts) {
|
|
262
262
|
const { queryClient , ssrState } = useContext();
|
|
263
|
-
return ssrState && ssrState !== 'mounted' && queryClient.getQueryCache().find(getArrayQueryKey.getArrayQueryKey(pathAndInput))?.state.status === 'error' ? {
|
|
263
|
+
return ssrState && ssrState !== 'mounted' && queryClient.getQueryCache().find(getArrayQueryKey.getArrayQueryKey(pathAndInput, type))?.state.status === 'error' ? {
|
|
264
264
|
retryOnMount: false,
|
|
265
265
|
...opts
|
|
266
266
|
} : opts;
|
|
267
267
|
}
|
|
268
268
|
function useQuery(pathAndInput, opts) {
|
|
269
269
|
const { abortOnUnmount , client , ssrState , queryClient , prefetchQuery } = useContext();
|
|
270
|
-
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey.getArrayQueryKey(pathAndInput))) {
|
|
270
|
+
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'query'))) {
|
|
271
271
|
void prefetchQuery(pathAndInput, opts);
|
|
272
272
|
}
|
|
273
|
-
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, opts);
|
|
273
|
+
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, 'query', opts);
|
|
274
274
|
// request option should take priority over global
|
|
275
275
|
const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
|
|
276
|
-
const hook = reactQuery.useQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), (queryFunctionContext)=>{
|
|
276
|
+
const hook = reactQuery.useQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'query'), (queryFunctionContext)=>{
|
|
277
277
|
const actualOpts = {
|
|
278
278
|
...ssrOpts,
|
|
279
279
|
trpc: {
|
|
@@ -364,13 +364,13 @@ function getClientArgs(pathAndInput, opts) {
|
|
|
364
364
|
function useInfiniteQuery(pathAndInput, opts) {
|
|
365
365
|
const [path, input] = pathAndInput;
|
|
366
366
|
const { client , ssrState , prefetchInfiniteQuery , queryClient , abortOnUnmount , } = useContext();
|
|
367
|
-
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey.getArrayQueryKey(pathAndInput))) {
|
|
367
|
+
if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && opts?.enabled !== false && !queryClient.getQueryCache().find(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'infinite'))) {
|
|
368
368
|
void prefetchInfiniteQuery(pathAndInput, opts);
|
|
369
369
|
}
|
|
370
|
-
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, opts);
|
|
370
|
+
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, 'infinite', opts);
|
|
371
371
|
// request option should take priority over global
|
|
372
372
|
const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
|
|
373
|
-
const hook = reactQuery.useInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), (queryFunctionContext)=>{
|
|
373
|
+
const hook = reactQuery.useInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'infinite'), (queryFunctionContext)=>{
|
|
374
374
|
const actualOpts = {
|
|
375
375
|
...ssrOpts,
|
|
376
376
|
trpc: {
|
|
@@ -6,15 +6,25 @@
|
|
|
6
6
|
* storing in tanstack query. This function converts from the `.` separated
|
|
7
7
|
* path passed around internally by both the legacy and proxy implementation.
|
|
8
8
|
* https://github.com/trpc/trpc/issues/2611
|
|
9
|
-
*/ function getArrayQueryKey(queryKey) {
|
|
9
|
+
*/ function getArrayQueryKey(queryKey, type) {
|
|
10
10
|
const queryKeyArrayed = Array.isArray(queryKey) ? queryKey : [
|
|
11
11
|
queryKey
|
|
12
12
|
];
|
|
13
|
-
const [path,
|
|
13
|
+
const [path, input] = queryKeyArrayed;
|
|
14
14
|
const arrayPath = typeof path !== 'string' || path === '' ? [] : path.split('.');
|
|
15
|
+
// Construct a query key that is easy to destructure and flexible for
|
|
16
|
+
// partial selecting etc.
|
|
17
|
+
// https://github.com/trpc/trpc/issues/3128
|
|
15
18
|
return [
|
|
16
19
|
arrayPath,
|
|
17
|
-
|
|
20
|
+
{
|
|
21
|
+
...input && {
|
|
22
|
+
input: input
|
|
23
|
+
},
|
|
24
|
+
...type && type !== 'any' && {
|
|
25
|
+
type: type
|
|
26
|
+
}
|
|
27
|
+
}
|
|
18
28
|
];
|
|
19
29
|
}
|
|
20
30
|
|
|
@@ -4,15 +4,25 @@
|
|
|
4
4
|
* storing in tanstack query. This function converts from the `.` separated
|
|
5
5
|
* path passed around internally by both the legacy and proxy implementation.
|
|
6
6
|
* https://github.com/trpc/trpc/issues/2611
|
|
7
|
-
*/ function getArrayQueryKey(queryKey) {
|
|
7
|
+
*/ function getArrayQueryKey(queryKey, type) {
|
|
8
8
|
const queryKeyArrayed = Array.isArray(queryKey) ? queryKey : [
|
|
9
9
|
queryKey
|
|
10
10
|
];
|
|
11
|
-
const [path,
|
|
11
|
+
const [path, input] = queryKeyArrayed;
|
|
12
12
|
const arrayPath = typeof path !== 'string' || path === '' ? [] : path.split('.');
|
|
13
|
+
// Construct a query key that is easy to destructure and flexible for
|
|
14
|
+
// partial selecting etc.
|
|
15
|
+
// https://github.com/trpc/trpc/issues/3128
|
|
13
16
|
return [
|
|
14
17
|
arrayPath,
|
|
15
|
-
|
|
18
|
+
{
|
|
19
|
+
...input && {
|
|
20
|
+
input: input
|
|
21
|
+
},
|
|
22
|
+
...type && type !== 'any' && {
|
|
23
|
+
type: type
|
|
24
|
+
}
|
|
25
|
+
}
|
|
16
26
|
];
|
|
17
27
|
}
|
|
18
28
|
|
package/dist/index.js
CHANGED
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var client = require('@trpc/client');
|
|
6
6
|
var shared = require('@trpc/server/shared');
|
|
7
7
|
var React = require('react');
|
|
8
|
-
var createHooksInternal = require('./createHooksInternal-
|
|
8
|
+
var createHooksInternal = require('./createHooksInternal-d633d100.js');
|
|
9
9
|
require('@tanstack/react-query');
|
|
10
|
-
require('./getArrayQueryKey-
|
|
10
|
+
require('./getArrayQueryKey-24927615.js');
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @internal
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * from '@trpc/client';
|
|
2
2
|
import { createFlatProxy } from '@trpc/server/shared';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
|
-
import { c as createHooksInternal, a as createReactQueryUtilsProxy, b as createReactProxyDecoration } from './createHooksInternal-
|
|
4
|
+
import { c as createHooksInternal, a as createReactQueryUtilsProxy, b as createReactProxyDecoration } from './createHooksInternal-2bef4843.mjs';
|
|
5
5
|
import '@tanstack/react-query';
|
|
6
|
-
import './getArrayQueryKey-
|
|
6
|
+
import './getArrayQueryKey-c6f6badf.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @internal
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare type QueryType = 'query' | 'infinite' | 'any';
|
|
1
2
|
/**
|
|
2
3
|
* To allow easy interactions with groups of related queries, such as
|
|
3
4
|
* invalidating all queries of a router, we use an array as the path when
|
|
@@ -5,5 +6,8 @@
|
|
|
5
6
|
* path passed around internally by both the legacy and proxy implementation.
|
|
6
7
|
* https://github.com/trpc/trpc/issues/2611
|
|
7
8
|
*/
|
|
8
|
-
export declare function getArrayQueryKey(queryKey: string | [string] | [string, ...unknown[]] | unknown[]): [string[]
|
|
9
|
+
export declare function getArrayQueryKey(queryKey: string | [string] | [string, ...unknown[]] | unknown[], type: QueryType): [string[], {
|
|
10
|
+
input?: unknown;
|
|
11
|
+
type?: Exclude<QueryType, 'any'>;
|
|
12
|
+
}];
|
|
9
13
|
//# sourceMappingURL=getArrayQueryKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getArrayQueryKey.d.ts","sourceRoot":"","sources":["../../src/internals/getArrayQueryKey.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getArrayQueryKey.d.ts","sourceRoot":"","sources":["../../src/internals/getArrayQueryKey.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,EAChE,IAAI,EAAE,SAAS,GACd,CAAC,MAAM,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;CAAE,CAAC,CAiBnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHooksInternal.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/createHooksInternal.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createHooksInternal.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/createHooksInternal.tsx"],"names":[],"mappings":"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"}
|
package/dist/shared/index.js
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var createHooksInternal = require('../createHooksInternal-
|
|
5
|
+
var createHooksInternal = require('../createHooksInternal-d633d100.js');
|
|
6
6
|
var queryClient = require('../queryClient-358a9a75.js');
|
|
7
7
|
require('@trpc/server/shared');
|
|
8
8
|
require('@trpc/client');
|
|
9
9
|
require('@tanstack/react-query');
|
|
10
10
|
require('react');
|
|
11
|
-
require('../getArrayQueryKey-
|
|
11
|
+
require('../getArrayQueryKey-24927615.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
package/dist/shared/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { c as createHooksInternal, b as createReactProxyDecoration, a as createReactQueryUtilsProxy } from '../createHooksInternal-
|
|
1
|
+
export { c as createHooksInternal, b as createReactProxyDecoration, a as createReactQueryUtilsProxy } from '../createHooksInternal-2bef4843.mjs';
|
|
2
2
|
export { g as getQueryClient } from '../queryClient-4d766c0c.mjs';
|
|
3
3
|
import '@trpc/server/shared';
|
|
4
4
|
import '@trpc/client';
|
|
5
5
|
import '@tanstack/react-query';
|
|
6
6
|
import 'react';
|
|
7
|
-
import '../getArrayQueryKey-
|
|
7
|
+
import '../getArrayQueryKey-c6f6badf.mjs';
|
package/dist/ssg/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var reactQuery = require('@tanstack/react-query');
|
|
6
6
|
var server = require('@trpc/server');
|
|
7
|
-
var getArrayQueryKey = require('../getArrayQueryKey-
|
|
7
|
+
var getArrayQueryKey = require('../getArrayQueryKey-24927615.js');
|
|
8
8
|
var shared = require('@trpc/server/shared');
|
|
9
9
|
require('@trpc/client');
|
|
10
10
|
require('react');
|
|
@@ -18,7 +18,7 @@ var queryClient = require('../queryClient-358a9a75.js');
|
|
|
18
18
|
const queryClient$1 = queryClient.getQueryClient(opts);
|
|
19
19
|
const serialize = transformer ? ('input' in transformer ? transformer.input : transformer).serialize : (obj)=>obj;
|
|
20
20
|
const prefetchQuery = async (...pathAndInput)=>{
|
|
21
|
-
return queryClient$1.prefetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ()=>{
|
|
21
|
+
return queryClient$1.prefetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'query'), ()=>{
|
|
22
22
|
return server.callProcedure({
|
|
23
23
|
procedures: router._def.procedures,
|
|
24
24
|
path: pathAndInput[0],
|
|
@@ -29,7 +29,7 @@ var queryClient = require('../queryClient-358a9a75.js');
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
const prefetchInfiniteQuery = async (...pathAndInput)=>{
|
|
32
|
-
return queryClient$1.prefetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ()=>{
|
|
32
|
+
return queryClient$1.prefetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'infinite'), ()=>{
|
|
33
33
|
return server.callProcedure({
|
|
34
34
|
procedures: router._def.procedures,
|
|
35
35
|
path: pathAndInput[0],
|
|
@@ -40,7 +40,7 @@ var queryClient = require('../queryClient-358a9a75.js');
|
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
42
|
const fetchQuery = async (...pathAndInput)=>{
|
|
43
|
-
return queryClient$1.fetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ()=>{
|
|
43
|
+
return queryClient$1.fetchQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'query'), ()=>{
|
|
44
44
|
return server.callProcedure({
|
|
45
45
|
procedures: router._def.procedures,
|
|
46
46
|
path: pathAndInput[0],
|
|
@@ -51,7 +51,7 @@ var queryClient = require('../queryClient-358a9a75.js');
|
|
|
51
51
|
});
|
|
52
52
|
};
|
|
53
53
|
const fetchInfiniteQuery = async (...pathAndInput)=>{
|
|
54
|
-
return queryClient$1.fetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput), ()=>{
|
|
54
|
+
return queryClient$1.fetchInfiniteQuery(getArrayQueryKey.getArrayQueryKey(pathAndInput, 'infinite'), ()=>{
|
|
55
55
|
return server.callProcedure({
|
|
56
56
|
procedures: router._def.procedures,
|
|
57
57
|
path: pathAndInput[0],
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { dehydrate } from '@tanstack/react-query';
|
|
2
2
|
import { callProcedure } from '@trpc/server';
|
|
3
|
-
import { g as getArrayQueryKey } from '../getArrayQueryKey-
|
|
3
|
+
import { g as getArrayQueryKey } from '../getArrayQueryKey-c6f6badf.mjs';
|
|
4
4
|
import { createFlatProxy, createRecursiveProxy } from '@trpc/server/shared';
|
|
5
5
|
import '@trpc/client';
|
|
6
6
|
import 'react';
|
|
@@ -14,7 +14,7 @@ import { g as getQueryClient } from '../queryClient-4d766c0c.mjs';
|
|
|
14
14
|
const queryClient = getQueryClient(opts);
|
|
15
15
|
const serialize = transformer ? ('input' in transformer ? transformer.input : transformer).serialize : (obj)=>obj;
|
|
16
16
|
const prefetchQuery = async (...pathAndInput)=>{
|
|
17
|
-
return queryClient.prefetchQuery(getArrayQueryKey(pathAndInput), ()=>{
|
|
17
|
+
return queryClient.prefetchQuery(getArrayQueryKey(pathAndInput, 'query'), ()=>{
|
|
18
18
|
return callProcedure({
|
|
19
19
|
procedures: router._def.procedures,
|
|
20
20
|
path: pathAndInput[0],
|
|
@@ -25,7 +25,7 @@ import { g as getQueryClient } from '../queryClient-4d766c0c.mjs';
|
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
27
|
const prefetchInfiniteQuery = async (...pathAndInput)=>{
|
|
28
|
-
return queryClient.prefetchInfiniteQuery(getArrayQueryKey(pathAndInput), ()=>{
|
|
28
|
+
return queryClient.prefetchInfiniteQuery(getArrayQueryKey(pathAndInput, 'infinite'), ()=>{
|
|
29
29
|
return callProcedure({
|
|
30
30
|
procedures: router._def.procedures,
|
|
31
31
|
path: pathAndInput[0],
|
|
@@ -36,7 +36,7 @@ import { g as getQueryClient } from '../queryClient-4d766c0c.mjs';
|
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
38
|
const fetchQuery = async (...pathAndInput)=>{
|
|
39
|
-
return queryClient.fetchQuery(getArrayQueryKey(pathAndInput), ()=>{
|
|
39
|
+
return queryClient.fetchQuery(getArrayQueryKey(pathAndInput, 'query'), ()=>{
|
|
40
40
|
return callProcedure({
|
|
41
41
|
procedures: router._def.procedures,
|
|
42
42
|
path: pathAndInput[0],
|
|
@@ -47,7 +47,7 @@ import { g as getQueryClient } from '../queryClient-4d766c0c.mjs';
|
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
49
|
const fetchInfiniteQuery = async (...pathAndInput)=>{
|
|
50
|
-
return queryClient.fetchInfiniteQuery(getArrayQueryKey(pathAndInput), ()=>{
|
|
50
|
+
return queryClient.fetchInfiniteQuery(getArrayQueryKey(pathAndInput, 'infinite'), ()=>{
|
|
51
51
|
return callProcedure({
|
|
52
52
|
procedures: router._def.procedures,
|
|
53
53
|
path: pathAndInput[0],
|
package/dist/ssg/ssg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssg.d.ts","sourceRoot":"","sources":["../../src/ssg/ssg.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,SAAS,EACT,4BAA4B,EAG5B,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gCAAgC,EAAkB,MAAM,WAAW,CAAC;AAE7E,UAAU,2BAA2B,CAAC,OAAO,SAAS,SAAS;IAC7D,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,4BAA4B,CAAC;CAC5C;AACD,oBAAY,uBAAuB,CAAC,OAAO,SAAS,SAAS,IAC3D,2BAA2B,CAAC,OAAO,CAAC,GAAG,gCAAgC,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,SAAS,EACxD,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"ssg.d.ts","sourceRoot":"","sources":["../../src/ssg/ssg.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,SAAS,EACT,4BAA4B,EAG5B,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gCAAgC,EAAkB,MAAM,WAAW,CAAC;AAE7E,UAAU,2BAA2B,CAAC,OAAO,SAAS,SAAS;IAC7D,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,4BAA4B,CAAC;CAC5C;AACD,oBAAY,uBAAuB,CAAC,OAAO,SAAS,SAAS,IAC3D,2BAA2B,CAAC,OAAO,CAAC,GAAG,gCAAgC,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,SAAS,EACxD,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC;;;;;uBA6F9B,gBAAgB,KAMrB,eAAe;;EAcnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/react-query",
|
|
3
|
-
"version": "10.0.0-rc.
|
|
3
|
+
"version": "10.0.0-rc.8",
|
|
4
4
|
"description": "tRPC React lib",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -54,15 +54,15 @@
|
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@tanstack/react-query": "^4.3.8",
|
|
57
|
-
"@trpc/client": "10.0.0-rc.
|
|
58
|
-
"@trpc/server": "10.0.0-rc.
|
|
57
|
+
"@trpc/client": "10.0.0-rc.8",
|
|
58
|
+
"@trpc/server": "10.0.0-rc.8",
|
|
59
59
|
"react": ">=16.8.0",
|
|
60
60
|
"react-dom": ">=16.8.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@tanstack/react-query": "^4.3.8",
|
|
64
|
-
"@trpc/client": "10.0.0-rc.
|
|
65
|
-
"@trpc/server": "10.0.0-rc.
|
|
64
|
+
"@trpc/client": "10.0.0-rc.8",
|
|
65
|
+
"@trpc/server": "10.0.0-rc.8",
|
|
66
66
|
"@types/express": "^4.17.12",
|
|
67
67
|
"@types/node": "^18.7.20",
|
|
68
68
|
"express": "^4.17.1",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"publishConfig": {
|
|
77
77
|
"access": "public"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "5b8ff0d8d49251aa8c287e9d68641810cd9964e2"
|
|
80
80
|
}
|
|
@@ -1,41 +1,76 @@
|
|
|
1
1
|
import { getArrayQueryKey } from './getArrayQueryKey';
|
|
2
2
|
|
|
3
3
|
test('getArrayQueryKey', () => {
|
|
4
|
-
expect(getArrayQueryKey('foo')).toMatchInlineSnapshot(`
|
|
4
|
+
expect(getArrayQueryKey('foo', 'query')).toMatchInlineSnapshot(`
|
|
5
5
|
Array [
|
|
6
6
|
Array [
|
|
7
7
|
"foo",
|
|
8
8
|
],
|
|
9
|
+
Object {
|
|
10
|
+
"type": "query",
|
|
11
|
+
},
|
|
9
12
|
]
|
|
10
13
|
`);
|
|
11
|
-
expect(getArrayQueryKey(['foo'])).toMatchInlineSnapshot(`
|
|
14
|
+
expect(getArrayQueryKey(['foo'], 'query')).toMatchInlineSnapshot(`
|
|
12
15
|
Array [
|
|
13
16
|
Array [
|
|
14
17
|
"foo",
|
|
15
18
|
],
|
|
19
|
+
Object {
|
|
20
|
+
"type": "query",
|
|
21
|
+
},
|
|
16
22
|
]
|
|
17
23
|
`);
|
|
18
|
-
expect(getArrayQueryKey(
|
|
24
|
+
expect(getArrayQueryKey('foo', 'infinite')).toMatchInlineSnapshot(`
|
|
19
25
|
Array [
|
|
20
26
|
Array [
|
|
21
27
|
"foo",
|
|
22
28
|
],
|
|
23
|
-
|
|
29
|
+
Object {
|
|
30
|
+
"type": "infinite",
|
|
31
|
+
},
|
|
24
32
|
]
|
|
25
33
|
`);
|
|
26
|
-
expect(getArrayQueryKey([
|
|
34
|
+
expect(getArrayQueryKey(['foo'], 'infinite')).toMatchInlineSnapshot(`
|
|
35
|
+
Array [
|
|
36
|
+
Array [
|
|
37
|
+
"foo",
|
|
38
|
+
],
|
|
39
|
+
Object {
|
|
40
|
+
"type": "infinite",
|
|
41
|
+
},
|
|
42
|
+
]
|
|
43
|
+
`);
|
|
44
|
+
expect(getArrayQueryKey(['foo', 'bar'], 'query')).toMatchInlineSnapshot(`
|
|
45
|
+
Array [
|
|
46
|
+
Array [
|
|
47
|
+
"foo",
|
|
48
|
+
],
|
|
49
|
+
Object {
|
|
50
|
+
"input": "bar",
|
|
51
|
+
"type": "query",
|
|
52
|
+
},
|
|
53
|
+
]
|
|
54
|
+
`);
|
|
55
|
+
expect(getArrayQueryKey([undefined, 'bar'], 'query')).toMatchInlineSnapshot(`
|
|
27
56
|
Array [
|
|
28
57
|
Array [],
|
|
29
|
-
|
|
58
|
+
Object {
|
|
59
|
+
"input": "bar",
|
|
60
|
+
"type": "query",
|
|
61
|
+
},
|
|
30
62
|
]
|
|
31
63
|
`);
|
|
32
|
-
expect(getArrayQueryKey(['post.byId', '1'])).toMatchInlineSnapshot(`
|
|
64
|
+
expect(getArrayQueryKey(['post.byId', '1'], 'query')).toMatchInlineSnapshot(`
|
|
33
65
|
Array [
|
|
34
66
|
Array [
|
|
35
67
|
"post",
|
|
36
68
|
"byId",
|
|
37
69
|
],
|
|
38
|
-
|
|
70
|
+
Object {
|
|
71
|
+
"input": "1",
|
|
72
|
+
"type": "query",
|
|
73
|
+
},
|
|
39
74
|
]
|
|
40
75
|
`);
|
|
41
76
|
});
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export type QueryType = 'query' | 'infinite' | 'any';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* To allow easy interactions with groups of related queries, such as
|
|
3
5
|
* invalidating all queries of a router, we use an array as the path when
|
|
@@ -7,12 +9,22 @@
|
|
|
7
9
|
*/
|
|
8
10
|
export function getArrayQueryKey(
|
|
9
11
|
queryKey: string | [string] | [string, ...unknown[]] | unknown[],
|
|
10
|
-
|
|
12
|
+
type: QueryType,
|
|
13
|
+
): [string[], { input?: unknown; type?: Exclude<QueryType, 'any'> }] {
|
|
11
14
|
const queryKeyArrayed = Array.isArray(queryKey) ? queryKey : [queryKey];
|
|
12
|
-
const [path,
|
|
15
|
+
const [path, input] = queryKeyArrayed;
|
|
13
16
|
|
|
14
17
|
const arrayPath =
|
|
15
18
|
typeof path !== 'string' || path === '' ? [] : path.split('.');
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
// Construct a query key that is easy to destructure and flexible for
|
|
21
|
+
// partial selecting etc.
|
|
22
|
+
// https://github.com/trpc/trpc/issues/3128
|
|
23
|
+
return [
|
|
24
|
+
arrayPath,
|
|
25
|
+
{
|
|
26
|
+
...(input && { input: input }),
|
|
27
|
+
...(type && type !== 'any' && { type: type }),
|
|
28
|
+
},
|
|
29
|
+
];
|
|
18
30
|
}
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
TRPCContextProps,
|
|
48
48
|
TRPCContextState,
|
|
49
49
|
} from '../../internals/context';
|
|
50
|
-
import { getArrayQueryKey } from '../../internals/getArrayQueryKey';
|
|
50
|
+
import { QueryType, getArrayQueryKey } from '../../internals/getArrayQueryKey';
|
|
51
51
|
import { CreateTRPCReactOptions, UseMutationOverride } from '../types';
|
|
52
52
|
|
|
53
53
|
export type OutputWithCursor<TData, TCursor = any> = {
|
|
@@ -246,7 +246,7 @@ export function createHooksInternal<
|
|
|
246
246
|
fetchQuery: useCallback(
|
|
247
247
|
(pathAndInput, opts) => {
|
|
248
248
|
return queryClient.fetchQuery(
|
|
249
|
-
getArrayQueryKey(pathAndInput),
|
|
249
|
+
getArrayQueryKey(pathAndInput, 'query'),
|
|
250
250
|
() =>
|
|
251
251
|
(client as any).query(...getClientArgs(pathAndInput, opts)),
|
|
252
252
|
opts,
|
|
@@ -257,7 +257,7 @@ export function createHooksInternal<
|
|
|
257
257
|
fetchInfiniteQuery: useCallback(
|
|
258
258
|
(pathAndInput, opts) => {
|
|
259
259
|
return queryClient.fetchInfiniteQuery(
|
|
260
|
-
getArrayQueryKey(pathAndInput),
|
|
260
|
+
getArrayQueryKey(pathAndInput, 'infinite'),
|
|
261
261
|
({ pageParam }) => {
|
|
262
262
|
const [path, input] = pathAndInput;
|
|
263
263
|
const actualInput = { ...(input as any), cursor: pageParam };
|
|
@@ -273,7 +273,7 @@ export function createHooksInternal<
|
|
|
273
273
|
prefetchQuery: useCallback(
|
|
274
274
|
(pathAndInput, opts) => {
|
|
275
275
|
return queryClient.prefetchQuery(
|
|
276
|
-
getArrayQueryKey(pathAndInput),
|
|
276
|
+
getArrayQueryKey(pathAndInput, 'query'),
|
|
277
277
|
() =>
|
|
278
278
|
(client as any).query(...getClientArgs(pathAndInput, opts)),
|
|
279
279
|
opts,
|
|
@@ -284,7 +284,7 @@ export function createHooksInternal<
|
|
|
284
284
|
prefetchInfiniteQuery: useCallback(
|
|
285
285
|
(pathAndInput, opts) => {
|
|
286
286
|
return queryClient.prefetchInfiniteQuery(
|
|
287
|
-
getArrayQueryKey(pathAndInput),
|
|
287
|
+
getArrayQueryKey(pathAndInput, 'infinite'),
|
|
288
288
|
({ pageParam }) => {
|
|
289
289
|
const [path, input] = pathAndInput;
|
|
290
290
|
const actualInput = { ...(input as any), cursor: pageParam };
|
|
@@ -301,7 +301,7 @@ export function createHooksInternal<
|
|
|
301
301
|
(...args: any[]) => {
|
|
302
302
|
const [queryKey, ...rest] = args;
|
|
303
303
|
return queryClient.invalidateQueries(
|
|
304
|
-
getArrayQueryKey(queryKey),
|
|
304
|
+
getArrayQueryKey(queryKey, 'any'),
|
|
305
305
|
...rest,
|
|
306
306
|
);
|
|
307
307
|
},
|
|
@@ -312,7 +312,7 @@ export function createHooksInternal<
|
|
|
312
312
|
const [queryKey, ...rest] = args;
|
|
313
313
|
|
|
314
314
|
return queryClient.refetchQueries(
|
|
315
|
-
getArrayQueryKey(queryKey),
|
|
315
|
+
getArrayQueryKey(queryKey, 'any'),
|
|
316
316
|
...rest,
|
|
317
317
|
);
|
|
318
318
|
},
|
|
@@ -320,7 +320,9 @@ export function createHooksInternal<
|
|
|
320
320
|
),
|
|
321
321
|
cancelQuery: useCallback(
|
|
322
322
|
(pathAndInput) => {
|
|
323
|
-
return queryClient.cancelQueries(
|
|
323
|
+
return queryClient.cancelQueries(
|
|
324
|
+
getArrayQueryKey(pathAndInput, 'any'),
|
|
325
|
+
);
|
|
324
326
|
},
|
|
325
327
|
[queryClient],
|
|
326
328
|
),
|
|
@@ -328,7 +330,7 @@ export function createHooksInternal<
|
|
|
328
330
|
(...args) => {
|
|
329
331
|
const [queryKey, ...rest] = args;
|
|
330
332
|
return queryClient.setQueryData(
|
|
331
|
-
getArrayQueryKey(queryKey),
|
|
333
|
+
getArrayQueryKey(queryKey, 'query'),
|
|
332
334
|
...rest,
|
|
333
335
|
);
|
|
334
336
|
},
|
|
@@ -339,7 +341,7 @@ export function createHooksInternal<
|
|
|
339
341
|
const [queryKey, ...rest] = args;
|
|
340
342
|
|
|
341
343
|
return queryClient.getQueryData(
|
|
342
|
-
getArrayQueryKey(queryKey),
|
|
344
|
+
getArrayQueryKey(queryKey, 'query'),
|
|
343
345
|
...rest,
|
|
344
346
|
);
|
|
345
347
|
},
|
|
@@ -350,7 +352,7 @@ export function createHooksInternal<
|
|
|
350
352
|
const [queryKey, ...rest] = args;
|
|
351
353
|
|
|
352
354
|
return queryClient.setQueryData(
|
|
353
|
-
getArrayQueryKey(queryKey),
|
|
355
|
+
getArrayQueryKey(queryKey, 'infinite'),
|
|
354
356
|
...rest,
|
|
355
357
|
);
|
|
356
358
|
},
|
|
@@ -361,7 +363,7 @@ export function createHooksInternal<
|
|
|
361
363
|
const [queryKey, ...rest] = args;
|
|
362
364
|
|
|
363
365
|
return queryClient.getQueryData(
|
|
364
|
-
getArrayQueryKey(queryKey),
|
|
366
|
+
getArrayQueryKey(queryKey, 'infinite'),
|
|
365
367
|
...rest,
|
|
366
368
|
);
|
|
367
369
|
},
|
|
@@ -384,12 +386,16 @@ export function createHooksInternal<
|
|
|
384
386
|
*/
|
|
385
387
|
function useSSRQueryOptionsIfNeeded<
|
|
386
388
|
TOptions extends { retryOnMount?: boolean } | undefined,
|
|
387
|
-
>(
|
|
389
|
+
>(
|
|
390
|
+
pathAndInput: unknown[],
|
|
391
|
+
type: Exclude<QueryType, 'any'>,
|
|
392
|
+
opts: TOptions,
|
|
393
|
+
): TOptions {
|
|
388
394
|
const { queryClient, ssrState } = useContext();
|
|
389
395
|
return ssrState &&
|
|
390
396
|
ssrState !== 'mounted' &&
|
|
391
|
-
queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput))
|
|
392
|
-
.status === 'error'
|
|
397
|
+
queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput, type))
|
|
398
|
+
?.state.status === 'error'
|
|
393
399
|
? {
|
|
394
400
|
retryOnMount: false,
|
|
395
401
|
...opts,
|
|
@@ -419,16 +425,16 @@ export function createHooksInternal<
|
|
|
419
425
|
ssrState === 'prepass' &&
|
|
420
426
|
opts?.trpc?.ssr !== false &&
|
|
421
427
|
opts?.enabled !== false &&
|
|
422
|
-
!queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput))
|
|
428
|
+
!queryClient.getQueryCache().find(getArrayQueryKey(pathAndInput, 'query'))
|
|
423
429
|
) {
|
|
424
430
|
void prefetchQuery(pathAndInput as any, opts as any);
|
|
425
431
|
}
|
|
426
|
-
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, opts);
|
|
432
|
+
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, 'query', opts);
|
|
427
433
|
// request option should take priority over global
|
|
428
434
|
const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
|
|
429
435
|
|
|
430
436
|
const hook = __useQuery(
|
|
431
|
-
getArrayQueryKey(pathAndInput) as any,
|
|
437
|
+
getArrayQueryKey(pathAndInput, 'query') as any,
|
|
432
438
|
(queryFunctionContext) => {
|
|
433
439
|
const actualOpts = {
|
|
434
440
|
...ssrOpts,
|
|
@@ -588,18 +594,20 @@ export function createHooksInternal<
|
|
|
588
594
|
ssrState === 'prepass' &&
|
|
589
595
|
opts?.trpc?.ssr !== false &&
|
|
590
596
|
opts?.enabled !== false &&
|
|
591
|
-
!queryClient
|
|
597
|
+
!queryClient
|
|
598
|
+
.getQueryCache()
|
|
599
|
+
.find(getArrayQueryKey(pathAndInput, 'infinite'))
|
|
592
600
|
) {
|
|
593
601
|
void prefetchInfiniteQuery(pathAndInput as any, opts as any);
|
|
594
602
|
}
|
|
595
603
|
|
|
596
|
-
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, opts);
|
|
604
|
+
const ssrOpts = useSSRQueryOptionsIfNeeded(pathAndInput, 'infinite', opts);
|
|
597
605
|
|
|
598
606
|
// request option should take priority over global
|
|
599
607
|
const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
|
|
600
608
|
|
|
601
609
|
const hook = __useInfiniteQuery(
|
|
602
|
-
getArrayQueryKey(pathAndInput) as any,
|
|
610
|
+
getArrayQueryKey(pathAndInput, 'infinite') as any,
|
|
603
611
|
(queryFunctionContext) => {
|
|
604
612
|
const actualOpts = {
|
|
605
613
|
...ssrOpts,
|
package/src/ssg/ssg.ts
CHANGED
|
@@ -44,15 +44,18 @@ export function createSSGHelpers<TRouter extends AnyRouter>(
|
|
|
44
44
|
>(
|
|
45
45
|
...pathAndInput: [path: TPath, ...args: inferHandlerInput<TProcedure>]
|
|
46
46
|
) => {
|
|
47
|
-
return queryClient.prefetchQuery(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
return queryClient.prefetchQuery(
|
|
48
|
+
getArrayQueryKey(pathAndInput, 'query'),
|
|
49
|
+
() => {
|
|
50
|
+
return callProcedure({
|
|
51
|
+
procedures: router._def.procedures,
|
|
52
|
+
path: pathAndInput[0],
|
|
53
|
+
rawInput: pathAndInput[1],
|
|
54
|
+
ctx,
|
|
55
|
+
type: 'query',
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
);
|
|
56
59
|
};
|
|
57
60
|
|
|
58
61
|
const prefetchInfiniteQuery = async <
|
|
@@ -62,7 +65,7 @@ export function createSSGHelpers<TRouter extends AnyRouter>(
|
|
|
62
65
|
...pathAndInput: [path: TPath, ...args: inferHandlerInput<TProcedure>]
|
|
63
66
|
) => {
|
|
64
67
|
return queryClient.prefetchInfiniteQuery(
|
|
65
|
-
getArrayQueryKey(pathAndInput),
|
|
68
|
+
getArrayQueryKey(pathAndInput, 'infinite'),
|
|
66
69
|
() => {
|
|
67
70
|
return callProcedure({
|
|
68
71
|
procedures: router._def.procedures,
|
|
@@ -82,15 +85,18 @@ export function createSSGHelpers<TRouter extends AnyRouter>(
|
|
|
82
85
|
>(
|
|
83
86
|
...pathAndInput: [path: TPath, ...args: inferHandlerInput<TProcedure>]
|
|
84
87
|
): Promise<TOutput> => {
|
|
85
|
-
return queryClient.fetchQuery(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
return queryClient.fetchQuery(
|
|
89
|
+
getArrayQueryKey(pathAndInput, 'query'),
|
|
90
|
+
() => {
|
|
91
|
+
return callProcedure({
|
|
92
|
+
procedures: router._def.procedures,
|
|
93
|
+
path: pathAndInput[0],
|
|
94
|
+
rawInput: pathAndInput[1],
|
|
95
|
+
ctx,
|
|
96
|
+
type: 'query',
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
);
|
|
94
100
|
};
|
|
95
101
|
|
|
96
102
|
const fetchInfiniteQuery = async <
|
|
@@ -101,7 +107,7 @@ export function createSSGHelpers<TRouter extends AnyRouter>(
|
|
|
101
107
|
...pathAndInput: [path: TPath, ...args: inferHandlerInput<TProcedure>]
|
|
102
108
|
): Promise<InfiniteData<TOutput>> => {
|
|
103
109
|
return queryClient.fetchInfiniteQuery(
|
|
104
|
-
getArrayQueryKey(pathAndInput),
|
|
110
|
+
getArrayQueryKey(pathAndInput, 'infinite'),
|
|
105
111
|
() => {
|
|
106
112
|
return callProcedure({
|
|
107
113
|
procedures: router._def.procedures,
|