@trpc/react-query 11.23.1-canary.10.8a0997add → 11.23.1-canary.14.507382d73
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/dist/server/index.cjs
CHANGED
|
@@ -69,6 +69,18 @@ function createServerSideHelpers(opts) {
|
|
|
69
69
|
path: arrayPath.join("."),
|
|
70
70
|
input
|
|
71
71
|
});
|
|
72
|
+
const infiniteQueryFn = ({ pageParam, direction }) => {
|
|
73
|
+
var _args$;
|
|
74
|
+
const initialCursor = (_args$ = args[1]) === null || _args$ === void 0 ? void 0 : _args$.initialCursor;
|
|
75
|
+
const [path, infiniteInput] = require_shared.getClientArgs([arrayPath, { input }], void 0, {
|
|
76
|
+
pageParam: pageParam !== null && pageParam !== void 0 ? pageParam : initialCursor,
|
|
77
|
+
direction
|
|
78
|
+
});
|
|
79
|
+
return resolvedOpts.query({
|
|
80
|
+
path,
|
|
81
|
+
input: infiniteInput
|
|
82
|
+
});
|
|
83
|
+
};
|
|
72
84
|
const queryKey = require_getQueryKey.getQueryKeyInternal(arrayPath, input, require_shared.getQueryType(utilName));
|
|
73
85
|
return {
|
|
74
86
|
queryOptions: () => {
|
|
@@ -79,10 +91,12 @@ function createServerSideHelpers(opts) {
|
|
|
79
91
|
});
|
|
80
92
|
},
|
|
81
93
|
infiniteQueryOptions: () => {
|
|
94
|
+
var _args1$initialCursor;
|
|
82
95
|
const args1 = args[1];
|
|
83
96
|
return require_getQueryKey._objectSpread2(require_getQueryKey._objectSpread2({}, args1), {}, {
|
|
84
97
|
queryKey,
|
|
85
|
-
queryFn
|
|
98
|
+
queryFn: infiniteQueryFn,
|
|
99
|
+
initialPageParam: (_args1$initialCursor = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor !== void 0 ? _args1$initialCursor : null
|
|
86
100
|
});
|
|
87
101
|
},
|
|
88
102
|
fetch: () => {
|
|
@@ -93,12 +107,12 @@ function createServerSideHelpers(opts) {
|
|
|
93
107
|
}));
|
|
94
108
|
},
|
|
95
109
|
fetchInfinite: () => {
|
|
96
|
-
var _args1$
|
|
110
|
+
var _args1$initialCursor2;
|
|
97
111
|
const args1 = args[1];
|
|
98
112
|
return queryClient.fetchInfiniteQuery(require_getQueryKey._objectSpread2(require_getQueryKey._objectSpread2({}, args1), {}, {
|
|
99
113
|
queryKey,
|
|
100
|
-
queryFn,
|
|
101
|
-
initialPageParam: (_args1$
|
|
114
|
+
queryFn: infiniteQueryFn,
|
|
115
|
+
initialPageParam: (_args1$initialCursor2 = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor2 !== void 0 ? _args1$initialCursor2 : null
|
|
102
116
|
}));
|
|
103
117
|
},
|
|
104
118
|
prefetch: () => {
|
|
@@ -109,12 +123,12 @@ function createServerSideHelpers(opts) {
|
|
|
109
123
|
}));
|
|
110
124
|
},
|
|
111
125
|
prefetchInfinite: () => {
|
|
112
|
-
var _args1$
|
|
126
|
+
var _args1$initialCursor3;
|
|
113
127
|
const args1 = args[1];
|
|
114
128
|
return queryClient.prefetchInfiniteQuery(require_getQueryKey._objectSpread2(require_getQueryKey._objectSpread2({}, args1), {}, {
|
|
115
129
|
queryKey,
|
|
116
|
-
queryFn,
|
|
117
|
-
initialPageParam: (_args1$
|
|
130
|
+
queryFn: infiniteQueryFn,
|
|
131
|
+
initialPageParam: (_args1$initialCursor3 = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor3 !== void 0 ? _args1$initialCursor3 : null
|
|
118
132
|
}));
|
|
119
133
|
}
|
|
120
134
|
}[utilName]();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/server/ssgProxy.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/server/ssgProxy.ts"],"mappings":";;;;;;KAyCK,yBAAyB,gBAAgB;;;;EAI5C,QAAQ;;;;EAIR,KAAK,mBAAmB;IACtB,mBAAmB,iBAAiB;UAE9B,yBAAyB,gBAAgB;;;;EAIjD,QAAQ,WAAW,WAAW,kBAAkB;;KAG7C,+BAA+B,gBAAgB,aAClD,oCACG,yBAAyB,WAAW,yBAAyB;KAE7D;;;;KAWA,4BACH,cAAc,cACd,gBAAgB,mBAEf,cAAc,UAAU,QAAQ,qBAAoB,UACjD,eAAe,oBACb,KAAK,uBAAuB,OAAO,SAAS,UAC5C,eAAe,eACb,4BAA4B,OAAO;;;;;;;;;;wBAgB7B,wBAAwB,gBAAgB,WACtD,MAAM,+BAA+B,WAAQ;EAuE5B,aAAA;EACF,YAAC,OAAO,qBAAqB;GAyF7C,4BAAA,sCAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/server/ssgProxy.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/server/ssgProxy.ts"],"mappings":";;;;;;KAyCK,yBAAyB,gBAAgB;;;;EAI5C,QAAQ;;;;EAIR,KAAK,mBAAmB;IACtB,mBAAmB,iBAAiB;UAE9B,yBAAyB,gBAAgB;;;;EAIjD,QAAQ,WAAW,WAAW,kBAAkB;;KAG7C,+BAA+B,gBAAgB,aAClD,oCACG,yBAAyB,WAAW,yBAAyB;KAE7D;;;;KAWA,4BACH,cAAc,cACd,gBAAgB,mBAEf,cAAc,UAAU,QAAQ,qBAAoB,UACjD,eAAe,oBACb,KAAK,uBAAuB,OAAO,SAAS,UAC5C,eAAe,eACb,4BAA4B,OAAO;;;;;;;;;;wBAgB7B,wBAAwB,gBAAgB,WACtD,MAAM,+BAA+B,WAAQ;EAuE5B,aAAA;EACF,YAAC,OAAO,qBAAqB;GAyF7C,4BAAA,sCAAA"}
|
package/dist/server/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as _objectSpread2, i as getQueryKeyInternal, o as _objectWithoutProperties } from "../getQueryKey-CWSorJjT.mjs";
|
|
2
|
-
import { c as getQueryType, t as getQueryClient } from "../shared-DyU-Vz6d.mjs";
|
|
2
|
+
import { c as getQueryType, i as getClientArgs, t as getQueryClient } from "../shared-DyU-Vz6d.mjs";
|
|
3
3
|
import { TRPCUntypedClient, getUntypedClient } from "@trpc/client";
|
|
4
4
|
import { dehydrate } from "@tanstack/react-query";
|
|
5
5
|
import { callProcedure, createFlatProxy, createRecursiveProxy, run } from "@trpc/server/unstable-core-do-not-import";
|
|
@@ -68,6 +68,18 @@ function createServerSideHelpers(opts) {
|
|
|
68
68
|
path: arrayPath.join("."),
|
|
69
69
|
input
|
|
70
70
|
});
|
|
71
|
+
const infiniteQueryFn = ({ pageParam, direction }) => {
|
|
72
|
+
var _args$;
|
|
73
|
+
const initialCursor = (_args$ = args[1]) === null || _args$ === void 0 ? void 0 : _args$.initialCursor;
|
|
74
|
+
const [path, infiniteInput] = getClientArgs([arrayPath, { input }], void 0, {
|
|
75
|
+
pageParam: pageParam !== null && pageParam !== void 0 ? pageParam : initialCursor,
|
|
76
|
+
direction
|
|
77
|
+
});
|
|
78
|
+
return resolvedOpts.query({
|
|
79
|
+
path,
|
|
80
|
+
input: infiniteInput
|
|
81
|
+
});
|
|
82
|
+
};
|
|
71
83
|
const queryKey = getQueryKeyInternal(arrayPath, input, getQueryType(utilName));
|
|
72
84
|
return {
|
|
73
85
|
queryOptions: () => {
|
|
@@ -78,10 +90,12 @@ function createServerSideHelpers(opts) {
|
|
|
78
90
|
});
|
|
79
91
|
},
|
|
80
92
|
infiniteQueryOptions: () => {
|
|
93
|
+
var _args1$initialCursor;
|
|
81
94
|
const args1 = args[1];
|
|
82
95
|
return _objectSpread2(_objectSpread2({}, args1), {}, {
|
|
83
96
|
queryKey,
|
|
84
|
-
queryFn
|
|
97
|
+
queryFn: infiniteQueryFn,
|
|
98
|
+
initialPageParam: (_args1$initialCursor = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor !== void 0 ? _args1$initialCursor : null
|
|
85
99
|
});
|
|
86
100
|
},
|
|
87
101
|
fetch: () => {
|
|
@@ -92,12 +106,12 @@ function createServerSideHelpers(opts) {
|
|
|
92
106
|
}));
|
|
93
107
|
},
|
|
94
108
|
fetchInfinite: () => {
|
|
95
|
-
var _args1$
|
|
109
|
+
var _args1$initialCursor2;
|
|
96
110
|
const args1 = args[1];
|
|
97
111
|
return queryClient.fetchInfiniteQuery(_objectSpread2(_objectSpread2({}, args1), {}, {
|
|
98
112
|
queryKey,
|
|
99
|
-
queryFn,
|
|
100
|
-
initialPageParam: (_args1$
|
|
113
|
+
queryFn: infiniteQueryFn,
|
|
114
|
+
initialPageParam: (_args1$initialCursor2 = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor2 !== void 0 ? _args1$initialCursor2 : null
|
|
101
115
|
}));
|
|
102
116
|
},
|
|
103
117
|
prefetch: () => {
|
|
@@ -108,12 +122,12 @@ function createServerSideHelpers(opts) {
|
|
|
108
122
|
}));
|
|
109
123
|
},
|
|
110
124
|
prefetchInfinite: () => {
|
|
111
|
-
var _args1$
|
|
125
|
+
var _args1$initialCursor3;
|
|
112
126
|
const args1 = args[1];
|
|
113
127
|
return queryClient.prefetchInfiniteQuery(_objectSpread2(_objectSpread2({}, args1), {}, {
|
|
114
128
|
queryKey,
|
|
115
|
-
queryFn,
|
|
116
|
-
initialPageParam: (_args1$
|
|
129
|
+
queryFn: infiniteQueryFn,
|
|
130
|
+
initialPageParam: (_args1$initialCursor3 = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor3 !== void 0 ? _args1$initialCursor3 : null
|
|
117
131
|
}));
|
|
118
132
|
}
|
|
119
133
|
}[utilName]();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/server/ssgProxy.ts"],"sourcesContent":["import type {\n DehydratedState,\n DehydrateOptions,\n QueryClient,\n} from '@tanstack/react-query';\nimport { dehydrate } from '@tanstack/react-query';\nimport type { TRPCClient } from '@trpc/client';\nimport { getUntypedClient, TRPCUntypedClient } from '@trpc/client';\nimport type { CoercedTransformerParameters } from '@trpc/client/unstable-internals';\nimport {\n getTransformer,\n type TransformerOptions,\n} from '@trpc/client/unstable-internals';\nimport type {\n AnyQueryProcedure,\n AnyRootTypes,\n AnyRouter,\n inferClientTypes,\n inferRouterContext,\n Maybe,\n ProtectedIntersection,\n RouterRecord,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n callProcedure,\n createFlatProxy,\n createRecursiveProxy,\n run,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { getQueryKeyInternal } from '../internals/getQueryKey';\nimport type {\n CreateTRPCReactQueryClientConfig,\n DecorateQueryProcedure,\n TRPCFetchInfiniteQueryOptions,\n TRPCFetchQueryOptions,\n} from '../shared';\nimport { getQueryClient, getQueryType } from '../shared';\n\ntype CreateSSGHelpersInternal<TRouter extends AnyRouter> = {\n /**\n * Call this router directly, without HTTP.\n */\n router: TRouter;\n /**\n * The context to call procedures with.\n */\n ctx: inferRouterContext<TRouter>;\n} & TransformerOptions<inferClientTypes<TRouter>>;\n\ninterface CreateSSGHelpersExternal<TRouter extends AnyRouter> {\n /**\n * Call procedures through this tRPC client.\n */\n client: TRPCClient<TRouter> | TRPCUntypedClient<TRouter>;\n}\n\ntype CreateServerSideHelpersOptions<TRouter extends AnyRouter> =\n CreateTRPCReactQueryClientConfig &\n (CreateSSGHelpersExternal<TRouter> | CreateSSGHelpersInternal<TRouter>);\n\ntype SSGFns =\n | 'queryOptions'\n | 'infiniteQueryOptions'\n | 'fetch'\n | 'fetchInfinite'\n | 'prefetch'\n | 'prefetchInfinite';\n\n/**\n * @internal\n */\ntype DecoratedProcedureSSGRecord<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = {\n [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n ? $Value extends AnyQueryProcedure\n ? Pick<DecorateQueryProcedure<TRoot, $Value>, SSGFns>\n : $Value extends RouterRecord\n ? DecoratedProcedureSSGRecord<TRoot, $Value>\n : never\n : never;\n};\n\ntype AnyDecoratedProcedure = Pick<DecorateQueryProcedure<any, any>, SSGFns>;\n\n/**\n * Creates helpers that fetch or prefetch queries on the server, for\n * server-side rendering and static generation.\n *\n * @deprecated `@trpc/react-query` only gets bug fixes and will be removed in\n * the next major version. Use `@trpc/tanstack-react-query` instead.\n * @see https://trpc.io/docs/client/tanstack-react-query/migrating\n * @see https://trpc.io/docs/client/nextjs/pages-router/server-side-helpers\n */\nexport function createServerSideHelpers<TRouter extends AnyRouter>(\n opts: CreateServerSideHelpersOptions<TRouter>,\n) {\n const queryClient = getQueryClient(opts);\n const transformer = getTransformer(\n (opts as CoercedTransformerParameters).transformer,\n );\n\n const resolvedOpts: {\n serialize: (obj: unknown) => any;\n query: (queryOpts: { path: string; input: unknown }) => Promise<unknown>;\n } = (() => {\n if ('router' in opts) {\n const { ctx, router } = opts;\n return {\n serialize: (obj) => transformer.output.serialize(obj),\n query: (queryOpts) => {\n return callProcedure({\n router,\n path: queryOpts.path,\n getRawInput: async () => queryOpts.input,\n ctx,\n type: 'query',\n signal: undefined,\n batchIndex: 0,\n });\n },\n };\n }\n\n const { client } = opts;\n const untypedClient =\n client instanceof TRPCUntypedClient ? client : getUntypedClient(client);\n\n return {\n query: (queryOpts) =>\n untypedClient.query(queryOpts.path, queryOpts.input),\n serialize: (obj) => transformer.output.serialize(obj),\n };\n })();\n\n function _dehydrate(\n opts: DehydrateOptions = {\n shouldDehydrateQuery(query) {\n if (query.state.status === 'pending') {\n return false;\n }\n // makes sure to serialize errors\n return true;\n },\n },\n ): DehydratedState {\n const before = run(() => {\n const dehydrated = dehydrate(queryClient, opts);\n\n return {\n ...dehydrated,\n queries: dehydrated.queries.map((query) => {\n if (query.promise) {\n const { promise: _, ...rest } = query;\n return rest;\n }\n return query;\n }),\n };\n });\n const after = resolvedOpts.serialize(before);\n return after;\n }\n\n type CreateSSGHelpers = ProtectedIntersection<\n {\n queryClient: QueryClient;\n dehydrate: (opts?: DehydrateOptions) => DehydratedState;\n },\n DecoratedProcedureSSGRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n >;\n const proxy = createRecursiveProxy<CreateSSGHelpers>((opts) => {\n const args = opts.args;\n const input = args[0];\n const arrayPath = [...opts.path];\n const utilName = arrayPath.pop() as keyof AnyDecoratedProcedure;\n\n const queryFn = () =>\n resolvedOpts.query({ path: arrayPath.join('.'), input });\n\n const queryKey = getQueryKeyInternal(\n arrayPath,\n input,\n getQueryType(utilName),\n );\n\n const helperMap: Record<keyof AnyDecoratedProcedure, () => unknown> = {\n queryOptions: () => {\n const args1 = args[1] as Maybe<any>;\n return { ...args1, queryKey, queryFn };\n },\n infiniteQueryOptions: () => {\n const args1 = args[1] as Maybe<any>;\n return { ...args1, queryKey, queryFn };\n },\n fetch: () => {\n const args1 = args[1] as Maybe<TRPCFetchQueryOptions<any, any>>;\n return queryClient.fetchQuery({ ...args1, queryKey, queryFn });\n },\n fetchInfinite: () => {\n const args1 = args[1] as Maybe<\n TRPCFetchInfiniteQueryOptions<any, any, any>\n >;\n return queryClient.fetchInfiniteQuery({\n ...args1,\n queryKey,\n queryFn,\n initialPageParam: args1?.initialCursor ?? null,\n });\n },\n prefetch: () => {\n const args1 = args[1] as Maybe<TRPCFetchQueryOptions<any, any>>;\n return queryClient.prefetchQuery({ ...args1, queryKey, queryFn });\n },\n prefetchInfinite: () => {\n const args1 = args[1] as Maybe<\n TRPCFetchInfiniteQueryOptions<any, any, any>\n >;\n return queryClient.prefetchInfiniteQuery({\n ...args1,\n queryKey,\n queryFn,\n initialPageParam: args1?.initialCursor ?? null,\n });\n },\n };\n\n return helperMap[utilName]();\n });\n return createFlatProxy<CreateSSGHelpers>((key) => {\n if (key === 'queryClient') return queryClient;\n if (key === 'dehydrate') return _dehydrate;\n return proxy[key];\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/server/ssgProxy.ts"],"sourcesContent":["import type {\n DehydratedState,\n DehydrateOptions,\n QueryClient,\n QueryFunctionContext,\n} from '@tanstack/react-query';\nimport { dehydrate } from '@tanstack/react-query';\nimport type { TRPCClient } from '@trpc/client';\nimport { getUntypedClient, TRPCUntypedClient } from '@trpc/client';\nimport type { CoercedTransformerParameters } from '@trpc/client/unstable-internals';\nimport {\n getTransformer,\n type TransformerOptions,\n} from '@trpc/client/unstable-internals';\nimport type {\n AnyQueryProcedure,\n AnyRootTypes,\n AnyRouter,\n inferClientTypes,\n inferRouterContext,\n Maybe,\n ProtectedIntersection,\n RouterRecord,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n callProcedure,\n createFlatProxy,\n createRecursiveProxy,\n run,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { getClientArgs } from '../internals/getClientArgs';\nimport type { TRPCQueryKey } from '../internals/getQueryKey';\nimport { getQueryKeyInternal } from '../internals/getQueryKey';\nimport type {\n CreateTRPCReactQueryClientConfig,\n DecorateQueryProcedure,\n TRPCFetchInfiniteQueryOptions,\n TRPCFetchQueryOptions,\n} from '../shared';\nimport { getQueryClient, getQueryType } from '../shared';\n\ntype CreateSSGHelpersInternal<TRouter extends AnyRouter> = {\n /**\n * Call this router directly, without HTTP.\n */\n router: TRouter;\n /**\n * The context to call procedures with.\n */\n ctx: inferRouterContext<TRouter>;\n} & TransformerOptions<inferClientTypes<TRouter>>;\n\ninterface CreateSSGHelpersExternal<TRouter extends AnyRouter> {\n /**\n * Call procedures through this tRPC client.\n */\n client: TRPCClient<TRouter> | TRPCUntypedClient<TRouter>;\n}\n\ntype CreateServerSideHelpersOptions<TRouter extends AnyRouter> =\n CreateTRPCReactQueryClientConfig &\n (CreateSSGHelpersExternal<TRouter> | CreateSSGHelpersInternal<TRouter>);\n\ntype SSGFns =\n | 'queryOptions'\n | 'infiniteQueryOptions'\n | 'fetch'\n | 'fetchInfinite'\n | 'prefetch'\n | 'prefetchInfinite';\n\n/**\n * @internal\n */\ntype DecoratedProcedureSSGRecord<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = {\n [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n ? $Value extends AnyQueryProcedure\n ? Pick<DecorateQueryProcedure<TRoot, $Value>, SSGFns>\n : $Value extends RouterRecord\n ? DecoratedProcedureSSGRecord<TRoot, $Value>\n : never\n : never;\n};\n\ntype AnyDecoratedProcedure = Pick<DecorateQueryProcedure<any, any>, SSGFns>;\n\n/**\n * Creates helpers that fetch or prefetch queries on the server, for\n * server-side rendering and static generation.\n *\n * @deprecated `@trpc/react-query` only gets bug fixes and will be removed in\n * the next major version. Use `@trpc/tanstack-react-query` instead.\n * @see https://trpc.io/docs/client/tanstack-react-query/migrating\n * @see https://trpc.io/docs/client/nextjs/pages-router/server-side-helpers\n */\nexport function createServerSideHelpers<TRouter extends AnyRouter>(\n opts: CreateServerSideHelpersOptions<TRouter>,\n) {\n const queryClient = getQueryClient(opts);\n const transformer = getTransformer(\n (opts as CoercedTransformerParameters).transformer,\n );\n\n const resolvedOpts: {\n serialize: (obj: unknown) => any;\n query: (queryOpts: { path: string; input: unknown }) => Promise<unknown>;\n } = (() => {\n if ('router' in opts) {\n const { ctx, router } = opts;\n return {\n serialize: (obj) => transformer.output.serialize(obj),\n query: (queryOpts) => {\n return callProcedure({\n router,\n path: queryOpts.path,\n getRawInput: async () => queryOpts.input,\n ctx,\n type: 'query',\n signal: undefined,\n batchIndex: 0,\n });\n },\n };\n }\n\n const { client } = opts;\n const untypedClient =\n client instanceof TRPCUntypedClient ? client : getUntypedClient(client);\n\n return {\n query: (queryOpts) =>\n untypedClient.query(queryOpts.path, queryOpts.input),\n serialize: (obj) => transformer.output.serialize(obj),\n };\n })();\n\n function _dehydrate(\n opts: DehydrateOptions = {\n shouldDehydrateQuery(query) {\n if (query.state.status === 'pending') {\n return false;\n }\n // makes sure to serialize errors\n return true;\n },\n },\n ): DehydratedState {\n const before = run(() => {\n const dehydrated = dehydrate(queryClient, opts);\n\n return {\n ...dehydrated,\n queries: dehydrated.queries.map((query) => {\n if (query.promise) {\n const { promise: _, ...rest } = query;\n return rest;\n }\n return query;\n }),\n };\n });\n const after = resolvedOpts.serialize(before);\n return after;\n }\n\n type CreateSSGHelpers = ProtectedIntersection<\n {\n queryClient: QueryClient;\n dehydrate: (opts?: DehydrateOptions) => DehydratedState;\n },\n DecoratedProcedureSSGRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n >;\n const proxy = createRecursiveProxy<CreateSSGHelpers>((opts) => {\n const args = opts.args;\n const input = args[0];\n const arrayPath = [...opts.path];\n const utilName = arrayPath.pop() as keyof AnyDecoratedProcedure;\n\n const queryFn = () =>\n resolvedOpts.query({ path: arrayPath.join('.'), input });\n\n const infiniteQueryFn = ({\n pageParam,\n direction,\n }: QueryFunctionContext<TRPCQueryKey, unknown>) => {\n const initialCursor = (args[1] as Maybe<{ initialCursor?: unknown }>)\n ?.initialCursor;\n const [path, infiniteInput] = getClientArgs(\n [arrayPath, { input }],\n undefined,\n { pageParam: pageParam ?? initialCursor, direction },\n );\n return resolvedOpts.query({ path, input: infiniteInput });\n };\n\n const queryKey = getQueryKeyInternal(\n arrayPath,\n input,\n getQueryType(utilName),\n );\n\n const helperMap: Record<keyof AnyDecoratedProcedure, () => unknown> = {\n queryOptions: () => {\n const args1 = args[1] as Maybe<any>;\n return { ...args1, queryKey, queryFn };\n },\n infiniteQueryOptions: () => {\n const args1 = args[1] as Maybe<any>;\n return {\n ...args1,\n queryKey,\n queryFn: infiniteQueryFn,\n initialPageParam: args1?.initialCursor ?? null,\n };\n },\n fetch: () => {\n const args1 = args[1] as Maybe<TRPCFetchQueryOptions<any, any>>;\n return queryClient.fetchQuery({ ...args1, queryKey, queryFn });\n },\n fetchInfinite: () => {\n const args1 = args[1] as Maybe<\n TRPCFetchInfiniteQueryOptions<any, any, any>\n >;\n return queryClient.fetchInfiniteQuery({\n ...args1,\n queryKey,\n queryFn: infiniteQueryFn,\n initialPageParam: args1?.initialCursor ?? null,\n });\n },\n prefetch: () => {\n const args1 = args[1] as Maybe<TRPCFetchQueryOptions<any, any>>;\n return queryClient.prefetchQuery({ ...args1, queryKey, queryFn });\n },\n prefetchInfinite: () => {\n const args1 = args[1] as Maybe<\n TRPCFetchInfiniteQueryOptions<any, any, any>\n >;\n return queryClient.prefetchInfiniteQuery({\n ...args1,\n queryKey,\n queryFn: infiniteQueryFn,\n initialPageParam: args1?.initialCursor ?? null,\n });\n },\n };\n\n return helperMap[utilName]();\n });\n return createFlatProxy<CreateSSGHelpers>((key) => {\n if (key === 'queryClient') return queryClient;\n if (key === 'dehydrate') return _dehydrate;\n return proxy[key];\n });\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/react-query",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "11.23.1-canary.
|
|
4
|
+
"version": "11.23.1-canary.14.507382d73",
|
|
5
5
|
"description": "The tRPC React library",
|
|
6
6
|
"author": "KATT",
|
|
7
7
|
"license": "MIT",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
],
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"@tanstack/react-query": "^5.80.3",
|
|
79
|
-
"@trpc/client": "11.23.1-canary.
|
|
80
|
-
"@trpc/server": "11.23.1-canary.
|
|
79
|
+
"@trpc/client": "11.23.1-canary.14.507382d73",
|
|
80
|
+
"@trpc/server": "11.23.1-canary.14.507382d73",
|
|
81
81
|
"react": ">=18.2.0",
|
|
82
82
|
"typescript": ">=5.7.2"
|
|
83
83
|
},
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
"@testing-library/jest-dom": "^6.9.1",
|
|
90
90
|
"@testing-library/react": "^16.1.0",
|
|
91
91
|
"@testing-library/user-event": "^14.4.3",
|
|
92
|
-
"@trpc/client": "11.23.1-canary.
|
|
93
|
-
"@trpc/server": "11.23.1-canary.
|
|
92
|
+
"@trpc/client": "11.23.1-canary.14.507382d73",
|
|
93
|
+
"@trpc/server": "11.23.1-canary.14.507382d73",
|
|
94
94
|
"@types/express": "^5.0.0",
|
|
95
95
|
"@types/node": "^24.13.4",
|
|
96
96
|
"@types/react": "^19.1.0",
|
|
@@ -112,5 +112,5 @@
|
|
|
112
112
|
"funding": [
|
|
113
113
|
"https://trpc.io/sponsor"
|
|
114
114
|
],
|
|
115
|
-
"gitHead": "
|
|
115
|
+
"gitHead": "507382d73fde2e52b31bd108a79a1d092ed2f5e9"
|
|
116
116
|
}
|
package/src/server/ssgProxy.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type {
|
|
|
2
2
|
DehydratedState,
|
|
3
3
|
DehydrateOptions,
|
|
4
4
|
QueryClient,
|
|
5
|
+
QueryFunctionContext,
|
|
5
6
|
} from '@tanstack/react-query';
|
|
6
7
|
import { dehydrate } from '@tanstack/react-query';
|
|
7
8
|
import type { TRPCClient } from '@trpc/client';
|
|
@@ -27,6 +28,8 @@ import {
|
|
|
27
28
|
createRecursiveProxy,
|
|
28
29
|
run,
|
|
29
30
|
} from '@trpc/server/unstable-core-do-not-import';
|
|
31
|
+
import { getClientArgs } from '../internals/getClientArgs';
|
|
32
|
+
import type { TRPCQueryKey } from '../internals/getQueryKey';
|
|
30
33
|
import { getQueryKeyInternal } from '../internals/getQueryKey';
|
|
31
34
|
import type {
|
|
32
35
|
CreateTRPCReactQueryClientConfig,
|
|
@@ -182,6 +185,20 @@ export function createServerSideHelpers<TRouter extends AnyRouter>(
|
|
|
182
185
|
const queryFn = () =>
|
|
183
186
|
resolvedOpts.query({ path: arrayPath.join('.'), input });
|
|
184
187
|
|
|
188
|
+
const infiniteQueryFn = ({
|
|
189
|
+
pageParam,
|
|
190
|
+
direction,
|
|
191
|
+
}: QueryFunctionContext<TRPCQueryKey, unknown>) => {
|
|
192
|
+
const initialCursor = (args[1] as Maybe<{ initialCursor?: unknown }>)
|
|
193
|
+
?.initialCursor;
|
|
194
|
+
const [path, infiniteInput] = getClientArgs(
|
|
195
|
+
[arrayPath, { input }],
|
|
196
|
+
undefined,
|
|
197
|
+
{ pageParam: pageParam ?? initialCursor, direction },
|
|
198
|
+
);
|
|
199
|
+
return resolvedOpts.query({ path, input: infiniteInput });
|
|
200
|
+
};
|
|
201
|
+
|
|
185
202
|
const queryKey = getQueryKeyInternal(
|
|
186
203
|
arrayPath,
|
|
187
204
|
input,
|
|
@@ -195,7 +212,12 @@ export function createServerSideHelpers<TRouter extends AnyRouter>(
|
|
|
195
212
|
},
|
|
196
213
|
infiniteQueryOptions: () => {
|
|
197
214
|
const args1 = args[1] as Maybe<any>;
|
|
198
|
-
return {
|
|
215
|
+
return {
|
|
216
|
+
...args1,
|
|
217
|
+
queryKey,
|
|
218
|
+
queryFn: infiniteQueryFn,
|
|
219
|
+
initialPageParam: args1?.initialCursor ?? null,
|
|
220
|
+
};
|
|
199
221
|
},
|
|
200
222
|
fetch: () => {
|
|
201
223
|
const args1 = args[1] as Maybe<TRPCFetchQueryOptions<any, any>>;
|
|
@@ -208,7 +230,7 @@ export function createServerSideHelpers<TRouter extends AnyRouter>(
|
|
|
208
230
|
return queryClient.fetchInfiniteQuery({
|
|
209
231
|
...args1,
|
|
210
232
|
queryKey,
|
|
211
|
-
queryFn,
|
|
233
|
+
queryFn: infiniteQueryFn,
|
|
212
234
|
initialPageParam: args1?.initialCursor ?? null,
|
|
213
235
|
});
|
|
214
236
|
},
|
|
@@ -223,7 +245,7 @@ export function createServerSideHelpers<TRouter extends AnyRouter>(
|
|
|
223
245
|
return queryClient.prefetchInfiniteQuery({
|
|
224
246
|
...args1,
|
|
225
247
|
queryKey,
|
|
226
|
-
queryFn,
|
|
248
|
+
queryFn: infiniteQueryFn,
|
|
227
249
|
initialPageParam: args1?.initialCursor ?? null,
|
|
228
250
|
});
|
|
229
251
|
},
|