@trpc/tanstack-react-query 11.1.3-alpha-tmp-tsdown.24 → 11.1.3-alpha-tmp-tsdown.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/index.cjs +465 -0
  2. package/dist/index.d.cts +420 -0
  3. package/dist/index.d.cts.map +1 -0
  4. package/dist/index.d.mts +420 -8
  5. package/dist/index.d.mts.map +1 -0
  6. package/dist/index.mjs +441 -4
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +12 -11
  9. package/dist/_virtual/rolldown_runtime.js +0 -30
  10. package/dist/index.d.ts +0 -8
  11. package/dist/index.js +0 -7
  12. package/dist/internals/Context.d.mts +0 -27
  13. package/dist/internals/Context.d.mts.map +0 -1
  14. package/dist/internals/Context.d.ts +0 -27
  15. package/dist/internals/Context.d.ts.map +0 -1
  16. package/dist/internals/Context.js +0 -46
  17. package/dist/internals/Context.mjs +0 -46
  18. package/dist/internals/Context.mjs.map +0 -1
  19. package/dist/internals/createOptionsProxy.d.mts +0 -160
  20. package/dist/internals/createOptionsProxy.d.mts.map +0 -1
  21. package/dist/internals/createOptionsProxy.d.ts +0 -160
  22. package/dist/internals/createOptionsProxy.d.ts.map +0 -1
  23. package/dist/internals/createOptionsProxy.js +0 -111
  24. package/dist/internals/createOptionsProxy.mjs +0 -111
  25. package/dist/internals/createOptionsProxy.mjs.map +0 -1
  26. package/dist/internals/infiniteQueryOptions.d.mts +0 -54
  27. package/dist/internals/infiniteQueryOptions.d.mts.map +0 -1
  28. package/dist/internals/infiniteQueryOptions.d.ts +0 -54
  29. package/dist/internals/infiniteQueryOptions.d.ts.map +0 -1
  30. package/dist/internals/infiniteQueryOptions.js +0 -32
  31. package/dist/internals/infiniteQueryOptions.mjs +0 -32
  32. package/dist/internals/infiniteQueryOptions.mjs.map +0 -1
  33. package/dist/internals/mutationOptions.d.mts +0 -33
  34. package/dist/internals/mutationOptions.d.mts.map +0 -1
  35. package/dist/internals/mutationOptions.d.ts +0 -33
  36. package/dist/internals/mutationOptions.d.ts.map +0 -1
  37. package/dist/internals/mutationOptions.js +0 -34
  38. package/dist/internals/mutationOptions.mjs +0 -35
  39. package/dist/internals/mutationOptions.mjs.map +0 -1
  40. package/dist/internals/queryOptions.d.mts +0 -45
  41. package/dist/internals/queryOptions.d.mts.map +0 -1
  42. package/dist/internals/queryOptions.d.ts +0 -45
  43. package/dist/internals/queryOptions.d.ts.map +0 -1
  44. package/dist/internals/queryOptions.js +0 -35
  45. package/dist/internals/queryOptions.mjs +0 -35
  46. package/dist/internals/queryOptions.mjs.map +0 -1
  47. package/dist/internals/subscriptionOptions.d.mts +0 -65
  48. package/dist/internals/subscriptionOptions.d.mts.map +0 -1
  49. package/dist/internals/subscriptionOptions.d.ts +0 -65
  50. package/dist/internals/subscriptionOptions.d.ts.map +0 -1
  51. package/dist/internals/subscriptionOptions.js +0 -132
  52. package/dist/internals/subscriptionOptions.mjs +0 -131
  53. package/dist/internals/subscriptionOptions.mjs.map +0 -1
  54. package/dist/internals/types.d.mts +0 -82
  55. package/dist/internals/types.d.mts.map +0 -1
  56. package/dist/internals/types.d.ts +0 -82
  57. package/dist/internals/types.d.ts.map +0 -1
  58. package/dist/internals/utils.js +0 -89
  59. package/dist/internals/utils.mjs +0 -84
  60. package/dist/internals/utils.mjs.map +0 -1
