@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.
- package/dist/index.cjs +465 -0
- package/dist/index.d.cts +420 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +420 -8
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +441 -4
- package/dist/index.mjs.map +1 -0
- package/package.json +12 -11
- package/dist/_virtual/rolldown_runtime.js +0 -30
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -7
- package/dist/internals/Context.d.mts +0 -27
- package/dist/internals/Context.d.mts.map +0 -1
- package/dist/internals/Context.d.ts +0 -27
- package/dist/internals/Context.d.ts.map +0 -1
- package/dist/internals/Context.js +0 -46
- package/dist/internals/Context.mjs +0 -46
- package/dist/internals/Context.mjs.map +0 -1
- package/dist/internals/createOptionsProxy.d.mts +0 -160
- package/dist/internals/createOptionsProxy.d.mts.map +0 -1
- package/dist/internals/createOptionsProxy.d.ts +0 -160
- package/dist/internals/createOptionsProxy.d.ts.map +0 -1
- package/dist/internals/createOptionsProxy.js +0 -111
- package/dist/internals/createOptionsProxy.mjs +0 -111
- package/dist/internals/createOptionsProxy.mjs.map +0 -1
- package/dist/internals/infiniteQueryOptions.d.mts +0 -54
- package/dist/internals/infiniteQueryOptions.d.mts.map +0 -1
- package/dist/internals/infiniteQueryOptions.d.ts +0 -54
- package/dist/internals/infiniteQueryOptions.d.ts.map +0 -1
- package/dist/internals/infiniteQueryOptions.js +0 -32
- package/dist/internals/infiniteQueryOptions.mjs +0 -32
- package/dist/internals/infiniteQueryOptions.mjs.map +0 -1
- package/dist/internals/mutationOptions.d.mts +0 -33
- package/dist/internals/mutationOptions.d.mts.map +0 -1
- package/dist/internals/mutationOptions.d.ts +0 -33
- package/dist/internals/mutationOptions.d.ts.map +0 -1
- package/dist/internals/mutationOptions.js +0 -34
- package/dist/internals/mutationOptions.mjs +0 -35
- package/dist/internals/mutationOptions.mjs.map +0 -1
- package/dist/internals/queryOptions.d.mts +0 -45
- package/dist/internals/queryOptions.d.mts.map +0 -1
- package/dist/internals/queryOptions.d.ts +0 -45
- package/dist/internals/queryOptions.d.ts.map +0 -1
- package/dist/internals/queryOptions.js +0 -35
- package/dist/internals/queryOptions.mjs +0 -35
- package/dist/internals/queryOptions.mjs.map +0 -1
- package/dist/internals/subscriptionOptions.d.mts +0 -65
- package/dist/internals/subscriptionOptions.d.mts.map +0 -1
- package/dist/internals/subscriptionOptions.d.ts +0 -65
- package/dist/internals/subscriptionOptions.d.ts.map +0 -1
- package/dist/internals/subscriptionOptions.js +0 -132
- package/dist/internals/subscriptionOptions.mjs +0 -131
- package/dist/internals/subscriptionOptions.mjs.map +0 -1
- package/dist/internals/types.d.mts +0 -82
- package/dist/internals/types.d.mts.map +0 -1
- package/dist/internals/types.d.ts +0 -82
- package/dist/internals/types.d.ts.map +0 -1
- package/dist/internals/utils.js +0 -89
- package/dist/internals/utils.mjs +0 -84
- 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":"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"}
|
|
@@ -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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"}
|