@trpc/react-query 11.23.1-canary.10.8a0997add → 11.23.1-canary.16.f11951ce3

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.
@@ -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$initialCursor;
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$initialCursor = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor !== void 0 ? _args1$initialCursor : null
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$initialCursor2;
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$initialCursor2 = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor2 !== void 0 ? _args1$initialCursor2 : null
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":";;;;;;KAsCK,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;GAsE7C,4BAAA,sCAAA"}
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":";;;;;;KAsCK,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;GAsE7C,4BAAA,sCAAA"}
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"}
@@ -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$initialCursor;
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$initialCursor = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor !== void 0 ? _args1$initialCursor : null
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$initialCursor2;
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$initialCursor2 = args1 === null || args1 === void 0 ? void 0 : args1.initialCursor) !== null && _args1$initialCursor2 !== void 0 ? _args1$initialCursor2 : null
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":";;;;;;;AA0JoB,MAAA,YAAA,CAAA,SAAA;;;;;;;;;;AA3DpB,SAAgB,wBACd,MACA;CACA,MAAM,cAAc,eAAe,IAAI;CACvC,MAAM,cAAc,eACjB,KAAsC,WACzC;CAEA,MAAM,sBAGK;EACT,IAAI,YAAY,MAAM;GACpB,MAAM,EAAE,KAAK,WAAW;GACxB,OAAO;IACL,YAAY,QAAQ,YAAY,OAAO,UAAU,GAAG;IACpD,QAAQ,cAAc;KACpB,OAAO,cAAc;MACnB;MACA,MAAM,UAAU;MAChB,aAAa,YAAY,UAAU;MACnC;MACA,MAAM;MACN,QAAQ,KAAA;MACR,YAAY;KACd,CAAC;IACH;GACF;EACF;EAEA,MAAM,EAAE,WAAW;EACnB,MAAM,gBACJ,kBAAkB,oBAAoB,SAAS,iBAAiB,MAAM;EAExE,OAAO;GACL,QAAQ,cACN,cAAc,MAAM,UAAU,MAAM,UAAU,KAAK;GACrD,YAAY,QAAQ,YAAY,OAAO,UAAU,GAAG;EACtD;CACF,EAAA,CAAG;CAEH,SAAS,WACP,OAAyB,EACvB,qBAAqB,OAAO;EAC1B,IAAI,MAAM,MAAM,WAAW,WACzB,OAAO;EAGT,OAAO;CACT,EACF,GACiB;EACjB,MAAM,SAAS,UAAU;GACvB,MAAM,aAAa,UAAU,aAAa,IAAI;GAE9C,OAAA,eAAA,eAAA,CAAA,GACK,UAAA,GAAA,CAAA,GAAA,EACH,SAAS,WAAW,QAAQ,KAAK,UAAU;IACzC,IAAI,MAAM,SAAS;KACjB,MAAM,EAAE,SAAS,MAAA;KACjB,OAAA,yBADgC,OAAA,SACtB;IACZ;IACA,OAAO;GACT,CAAC,EAAA,CACH;EACF,CAAC;EAED,OADc,aAAa,UAAU,MAC1B;CACb;CAYA,MAAM,QAAQ,sBAAwC,SAAS;EAC7D,MAAM,OAAO,KAAK;EAClB,MAAM,QAAQ,KAAK;EACnB,MAAM,YAAY,CAAC,GAAG,KAAK,IAAI;EAC/B,MAAM,WAAW,UAAU,IAAI;EAE/B,MAAM,gBACJ,aAAa,MAAM;GAAE,MAAM,UAAU,KAAK,GAAG;GAAG;EAAM,CAAC;EAEzD,MAAM,WAAW,oBACf,WACA,OACA,aAAa,QAAQ,CACvB;EA2CA,OAAO;GAxCL,oBAAoB;IAClB,MAAM,QAAQ,KAAK;IACnB,OAAA,eAAA,eAAA,CAAA,GAAY,KAAA,GAAA,CAAA,GAAA;KAAO;KAAU;IAAQ,CAAA;GACvC;GACA,4BAA4B;IAC1B,MAAM,QAAQ,KAAK;IACnB,OAAA,eAAA,eAAA,CAAA,GAAY,KAAA,GAAA,CAAA,GAAA;KAAO;KAAU;IAAQ,CAAA;GACvC;GACA,aAAa;IACX,MAAM,QAAQ,KAAK;IACnB,OAAO,YAAY,WAAA,eAAA,eAAA,CAAA,GAAgB,KAAA,GAAA,CAAA,GAAA;KAAO;KAAU;IAAQ,CAAA,CAAC;GAC/D;GACA,qBAAqB;;IACnB,MAAM,QAAQ,KAAK;IAGnB,OAAO,YAAY,mBAAA,eAAA,eAAA,CAAA,GACd,KAAA,GAAA,CAAA,GAAA;KACH;KACA;KACA,mBAAA,uBAAA,UAAA,QAAA,UAAA,KAAA,IAAA,KAAA,IAAkB,MAAO,mBAAA,QAAA,yBAAA,KAAA,IAAA,uBAAiB;IAC5C,CAAA,CAAC;GACH;GACA,gBAAgB;IACd,MAAM,QAAQ,KAAK;IACnB,OAAO,YAAY,cAAA,eAAA,eAAA,CAAA,GAAmB,KAAA,GAAA,CAAA,GAAA;KAAO;KAAU;IAAQ,CAAA,CAAC;GAClE;GACA,wBAAwB;;IACtB,MAAM,QAAQ,KAAK;IAGnB,OAAO,YAAY,sBAAA,eAAA,eAAA,CAAA,GACd,KAAA,GAAA,CAAA,GAAA;KACH;KACA;KACA,mBAAA,wBAAA,UAAA,QAAA,UAAA,KAAA,IAAA,KAAA,IAAkB,MAAO,mBAAA,QAAA,0BAAA,KAAA,IAAA,wBAAiB;IAC5C,CAAA,CAAC;GACH;EAGa,EAAE,SAAS,CAAC;CAC7B,CAAC;CACD,OAAO,iBAAmC,QAAQ;EAChD,IAAI,QAAQ,eAAe,OAAO;EAClC,IAAI,QAAQ,aAAa,OAAO;EAChC,OAAO,MAAM;CACf,CAAC;AACH"}
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.10.8a0997add",
4
+ "version": "11.23.1-canary.16.f11951ce3",
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.10.8a0997add",
80
- "@trpc/server": "11.23.1-canary.10.8a0997add",
79
+ "@trpc/client": "11.23.1-canary.16.f11951ce3",
80
+ "@trpc/server": "11.23.1-canary.16.f11951ce3",
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.10.8a0997add",
93
- "@trpc/server": "11.23.1-canary.10.8a0997add",
92
+ "@trpc/client": "11.23.1-canary.16.f11951ce3",
93
+ "@trpc/server": "11.23.1-canary.16.f11951ce3",
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": "8a0997add7ad974cb1982981abd69d335962aaad"
115
+ "gitHead": "f11951ce3a42a2e6e0f1c42cde026480ca52ffd3"
116
116
  }
@@ -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 { ...args1, queryKey, queryFn };
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
  },