@@ -1,45 +0,0 @@
1
- import { ResolverDef, TRPCQueryBaseOptions, TRPCQueryKey, TRPCQueryOptionsResult } from "./types.js";
2
- import { DataTag, DefinedInitialDataOptions, QueryClient, SkipToken, UndefinedInitialDataOptions, UnusedSkipTokenOptions } from "@tanstack/react-query";
3
- import { TRPCClientErrorLike, TRPCUntypedClient } from "@trpc/client";
4
- import { DistributiveOmit, coerceAsyncIterableToArray } from "@trpc/server/unstable-core-do-not-import";
5
-
6
- //#region src/internals/queryOptions.d.ts
7
- type ReservedOptions = 'queryKey' | 'queryFn' | 'queryHashFn' | 'queryHash';
8
- interface UndefinedTRPCQueryOptionsIn<TQueryFnData, TData, TError> extends DistributiveOmit<UndefinedInitialDataOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TData>, TRPCQueryKey>, ReservedOptions>, TRPCQueryBaseOptions {}
9
- interface UndefinedTRPCQueryOptionsOut<TQueryFnData, TOutput, TError> extends UndefinedInitialDataOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TOutput>, TRPCQueryKey>, TRPCQueryOptionsResult {
10
- queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TOutput>, TError>;
11
- }
12
- interface DefinedTRPCQueryOptionsIn<TQueryFnData, TData, TError> extends DistributiveOmit<DefinedInitialDataOptions<coerceAsyncIterableToArray<NoInfer<TQueryFnData>>, TError, coerceAsyncIterableToArray<TData>, TRPCQueryKey>, ReservedOptions>, TRPCQueryBaseOptions {}
13
- interface DefinedTRPCQueryOptionsOut<TQueryFnData, TData, TError> extends DefinedInitialDataOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TData>, TRPCQueryKey>, TRPCQueryOptionsResult {
14
- queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TData>, TError>;
15
- }
16
- interface UnusedSkipTokenTRPCQueryOptionsIn<TQueryFnData, TData, TError> extends DistributiveOmit<UnusedSkipTokenOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TData>, TRPCQueryKey>, ReservedOptions>, TRPCQueryBaseOptions {}
17
- interface UnusedSkipTokenTRPCQueryOptionsOut<TQueryFnData, TOutput, TError> extends UnusedSkipTokenOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TOutput>, TRPCQueryKey>, TRPCQueryOptionsResult {
18
- queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TOutput>, TError>;
19
- }
20
- interface TRPCQueryOptions<TDef extends ResolverDef> {
21
- <TQueryFnData extends TDef['output'], TData = TQueryFnData>(input: TDef['input'] | SkipToken, opts: DefinedTRPCQueryOptionsIn<TQueryFnData, TData, TRPCClientErrorLike<{
22
- transformer: TDef['transformer'];
23
- errorShape: TDef['errorShape'];
24
- }>>): DefinedTRPCQueryOptionsOut<TQueryFnData, TData, TRPCClientErrorLike<{
25
- transformer: TDef['transformer'];
26
- errorShape: TDef['errorShape'];
27
- }>>;
28
- <TQueryFnData extends TDef['output'], TData = TQueryFnData>(input: TDef['input'], opts?: UnusedSkipTokenTRPCQueryOptionsIn<TQueryFnData, TData, TRPCClientErrorLike<{
29
- transformer: TDef['transformer'];
30
- errorShape: TDef['errorShape'];
31
- }>>): UnusedSkipTokenTRPCQueryOptionsOut<TQueryFnData, TData, TRPCClientErrorLike<{
32
- transformer: TDef['transformer'];
33
- errorShape: TDef['errorShape'];
34
- }>>;
35
- <TQueryFnData extends TDef['output'], TData = TQueryFnData>(input: TDef['input'] | SkipToken, opts?: UndefinedTRPCQueryOptionsIn<TQueryFnData, TData, TRPCClientErrorLike<{
36
- transformer: TDef['transformer'];
37
- errorShape: TDef['errorShape'];
38
- }>>): UndefinedTRPCQueryOptionsOut<TQueryFnData, TData, TRPCClientErrorLike<{
39
- transformer: TDef['transformer'];
40
- errorShape: TDef['errorShape'];
41
- }>>;
42
- }
43
- //#endregion
44
- export { TRPCQueryOptions };
45
- //# sourceMappingURL=queryOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryOptions.d.ts","names":[],"sources":["../../src/internals/queryOptions.ts"],"sourcesContent":[],"mappings":";;;;;;KA6BK,eAAA;UAEK,iEACA,iBACJ,4BACE,2BAA2B,eAC3B,QACA,2BAA2B,QAC3B,eAEF,kBAEF,sBApBa;AAQG,UAcV,4BAZ2B,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,CAAA,SAa3B,2BAb2B,CAc/B,0BAd+B,CAcJ,YAdI,CAAA,EAe/B,MAf+B,EAgB/B,0BAhB+B,CAgBJ,OAhBI,CAAA,EAiB/B,YAjB+B,CAAA,EAmBjC,sBAnBiC,CAAA;EAAA,QAAA,EAoBzB,OApByB,CAoBjB,YApBiB,EAoBH,0BApBG,CAoBwB,OApBxB,CAAA,EAoBkC,MApBlC,CAAA;;UAuB3B,yBApBF,CAAA,YAAA,EAAA,KAAA,EAAA,MAAA,CAAA,SAqBE,gBArBF,CAsBF,yBAtBE,CAuBA,0BAvBA,CAuB2B,OAvB3B,CAuBmC,YAvBnC,CAAA,CAAA,EAwBA,MAxBA,EAyBA,0BAzBA,CAyB2B,KAzB3B,CAAA,EA0BA,YA1BA,CAAA,EA4BF,eA5BE,CAAA,EA8BJ,oBA9BI,CAAA;UAgCE,0BA9ByB,CAAA,YAAA,EAAA,KAAA,EAAA,MAAA,CAAA,SA+BzB,yBA/ByB,CAgC7B,0BAhC6B,CAgCF,YAhCE,CAAA,EAiC7B,MAjC6B,EAkC7B,0BAlC6B,CAkCF,KAlCE,CAAA,EAmC7B,YAnC6B,CAAA,EAqC/B,sBArC+B,CAAA;EAAK,QAAhC,EAsCI,OAtCJ,CAsCY,YAtCZ,EAsC0B,0BAtC1B,CAsCqD,KAtCrD,CAAA,EAsC6D,MAtC7D,CAAA;;UAyCE,iCA5CJ,CAAA,YAAA,EAAA,KAAA,EAAA,MAAA,CAAA,SA6CI,gBA7CJ,CA8CA,sBA9CA,CA+CE,0BA/CF,CA+C6B,YA/C7B,CAAA,EAgDE,MAhDF,EAiDE,0BAjDF,CAiD6B,KAjD7B,CAAA,EAkDE,YAlDF,CAAA,EAoDA,eApDA,CAAA,EAsDF,oBAtDE,CAAA;UAwDI,kCAzDA,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,CAAA,SA0DA,sBA1DA,CA2DJ,0BA3DI,CA2DuB,YA3DvB,CAAA,EA4DJ,MA5DI,EA6DJ,0BA7DI,CA6DuB,OA7DvB,CAAA,EA8DJ,YA9DI,CAAA,EAgEN,sBAhEM,CAAA;EAAgB,QAStB,EAwDQ,OAxDR,CAwDgB,YAxDhB,EAwD8B,0BAxD9B,CAwDyD,OAxDzD,CAAA,EAwDmE,MAxDnE,CAAA;AAAoB;AAEd,UAyDO,gBAzDP,CAAA,aAyDqC,WAzDT,CAAA,CAAA;EAAA,CAAA,qBA0Dd,IA1Dc,CAAA,QAAA,CAAA,EAAA,QA0DU,YA1DV,CAAA,CAAA,KAAA,EA2D3B,IA3D2B,CAAA,OAAA,CAAA,GA2DX,SA3DW,EAAA,IAAA,EA4D5B,yBA5D4B,CA6DhC,YA7DgC,EA8DhC,KA9DgC,EA+DhC,mBA/DgC,CAAA;IAEL,WAAA,EA8DZ,IA9DY,CAAA,aAAA,CAAA;IAA3B,UAAA,EA+Dc,IA/Dd,CAAA,YAAA,CAAA;EAA0B,CAAA,CAAA,CAC1B,CAAA,EAiED,0BAjEC,CAkEF,YAlEE,EAmEF,KAnEE,EAoEF,mBApEE,CAAA;IAC2B,WAAA,EAoEd,IApEc,CAAA,aAAA,CAAA;IAA3B,UAAA,EAqEY,IArEZ,CAAA,YAAA,CAAA;EAA0B,CAAA,CAAA,CAC1B;EAAY,CAAA,qBAuEM,IApEJ,CAAA,QAAA,CAAA,EAAA,QAoE4B,YApE5B,CAAA,CAAA,KAAA,EAqET,IArES,CAAA,OAAA,CAAA,EAAA,IAAmD,CAAnD,EAsET,iCAtES,CAuEd,YAvEc,EAwEd,KAxEc,EAyEd,mBAzEc,CAAA;IAAyC,WAAA,EA0ExC,IA1EwC,CAAA,aAAA,CAAA;IAA3B,UAAA,EA2Ed,IA3Ec,CAAA,YAAA,CAAA;EAA0B,CAAA,CAAA,CAAW,CAAA,EA8ElE,kCA9EkE,CA+EnE,YA/EmE,EAgFnE,KAhFmE,EAiFnE,mBAjFmE,CAAA;IAA3D,WAAA,EAkFO,IAlFP,CAAA,aAAA,CAAA;IAPF,UAAA,EA0FQ,IA1FR,CAAA,YAAA,CAAA;EAA2B,CAAA,CAAA,CAMjC;EAAsB,CAAA,qBAuFF,IAvFE,CAAA,QAAA,CAAA,EAAA,QAuFsB,YAvFtB,CAAA,CAAA,KAAA,EAwFf,IAxFe,CAAA,OAAA,CAAA,GAwFC,SAxFD,EAAA,IAOiB,CAPjB,EAyFf,2BAzFe,CA0FpB,YA1FoB,EA2FpB,KA3FoB,EA4FpB,mBA5FoB,CAAA;IAIhB,WAAA,EAyFW,IAzFX,CAAA,aAAyB,CAAA;IAAA,UAAA,EA0Ff,IA1Fe,CAAA,YAAA,CAAA;EAAA,CAAA,CAAA,CAGQ,CAAA,EA0FtC,4BA1FsC,CA2FvC,YA3FuC,EA4FvC,KA5FuC,EA6FvC,mBA7FuC,CAAA;IAAR,WAAA,EA8FhB,IA9FgB,CAAA,aAAA,CAAA;IAA3B,UAAA,EA+FU,IA/FV,CAAA,YAAA,CAAA;EAA0B,CAAA,CAAA,CAC1B"}
@@ -1,35 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
- const require_utils = require('./utils.js');
3
- const __tanstack_react_query = require_rolldown_runtime.__toESM(require("@tanstack/react-query"));
4
- const __trpc_server_unstable_core_do_not_import = require_rolldown_runtime.__toESM(require("@trpc/server/unstable-core-do-not-import"));
5
-
6
- //#region src/internals/queryOptions.ts
7
- /**
8
- * @internal
9
- */
10
- function trpcQueryOptions(args) {
11
- const { input, query, path, queryKey, opts } = args;
12
- const queryClient = require_utils.unwrapLazyArg(args.queryClient);
13
- const inputIsSkipToken = input === __tanstack_react_query.skipToken;
14
- const queryFn = async (queryFnContext) => {
15
- const actualOpts = {
16
- ...opts,
17
- trpc: {
18
- ...opts?.trpc,
19
- ...opts?.trpc?.abortOnUnmount ? { signal: queryFnContext.signal } : { signal: null }
20
- }
21
- };
22
- const queryKey$1 = queryFnContext.queryKey;
23
- const result = await query(...require_utils.getClientArgs(queryKey$1, actualOpts));
24
- if ((0, __trpc_server_unstable_core_do_not_import.isAsyncIterable)(result)) return require_utils.buildQueryFromAsyncIterable(result, queryClient, queryKey$1);
25
- return result;
26
- };
27
- return Object.assign((0, __tanstack_react_query.queryOptions)({
28
- ...opts,
29
- queryKey,
30
- queryFn: inputIsSkipToken ? __tanstack_react_query.skipToken : queryFn
31
- }), { trpc: require_utils.createTRPCOptionsResult({ path }) });
32
- }
33
-
34
- //#endregion
35
- exports.trpcQueryOptions = trpcQueryOptions;
@@ -1,35 +0,0 @@
1
- import { buildQueryFromAsyncIterable, createTRPCOptionsResult, getClientArgs, unwrapLazyArg } from "./utils.mjs";
2
- import { queryOptions, skipToken } from "@tanstack/react-query";
3
- import { isAsyncIterable } from "@trpc/server/unstable-core-do-not-import";
4
-
5
- //#region src/internals/queryOptions.ts
6
- /**
7
- * @internal
8
- */
9
- function trpcQueryOptions(args) {
10
- const { input, query, path, queryKey, opts } = args;
11
- const queryClient = unwrapLazyArg(args.queryClient);
12
- const inputIsSkipToken = input === skipToken;
13
- const queryFn = async (queryFnContext) => {
14
- const actualOpts = {
15
- ...opts,
16
- trpc: {
17
- ...opts?.trpc,
18
- ...opts?.trpc?.abortOnUnmount ? { signal: queryFnContext.signal } : { signal: null }
19
- }
20
- };
21
- const queryKey$1 = queryFnContext.queryKey;
22
- const result = await query(...getClientArgs(queryKey$1, actualOpts));
23
- if (isAsyncIterable(result)) return buildQueryFromAsyncIterable(result, queryClient, queryKey$1);
24
- return result;
25
- };
26
- return Object.assign(queryOptions({
27
- ...opts,
28
- queryKey,
29
- queryFn: inputIsSkipToken ? skipToken : queryFn
30
- }), { trpc: createTRPCOptionsResult({ path }) });
31
- }
32
-
33
- //#endregion
34
- export { trpcQueryOptions };
35
- //# sourceMappingURL=queryOptions.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryOptions.mjs","names":["args: {\n input: unknown;\n query: typeof TRPCUntypedClient.prototype.query;\n queryClient: QueryClient | (() => QueryClient);\n path: readonly string[];\n queryKey: TRPCQueryKey;\n opts: AnyTRPCQueryOptionsIn;\n}","queryFn: QueryFunction<unknown, TRPCQueryKey>","queryKey"],"sources":["../../src/internals/queryOptions.ts"],"sourcesContent":["import type {\n DataTag,\n DefinedInitialDataOptions,\n QueryClient,\n QueryFunction,\n SkipToken,\n UndefinedInitialDataOptions,\n UnusedSkipTokenOptions,\n} from '@tanstack/react-query';\nimport { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';\nimport type {\n coerceAsyncIterableToArray,\n DistributiveOmit,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';\nimport type {\n ResolverDef,\n TRPCQueryBaseOptions,\n TRPCQueryKey,\n TRPCQueryOptionsResult,\n} from './types';\nimport {\n buildQueryFromAsyncIterable,\n createTRPCOptionsResult,\n getClientArgs,\n unwrapLazyArg,\n} from './utils';\n\ntype ReservedOptions = 'queryKey' | 'queryFn' | 'queryHashFn' | 'queryHash';\n\ninterface UndefinedTRPCQueryOptionsIn<TQueryFnData, TData, TError>\n extends DistributiveOmit<\n UndefinedInitialDataOptions<\n coerceAsyncIterableToArray<TQueryFnData>,\n TError,\n coerceAsyncIterableToArray<TData>,\n TRPCQueryKey\n >,\n ReservedOptions\n >,\n TRPCQueryBaseOptions {}\n\ninterface UndefinedTRPCQueryOptionsOut<TQueryFnData, TOutput, TError>\n extends UndefinedInitialDataOptions<\n coerceAsyncIterableToArray<TQueryFnData>,\n TError,\n coerceAsyncIterableToArray<TOutput>,\n TRPCQueryKey\n >,\n TRPCQueryOptionsResult {\n queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TOutput>, TError>;\n}\n\ninterface DefinedTRPCQueryOptionsIn<TQueryFnData, TData, TError>\n extends DistributiveOmit<\n DefinedInitialDataOptions<\n coerceAsyncIterableToArray<NoInfer<TQueryFnData>>,\n TError,\n coerceAsyncIterableToArray<TData>,\n TRPCQueryKey\n >,\n ReservedOptions\n >,\n TRPCQueryBaseOptions {}\n\ninterface DefinedTRPCQueryOptionsOut<TQueryFnData, TData, TError>\n extends DefinedInitialDataOptions<\n coerceAsyncIterableToArray<TQueryFnData>,\n TError,\n coerceAsyncIterableToArray<TData>,\n TRPCQueryKey\n >,\n TRPCQueryOptionsResult {\n queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TData>, TError>;\n}\n\ninterface UnusedSkipTokenTRPCQueryOptionsIn<TQueryFnData, TData, TError>\n extends DistributiveOmit<\n UnusedSkipTokenOptions<\n coerceAsyncIterableToArray<TQueryFnData>,\n TError,\n coerceAsyncIterableToArray<TData>,\n TRPCQueryKey\n >,\n ReservedOptions\n >,\n TRPCQueryBaseOptions {}\n\ninterface UnusedSkipTokenTRPCQueryOptionsOut<TQueryFnData, TOutput, TError>\n extends UnusedSkipTokenOptions<\n coerceAsyncIterableToArray<TQueryFnData>,\n TError,\n coerceAsyncIterableToArray<TOutput>,\n TRPCQueryKey\n >,\n TRPCQueryOptionsResult {\n queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TOutput>, TError>;\n}\n\nexport interface TRPCQueryOptions<TDef extends ResolverDef> {\n <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n input: TDef['input'] | SkipToken,\n opts: DefinedTRPCQueryOptionsIn<\n TQueryFnData,\n TData,\n TRPCClientErrorLike<{\n transformer: TDef['transformer'];\n errorShape: TDef['errorShape'];\n }>\n >,\n ): DefinedTRPCQueryOptionsOut<\n TQueryFnData,\n TData,\n TRPCClientErrorLike<{\n transformer: TDef['transformer'];\n errorShape: TDef['errorShape'];\n }>\n >;\n <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n input: TDef['input'],\n opts?: UnusedSkipTokenTRPCQueryOptionsIn<\n TQueryFnData,\n TData,\n TRPCClientErrorLike<{\n transformer: TDef['transformer'];\n errorShape: TDef['errorShape'];\n }>\n >,\n ): UnusedSkipTokenTRPCQueryOptionsOut<\n TQueryFnData,\n TData,\n TRPCClientErrorLike<{\n transformer: TDef['transformer'];\n errorShape: TDef['errorShape'];\n }>\n >;\n <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n input: TDef['input'] | SkipToken,\n opts?: UndefinedTRPCQueryOptionsIn<\n TQueryFnData,\n TData,\n TRPCClientErrorLike<{\n transformer: TDef['transformer'];\n errorShape: TDef['errorShape'];\n }>\n >,\n ): UndefinedTRPCQueryOptionsOut<\n TQueryFnData,\n TData,\n TRPCClientErrorLike<{\n transformer: TDef['transformer'];\n errorShape: TDef['errorShape'];\n }>\n >;\n}\n\ntype AnyTRPCQueryOptionsIn =\n | DefinedTRPCQueryOptionsIn<unknown, unknown, unknown>\n | UnusedSkipTokenTRPCQueryOptionsIn<unknown, unknown, unknown>\n | UndefinedTRPCQueryOptionsIn<unknown, unknown, unknown>;\n\ntype AnyTRPCQueryOptionsOut =\n | DefinedTRPCQueryOptionsOut<unknown, unknown, unknown>\n | UnusedSkipTokenTRPCQueryOptionsOut<unknown, unknown, unknown>\n | UndefinedTRPCQueryOptionsOut<unknown, unknown, unknown>;\n\n/**\n * @internal\n */\nexport function trpcQueryOptions(args: {\n input: unknown;\n query: typeof TRPCUntypedClient.prototype.query;\n queryClient: QueryClient | (() => QueryClient);\n path: readonly string[];\n queryKey: TRPCQueryKey;\n opts: AnyTRPCQueryOptionsIn;\n}): AnyTRPCQueryOptionsOut {\n const { input, query, path, queryKey, opts } = args;\n const queryClient = unwrapLazyArg(args.queryClient);\n\n const inputIsSkipToken = input === skipToken;\n\n const queryFn: QueryFunction<unknown, TRPCQueryKey> = async (\n queryFnContext,\n ) => {\n const actualOpts = {\n ...opts,\n trpc: {\n ...opts?.trpc,\n ...(opts?.trpc?.abortOnUnmount\n ? { signal: queryFnContext.signal }\n : { signal: null }),\n },\n };\n const queryKey = queryFnContext.queryKey;\n\n const result = await query(...getClientArgs(queryKey, actualOpts));\n\n if (isAsyncIterable(result)) {\n return buildQueryFromAsyncIterable(result, queryClient, queryKey);\n }\n\n return result;\n };\n\n return Object.assign(\n queryOptions({\n ...opts,\n queryKey,\n queryFn: inputIsSkipToken ? skipToken : queryFn,\n }),\n { trpc: createTRPCOptionsResult({ path }) },\n );\n}\n"],"mappings":";;;;;;;;AA0KA,SAAgB,iBAAiBA,MAON;CACzB,MAAM,EAAE,OAAO,OAAO,MAAM,UAAU,MAAM,GAAG;CAC/C,MAAM,cAAc,cAAc,KAAK,YAAY;CAEnD,MAAM,mBAAmB,UAAU;CAEnC,MAAMC,UAAgD,OACpD,mBACG;EACH,MAAM,aAAa;GACjB,GAAG;GACH,MAAM;IACJ,GAAG,MAAM;IACT,GAAI,MAAM,MAAM,iBACZ,EAAE,QAAQ,eAAe,OAAQ,IACjC,EAAE,QAAQ,KAAM;GACrB;EACF;EACD,MAAMC,aAAW,eAAe;EAEhC,MAAM,SAAS,MAAM,MAAM,GAAG,cAAcA,YAAU,WAAW,CAAC;AAElE,MAAI,gBAAgB,OAAO,CACzB,QAAO,4BAA4B,QAAQ,aAAaA,WAAS;AAGnE,SAAO;CACR;AAED,QAAO,OAAO,OACZ,aAAa;EACX,GAAG;EACH;EACA,SAAS,mBAAmB,YAAY;CACzC,EAAC,EACF,EAAE,MAAM,wBAAwB,EAAE,KAAM,EAAC,CAAE,EAC5C;AACF"}
@@ -1,65 +0,0 @@
1
- import { ResolverDef, TRPCQueryKey, TRPCQueryOptionsResult } from "./types.mjs";
2
- import { TRPCClientErrorLike, TRPCUntypedClient } from "@trpc/client";
3
- import { SkipToken } from "@tanstack/react-query";
4
- import { inferAsyncIterableYield } from "@trpc/server/unstable-core-do-not-import";
5
- import { TRPCConnectionState } from "@trpc/client/unstable-internals";
6
- import { Unsubscribable } from "@trpc/server/observable";
7
-
8
- //#region src/internals/subscriptionOptions.d.ts
9
- interface BaseTRPCSubscriptionOptionsIn<TOutput, TError> {
10
- enabled?: boolean;
11
- onStarted?: () => void;
12
- onData?: (data: inferAsyncIterableYield<TOutput>) => void;
13
- onError?: (err: TError) => void;
14
- onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
15
- }
16
- interface UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError> {
17
- onStarted?: () => void;
18
- onData?: (data: inferAsyncIterableYield<TOutput>) => void;
19
- onError?: (err: TError) => void;
20
- onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
21
- }
22
- interface TRPCSubscriptionOptionsOut<TOutput, TError> extends UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>, TRPCQueryOptionsResult {
23
- enabled: boolean;
24
- queryKey: TRPCQueryKey;
25
- subscribe: (innerOpts: UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>) => Unsubscribable;
26
- }
27
- interface TRPCSubscriptionOptions<TDef extends ResolverDef> {
28
- (input: TDef['input'], opts?: UnusedSkipTokenTRPCSubscriptionOptionsIn<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>): TRPCSubscriptionOptionsOut<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>;
29
- (input: TDef['input'] | SkipToken, opts?: BaseTRPCSubscriptionOptionsIn<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>): TRPCSubscriptionOptionsOut<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>;
30
- }
31
- type TRPCSubscriptionStatus = 'idle' | 'connecting' | 'pending' | 'error';
32
- interface TRPCSubscriptionBaseResult<TOutput, TError> {
33
- status: TRPCSubscriptionStatus;
34
- data: undefined | TOutput;
35
- error: null | TError;
36
- /**
37
- * Reset the subscription
38
- */
39
- reset: () => void;
40
- }
41
- interface TRPCSubscriptionIdleResult<TOutput> extends TRPCSubscriptionBaseResult<TOutput, null> {
42
- status: 'idle';
43
- data: undefined;
44
- error: null;
45
- }
46
- interface TRPCSubscriptionConnectingResult<TOutput, TError> extends TRPCSubscriptionBaseResult<TOutput, TError> {
47
- status: 'connecting';
48
- data: undefined | TOutput;
49
- error: TError | null;
50
- }
51
- interface TRPCSubscriptionPendingResult<TOutput> extends TRPCSubscriptionBaseResult<TOutput, undefined> {
52
- status: 'pending';
53
- data: TOutput | undefined;
54
- error: null;
55
- }
56
- interface TRPCSubscriptionErrorResult<TOutput, TError> extends TRPCSubscriptionBaseResult<TOutput, TError> {
57
- status: 'error';
58
- data: TOutput | undefined;
59
- error: TError;
60
- }
61
- type TRPCSubscriptionResult<TOutput, TError> = TRPCSubscriptionIdleResult<TOutput> | TRPCSubscriptionConnectingResult<TOutput, TError> | TRPCSubscriptionErrorResult<TOutput, TError> | TRPCSubscriptionPendingResult<TOutput>;
62
- declare function useSubscription<TOutput, TError>(opts: TRPCSubscriptionOptionsOut<TOutput, TError>): TRPCSubscriptionResult<TOutput, TError>;
63
- //#endregion
64
- export { TRPCSubscriptionConnectingResult, TRPCSubscriptionErrorResult, TRPCSubscriptionIdleResult, TRPCSubscriptionOptions, TRPCSubscriptionPendingResult, TRPCSubscriptionResult, TRPCSubscriptionStatus, useSubscription };
65
- //# sourceMappingURL=subscriptionOptions.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptionOptions.d.mts","names":[],"sources":["../../src/internals/subscriptionOptions.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- import { ResolverDef, TRPCQueryKey, TRPCQueryOptionsResult } from "./types.js";
2
- import { SkipToken } from "@tanstack/react-query";
3
- import { TRPCClientErrorLike, TRPCUntypedClient } from "@trpc/client";
4
- import { inferAsyncIterableYield } from "@trpc/server/unstable-core-do-not-import";
5
- import { TRPCConnectionState } from "@trpc/client/unstable-internals";
6
- import { Unsubscribable } from "@trpc/server/observable";
7
-
8
- //#region src/internals/subscriptionOptions.d.ts
9
- interface BaseTRPCSubscriptionOptionsIn<TOutput, TError> {
10
- enabled?: boolean;
11
- onStarted?: () => void;
12
- onData?: (data: inferAsyncIterableYield<TOutput>) => void;
13
- onError?: (err: TError) => void;
14
- onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
15
- }
16
- interface UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError> {
17
- onStarted?: () => void;
18
- onData?: (data: inferAsyncIterableYield<TOutput>) => void;
19
- onError?: (err: TError) => void;
20
- onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
21
- }
22
- interface TRPCSubscriptionOptionsOut<TOutput, TError> extends UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>, TRPCQueryOptionsResult {
23
- enabled: boolean;
24
- queryKey: TRPCQueryKey;
25
- subscribe: (innerOpts: UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>) => Unsubscribable;
26
- }
27
- interface TRPCSubscriptionOptions<TDef extends ResolverDef> {
28
- (input: TDef['input'], opts?: UnusedSkipTokenTRPCSubscriptionOptionsIn<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>): TRPCSubscriptionOptionsOut<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>;
29
- (input: TDef['input'] | SkipToken, opts?: BaseTRPCSubscriptionOptionsIn<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>): TRPCSubscriptionOptionsOut<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>;
30
- }
31
- type TRPCSubscriptionStatus = 'idle' | 'connecting' | 'pending' | 'error';
32
- interface TRPCSubscriptionBaseResult<TOutput, TError> {
33
- status: TRPCSubscriptionStatus;
34
- data: undefined | TOutput;
35
- error: null | TError;
36
- /**
37
- * Reset the subscription
38
- */
39
- reset: () => void;
40
- }
41
- interface TRPCSubscriptionIdleResult<TOutput> extends TRPCSubscriptionBaseResult<TOutput, null> {
42
- status: 'idle';
43
- data: undefined;
44
- error: null;
45
- }
46
- interface TRPCSubscriptionConnectingResult<TOutput, TError> extends TRPCSubscriptionBaseResult<TOutput, TError> {
47
- status: 'connecting';
48
- data: undefined | TOutput;
49
- error: TError | null;
50
- }
51
- interface TRPCSubscriptionPendingResult<TOutput> extends TRPCSubscriptionBaseResult<TOutput, undefined> {
52
- status: 'pending';
53
- data: TOutput | undefined;
54
- error: null;
55
- }
56
- interface TRPCSubscriptionErrorResult<TOutput, TError> extends TRPCSubscriptionBaseResult<TOutput, TError> {
57
- status: 'error';
58
- data: TOutput | undefined;
59
- error: TError;
60
- }
61
- type TRPCSubscriptionResult<TOutput, TError> = TRPCSubscriptionIdleResult<TOutput> | TRPCSubscriptionConnectingResult<TOutput, TError> | TRPCSubscriptionErrorResult<TOutput, TError> | TRPCSubscriptionPendingResult<TOutput>;
62
- declare function useSubscription<TOutput, TError>(opts: TRPCSubscriptionOptionsOut<TOutput, TError>): TRPCSubscriptionResult<TOutput, TError>;
63
- //#endregion
64
- export { TRPCSubscriptionConnectingResult, TRPCSubscriptionErrorResult, TRPCSubscriptionIdleResult, TRPCSubscriptionOptions, TRPCSubscriptionPendingResult, TRPCSubscriptionResult, TRPCSubscriptionStatus, useSubscription };
65
- //# sourceMappingURL=subscriptionOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptionOptions.d.ts","names":[],"sources":["../../src/internals/subscriptionOptions.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAcU;;EAAA,SAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAA6B,MAAA,CAAA,EAAA,CAAA,IAAA,EAGrB,uBAHqB,CAGG,OAHH,CAAA,EAAA,GAAA,IAAA;EAAA,OAGG,CAAA,EAAA,CAAA,GAAA,EACxB,MADwB,EAAA,GAAA,IAAA;EAAO,uBAA/B,CAAA,EAAA,CAAA,KAAA,EAEkB,mBAFlB,CAEsC,MAFtC,CAAA,EAAA,GAAA,IAAA;;UAKR,wCAH8C,CAAA,OAAA,EAAA,MAAA,CAAA,CAAA;EAAM,SAA1B,CAAA,EAAA,GAAA,GAAA,IAAA;EAAmB,MAAA,CAAA,EAAA,CAAA,IAAA,EAKrC,uBALqC,CAKb,OALa,CAAA,EAAA,GAAA,IAAA;EAG7C,OAAA,CAAA,EAAA,CAAA,GAAA,EAGQ,MAHR,EAAA,GAAA,IAAA;EAAwC,uBAAA,CAAA,EAAA,CAAA,KAAA,EAId,mBAJc,CAIM,MAJN,CAAA,EAAA,GAAA,IAAA;;UAOxC,0BALQ,CAAA,OAAA,EAAA,MAAA,CAAA,SAMR,wCANQ,CAMiC,OANjC,EAM0C,MAN1C,CAAA,EAOd,sBAPc,CAAA;EAAuB,OACvB,EAAA,OAAA;EAAM,QACgC,EAO5C,YAP4C;EAAM,SAA1B,EAAA,CAAA,SAAA,EASrB,wCATqB,CASoB,OATpB,EAS6B,MAT7B,CAAA,EAAA,GAU7B,cAV6B;AAAmB;AAG7C,UAUO,uBAVmB,CAAA,aAUkB,WAVlB,CAAA,CAAA;EAAA,CAAA,KAAA,EAYzB,IAZyB,CAAA,OAAA,CAAA,EAAA,IAAA,CAAA,EAazB,wCAbyB,CAc9B,uBAd8B,CAcN,IAdM,CAAA,QAAA,CAAA,CAAA,EAe9B,mBAf8B,CAeV,IAfU,CAAA,CAAA,CAAA,EAiB/B,0BAjB+B,CAkBhC,uBAlBgC,CAkBR,IAlBQ,CAAA,QAAA,CAAA,CAAA,EAmBhC,mBAnBgC,CAmBZ,IAnBY,CAAA,CAAA;EAAA,CAAA,KACe,EAqBxC,IArBwC,CAAA,OAAA,CAAA,GAqBxB,SArBwB,EAAA,IAAA,CAAA,EAsBxC,6BAtBwC,CAuB7C,uBAvB6C,CAuBrB,IAvBqB,CAAA,QAAA,CAAA,CAAA,EAwB7C,mBAxB6C,CAwBzB,IAxByB,CAAA,CAAA,CAAA,EA0B9C,0BA1B8C,CA2B/C,uBA3B+C,CA2BvB,IA3BuB,CAAA,QAAA,CAAA,CAAA,EA4B/C,mBA5B+C,CA4B3B,IA5B2B,CAAA,CAAA;;AAGvC,KA4BA,sBAAA,GA5BA,MAAA,GAAA,YAAA,GAAA,SAAA,GAAA,OAAA;AAE4C,UAgCvC,0BAhCuC,CAAA,OAAA,EAAA,MAAA,CAAA,CAAA;EAAO,MAAE,EAiCvD,sBAjCuD;EAAM,IAAxD,EAAA,SAAA,GAkCK,OAlCL;EAAwC,KAChD,EAAA,IAAA,GAkCS,MAlCT;EAAc;;AALK;EAQT,KAAA,EAAA,GAAA,GAAA,IAAA;;AAAqC,UAsCrC,0BAtCqC,CAAA,OAAA,CAAA,SAuC5C,0BAvC4C,CAuCjB,OAvCiB,EAAA,IAAA,CAAA,CAAA;EAAW,MAEtD,EAAA,MAAA;EAAI,IAEe,EAAA,SAAA;EAAI,KAA5B,EAAA,IAAA;;AACA,UAwCW,gCAxCX,CAAA,OAAA,EAAA,MAAA,CAAA,SAyCI,0BAzCJ,CAyC+B,OAzC/B,EAyCwC,MAzCxC,CAAA,CAAA;EAAmB,MAFd,EAAA,YAAA;EAAwC,IAKvB,EAAA,SAAA,GAwCR,OAxCQ;EAAI,KAA5B,EAyCK,MAzCL,GAAA,IAAA;;AACA,UA2Ca,6BA3Cb,CAAA,OAAA,CAAA,SA4CM,0BA5CN,CA4CiC,OA5CjC,EAAA,SAAA,CAAA,CAAA;EAAmB,MAFlB,EAAA,SAAA;EAA0B,IAKpB,EA2CH,OA3CG,GAAA,SAAA;EAAI,KAAY,EAAA,IAAA;;AAErB,UA6CW,2BA7CX,CAAA,OAAA,EAAA,MAAA,CAAA,SA8CI,0BA9CJ,CA8C+B,OA9C/B,EA8CwC,MA9CxC,CAAA,CAAA;EAAuB,MACH,EAAA,OAAA;EAAI,IAAxB,EA+CE,OA/CF,GAAA,SAAA;EAAmB,KAFd,EAkDF,MAlDE;;AAKP,KAgDQ,sBAhDR,CAAA,OAAA,EAAA,MAAA,CAAA,GAiDA,0BAjDA,CAiD2B,OAjD3B,CAAA,GAkDA,gCAlDA,CAkDiC,OAlDjC,EAkD0C,MAlD1C,CAAA,GAmDA,2BAnDA,CAmD4B,OAnD5B,EAmDqC,MAnDrC,CAAA,GAoDA,6BApDA,CAoD8B,OApD9B,CAAA;AAoBa,iBAuED,eAvE2B,CAAA,OAAA,EAAA,MAAA,CAAA,CAAA,IAAA,EAwEnC,0BAxEmC,CAwER,OAxEQ,EAwEC,MAxED,CAAA,CAAA,EAyExC,sBAzEwC,CAyEjB,OAzEiB,EAyER,MAzEQ,CAAA"}
@@ -1,132 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
- const require_utils = require('./utils.js');
3
- const react = require_rolldown_runtime.__toESM(require("react"));
4
- const __tanstack_react_query = require_rolldown_runtime.__toESM(require("@tanstack/react-query"));
5
-
6
- //#region src/internals/subscriptionOptions.ts
7
- /**
8
- * @internal
9
- */
10
- const trpcSubscriptionOptions = (args) => {
11
- const { subscribe, path, queryKey, opts = {} } = args;
12
- const input = queryKey[1]?.input;
13
- const enabled = "enabled" in opts ? !!opts.enabled : input !== __tanstack_react_query.skipToken;
14
- const _subscribe = (innerOpts) => {
15
- return subscribe(path.join("."), input ?? void 0, innerOpts);
16
- };
17
- return {
18
- ...opts,
19
- enabled,
20
- subscribe: _subscribe,
21
- queryKey,
22
- trpc: require_utils.createTRPCOptionsResult({ path })
23
- };
24
- };
25
- function useSubscription(opts) {
26
- const optsRef = react.useRef(opts);
27
- optsRef.current = opts;
28
- const trackedProps = react.useRef(new Set([]));
29
- const addTrackedProp = react.useCallback((key) => {
30
- trackedProps.current.add(key);
31
- }, []);
32
- const currentSubscriptionRef = react.useRef(() => {});
33
- const reset = react.useCallback(() => {
34
- currentSubscriptionRef.current?.();
35
- updateState(getInitialState);
36
- if (!opts.enabled) return;
37
- const subscription = opts.subscribe({
38
- onStarted: () => {
39
- optsRef.current.onStarted?.();
40
- updateState((prev) => ({
41
- ...prev,
42
- status: "pending",
43
- error: null
44
- }));
45
- },
46
- onData: (data) => {
47
- optsRef.current.onData?.(data);
48
- updateState((prev) => ({
49
- ...prev,
50
- status: "pending",
51
- data,
52
- error: null
53
- }));
54
- },
55
- onError: (error) => {
56
- optsRef.current.onError?.(error);
57
- updateState((prev) => ({
58
- ...prev,
59
- status: "error",
60
- error
61
- }));
62
- },
63
- onConnectionStateChange: (result) => {
64
- optsRef.current.onConnectionStateChange?.(result);
65
- updateState((prev) => {
66
- switch (result.state) {
67
- case "connecting": return {
68
- ...prev,
69
- status: "connecting",
70
- error: result.error
71
- };
72
- case "pending": return prev;
73
- case "idle": return {
74
- ...prev,
75
- status: "idle",
76
- data: void 0,
77
- error: null
78
- };
79
- }
80
- });
81
- }
82
- });
83
- currentSubscriptionRef.current = () => {
84
- subscription.unsubscribe();
85
- };
86
- }, [(0, __tanstack_react_query.hashKey)(opts.queryKey), opts.enabled]);
87
- const getInitialState = react.useCallback(() => {
88
- return opts.enabled ? {
89
- data: void 0,
90
- error: null,
91
- status: "connecting",
92
- reset
93
- } : {
94
- data: void 0,
95
- error: null,
96
- status: "idle",
97
- reset
98
- };
99
- }, [opts.enabled, reset]);
100
- const resultRef = react.useRef(getInitialState());
101
- const [state, setState] = react.useState(trackResult(resultRef.current, addTrackedProp));
102
- state.reset = reset;
103
- const updateState = react.useCallback((callback) => {
104
- const prev = resultRef.current;
105
- const next = resultRef.current = callback(prev);
106
- let shouldUpdate = false;
107
- for (const key of trackedProps.current) if (prev[key] !== next[key]) {
108
- shouldUpdate = true;
109
- break;
110
- }
111
- if (shouldUpdate) setState(trackResult(next, addTrackedProp));
112
- }, [addTrackedProp]);
113
- react.useEffect(() => {
114
- if (!opts.enabled) return;
115
- reset();
116
- return () => {
117
- currentSubscriptionRef.current?.();
118
- };
119
- }, [reset, opts.enabled]);
120
- return state;
121
- }
122
- function trackResult(result, onTrackResult) {
123
- const trackedResult = new Proxy(result, { get(target, prop) {
124
- onTrackResult(prop);
125
- return target[prop];
126
- } });
127
- return trackedResult;
128
- }
129
-
130
- //#endregion
131
- exports.trpcSubscriptionOptions = trpcSubscriptionOptions;
132
- exports.useSubscription = useSubscription;
@@ -1,131 +0,0 @@
1
- import { createTRPCOptionsResult } from "./utils.mjs";
2
- import * as React from "react";
3
- import { hashKey, skipToken } from "@tanstack/react-query";
4
-
5
- //#region src/internals/subscriptionOptions.ts
6
- /**
7
- * @internal
8
- */
9
- const trpcSubscriptionOptions = (args) => {
10
- const { subscribe, path, queryKey, opts = {} } = args;
11
- const input = queryKey[1]?.input;
12
- const enabled = "enabled" in opts ? !!opts.enabled : input !== skipToken;
13
- const _subscribe = (innerOpts) => {
14
- return subscribe(path.join("."), input ?? void 0, innerOpts);
15
- };
16
- return {
17
- ...opts,
18
- enabled,
19
- subscribe: _subscribe,
20
- queryKey,
21
- trpc: createTRPCOptionsResult({ path })
22
- };
23
- };
24
- function useSubscription(opts) {
25
- const optsRef = React.useRef(opts);
26
- optsRef.current = opts;
27
- const trackedProps = React.useRef(new Set([]));
28
- const addTrackedProp = React.useCallback((key) => {
29
- trackedProps.current.add(key);
30
- }, []);
31
- const currentSubscriptionRef = React.useRef(() => {});
32
- const reset = React.useCallback(() => {
33
- currentSubscriptionRef.current?.();
34
- updateState(getInitialState);
35
- if (!opts.enabled) return;
36
- const subscription = opts.subscribe({
37
- onStarted: () => {
38
- optsRef.current.onStarted?.();
39
- updateState((prev) => ({
40
- ...prev,
41
- status: "pending",
42
- error: null
43
- }));
44
- },
45
- onData: (data) => {
46
- optsRef.current.onData?.(data);
47
- updateState((prev) => ({
48
- ...prev,
49
- status: "pending",
50
- data,
51
- error: null
52
- }));
53
- },
54
- onError: (error) => {
55
- optsRef.current.onError?.(error);
56
- updateState((prev) => ({
57
- ...prev,
58
- status: "error",
59
- error
60
- }));
61
- },
62
- onConnectionStateChange: (result) => {
63
- optsRef.current.onConnectionStateChange?.(result);
64
- updateState((prev) => {
65
- switch (result.state) {
66
- case "connecting": return {
67
- ...prev,
68
- status: "connecting",
69
- error: result.error
70
- };
71
- case "pending": return prev;
72
- case "idle": return {
73
- ...prev,
74
- status: "idle",
75
- data: void 0,
76
- error: null
77
- };
78
- }
79
- });
80
- }
81
- });
82
- currentSubscriptionRef.current = () => {
83
- subscription.unsubscribe();
84
- };
85
- }, [hashKey(opts.queryKey), opts.enabled]);
86
- const getInitialState = React.useCallback(() => {
87
- return opts.enabled ? {
88
- data: void 0,
89
- error: null,
90
- status: "connecting",
91
- reset
92
- } : {
93
- data: void 0,
94
- error: null,
95
- status: "idle",
96
- reset
97
- };
98
- }, [opts.enabled, reset]);
99
- const resultRef = React.useRef(getInitialState());
100
- const [state, setState] = React.useState(trackResult(resultRef.current, addTrackedProp));
101
- state.reset = reset;
102
- const updateState = React.useCallback((callback) => {
103
- const prev = resultRef.current;
104
- const next = resultRef.current = callback(prev);
105
- let shouldUpdate = false;
106
- for (const key of trackedProps.current) if (prev[key] !== next[key]) {
107
- shouldUpdate = true;
108
- break;
109
- }
110
- if (shouldUpdate) setState(trackResult(next, addTrackedProp));
111
- }, [addTrackedProp]);
112
- React.useEffect(() => {
113
- if (!opts.enabled) return;
114
- reset();
115
- return () => {
116
- currentSubscriptionRef.current?.();
117
- };
118
- }, [reset, opts.enabled]);
119
- return state;
120
- }
121
- function trackResult(result, onTrackResult) {
122
- const trackedResult = new Proxy(result, { get(target, prop) {
123
- onTrackResult(prop);
124
- return target[prop];
125
- } });
126
- return trackedResult;
127
- }
128
-
129
- //#endregion
130
- export { trpcSubscriptionOptions, useSubscription };
131
- //# sourceMappingURL=subscriptionOptions.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptionOptions.mjs","names":["args: {\n subscribe: typeof TRPCUntypedClient.prototype.subscription;\n path: readonly string[];\n queryKey: TRPCQueryKey;\n opts?: AnyTRPCSubscriptionOptionsIn;\n}","_subscribe: ReturnType<TRPCSubscriptionOptions<any>>['subscribe']","opts: TRPCSubscriptionOptionsOut<TOutput, TError>","key: keyof $Result","callback: (prevState: $Result) => $Result","result: T","onTrackResult: (key: keyof T) => void"],"sources":["../../src/internals/subscriptionOptions.ts"],"sourcesContent":["import type { SkipToken } from '@tanstack/react-query';\nimport { hashKey, skipToken } from '@tanstack/react-query';\nimport type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';\nimport type { TRPCConnectionState } from '@trpc/client/unstable-internals';\nimport type { Unsubscribable } from '@trpc/server/observable';\nimport type { inferAsyncIterableYield } from '@trpc/server/unstable-core-do-not-import';\nimport * as React from 'react';\nimport type {\n ResolverDef,\n TRPCQueryKey,\n TRPCQueryOptionsResult,\n} from './types';\nimport { createTRPCOptionsResult } from './utils';\n\ninterface BaseTRPCSubscriptionOptionsIn<TOutput, TError> {\n enabled?: boolean;\n onStarted?: () => void;\n onData?: (data: inferAsyncIterableYield<TOutput>) => void;\n onError?: (err: TError) => void;\n onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;\n}\n\ninterface UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError> {\n onStarted?: () => void;\n onData?: (data: inferAsyncIterableYield<TOutput>) => void;\n onError?: (err: TError) => void;\n onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;\n}\n\ninterface TRPCSubscriptionOptionsOut<TOutput, TError>\n extends UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>,\n TRPCQueryOptionsResult {\n enabled: boolean;\n queryKey: TRPCQueryKey;\n subscribe: (\n innerOpts: UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>,\n ) => Unsubscribable;\n}\n\nexport interface TRPCSubscriptionOptions<TDef extends ResolverDef> {\n (\n input: TDef['input'],\n opts?: UnusedSkipTokenTRPCSubscriptionOptionsIn<\n inferAsyncIterableYield<TDef['output']>,\n TRPCClientErrorLike<TDef>\n >,\n ): TRPCSubscriptionOptionsOut<\n inferAsyncIterableYield<TDef['output']>,\n TRPCClientErrorLike<TDef>\n >;\n (\n input: TDef['input'] | SkipToken,\n opts?: BaseTRPCSubscriptionOptionsIn<\n inferAsyncIterableYield<TDef['output']>,\n TRPCClientErrorLike<TDef>\n >,\n ): TRPCSubscriptionOptionsOut<\n inferAsyncIterableYield<TDef['output']>,\n TRPCClientErrorLike<TDef>\n >;\n}\nexport type TRPCSubscriptionStatus =\n | 'idle'\n | 'connecting'\n | 'pending'\n | 'error';\n\nexport interface TRPCSubscriptionBaseResult<TOutput, TError> {\n status: TRPCSubscriptionStatus;\n data: undefined | TOutput;\n error: null | TError;\n /**\n * Reset the subscription\n */\n reset: () => void;\n}\n\nexport interface TRPCSubscriptionIdleResult<TOutput>\n extends TRPCSubscriptionBaseResult<TOutput, null> {\n status: 'idle';\n data: undefined;\n error: null;\n}\n\nexport interface TRPCSubscriptionConnectingResult<TOutput, TError>\n extends TRPCSubscriptionBaseResult<TOutput, TError> {\n status: 'connecting';\n data: undefined | TOutput;\n error: TError | null;\n}\n\nexport interface TRPCSubscriptionPendingResult<TOutput>\n extends TRPCSubscriptionBaseResult<TOutput, undefined> {\n status: 'pending';\n data: TOutput | undefined;\n error: null;\n}\n\nexport interface TRPCSubscriptionErrorResult<TOutput, TError>\n extends TRPCSubscriptionBaseResult<TOutput, TError> {\n status: 'error';\n data: TOutput | undefined;\n error: TError;\n}\n\nexport type TRPCSubscriptionResult<TOutput, TError> =\n | TRPCSubscriptionIdleResult<TOutput>\n | TRPCSubscriptionConnectingResult<TOutput, TError>\n | TRPCSubscriptionErrorResult<TOutput, TError>\n | TRPCSubscriptionPendingResult<TOutput>;\n\ntype AnyTRPCSubscriptionOptionsIn =\n | BaseTRPCSubscriptionOptionsIn<unknown, unknown>\n | UnusedSkipTokenTRPCSubscriptionOptionsIn<unknown, unknown>;\n\ntype AnyTRPCSubscriptionOptionsOut = TRPCSubscriptionOptionsOut<\n unknown,\n unknown\n>;\n\n/**\n * @internal\n */\nexport const trpcSubscriptionOptions = (args: {\n subscribe: typeof TRPCUntypedClient.prototype.subscription;\n path: readonly string[];\n queryKey: TRPCQueryKey;\n opts?: AnyTRPCSubscriptionOptionsIn;\n}): AnyTRPCSubscriptionOptionsOut => {\n const { subscribe, path, queryKey, opts = {} } = args;\n const input = queryKey[1]?.input;\n const enabled = 'enabled' in opts ? !!opts.enabled : input !== skipToken;\n\n const _subscribe: ReturnType<TRPCSubscriptionOptions<any>>['subscribe'] = (\n innerOpts,\n ) => {\n return subscribe(path.join('.'), input ?? undefined, innerOpts);\n };\n\n return {\n ...opts,\n enabled,\n subscribe: _subscribe,\n queryKey,\n trpc: createTRPCOptionsResult({ path }),\n };\n};\n\nexport function useSubscription<TOutput, TError>(\n opts: TRPCSubscriptionOptionsOut<TOutput, TError>,\n): TRPCSubscriptionResult<TOutput, TError> {\n type $Result = TRPCSubscriptionResult<TOutput, TError>;\n\n const optsRef = React.useRef(opts);\n optsRef.current = opts;\n\n const trackedProps = React.useRef(new Set<keyof $Result>([]));\n\n const addTrackedProp = React.useCallback((key: keyof $Result) => {\n trackedProps.current.add(key);\n }, []);\n\n type Unsubscribe = () => void;\n const currentSubscriptionRef = React.useRef<Unsubscribe>(() => {\n // noop\n });\n\n const reset = React.useCallback((): void => {\n // unsubscribe from the previous subscription\n currentSubscriptionRef.current?.();\n\n updateState(getInitialState);\n if (!opts.enabled) {\n return;\n }\n const subscription = opts.subscribe({\n onStarted: () => {\n optsRef.current.onStarted?.();\n updateState((prev) => ({\n ...(prev as any),\n status: 'pending',\n error: null,\n }));\n },\n onData: (data) => {\n optsRef.current.onData?.(data);\n updateState((prev) => ({\n ...(prev as any),\n status: 'pending',\n data,\n error: null,\n }));\n },\n onError: (error) => {\n optsRef.current.onError?.(error);\n updateState((prev) => ({\n ...(prev as any),\n status: 'error',\n error,\n }));\n },\n onConnectionStateChange: (result) => {\n optsRef.current.onConnectionStateChange?.(result);\n updateState((prev) => {\n switch (result.state) {\n case 'connecting':\n return {\n ...prev,\n status: 'connecting',\n error: result.error,\n };\n case 'pending':\n // handled in onStarted\n return prev;\n case 'idle':\n return {\n ...prev,\n status: 'idle',\n data: undefined,\n error: null,\n };\n }\n });\n },\n });\n\n currentSubscriptionRef.current = () => {\n subscription.unsubscribe();\n };\n // eslint-disable-next-line react-hooks/react-compiler\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hashKey(opts.queryKey), opts.enabled]);\n\n const getInitialState = React.useCallback((): $Result => {\n return opts.enabled\n ? {\n data: undefined,\n error: null,\n status: 'connecting',\n reset,\n }\n : {\n data: undefined,\n error: null,\n status: 'idle',\n reset,\n };\n }, [opts.enabled, reset]);\n\n const resultRef = React.useRef<$Result>(getInitialState());\n\n const [state, setState] = React.useState<$Result>(\n trackResult(resultRef.current, addTrackedProp),\n );\n\n state.reset = reset;\n\n const updateState = React.useCallback(\n (callback: (prevState: $Result) => $Result) => {\n const prev = resultRef.current;\n const next = (resultRef.current = callback(prev));\n\n let shouldUpdate = false;\n for (const key of trackedProps.current) {\n if (prev[key] !== next[key]) {\n shouldUpdate = true;\n break;\n }\n }\n if (shouldUpdate) {\n setState(trackResult(next, addTrackedProp));\n }\n },\n [addTrackedProp],\n );\n\n React.useEffect(() => {\n if (!opts.enabled) {\n return;\n }\n reset();\n\n return () => {\n currentSubscriptionRef.current?.();\n };\n }, [reset, opts.enabled]);\n\n return state;\n}\n\nfunction trackResult<T extends object>(\n result: T,\n onTrackResult: (key: keyof T) => void,\n): T {\n const trackedResult = new Proxy(result, {\n get(target, prop) {\n onTrackResult(prop as keyof T);\n return target[prop as keyof T];\n },\n });\n\n return trackedResult;\n}\n"],"mappings":"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"}