@trpc/tanstack-react-query 11.3.1 → 11.3.2-canary.4

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 (41) 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 -0
  5. package/dist/index.d.mts.map +1 -0
  6. package/dist/index.mjs +442 -3
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +21 -17
  9. package/dist/index.d.ts +0 -10
  10. package/dist/index.d.ts.map +0 -1
  11. package/dist/index.js +0 -11
  12. package/dist/internals/Context.d.ts +0 -21
  13. package/dist/internals/Context.d.ts.map +0 -1
  14. package/dist/internals/Context.js +0 -67
  15. package/dist/internals/Context.mjs +0 -46
  16. package/dist/internals/createOptionsProxy.d.ts +0 -161
  17. package/dist/internals/createOptionsProxy.d.ts.map +0 -1
  18. package/dist/internals/createOptionsProxy.js +0 -113
  19. package/dist/internals/createOptionsProxy.mjs +0 -111
  20. package/dist/internals/infiniteQueryOptions.d.ts +0 -61
  21. package/dist/internals/infiniteQueryOptions.d.ts.map +0 -1
  22. package/dist/internals/infiniteQueryOptions.js +0 -39
  23. package/dist/internals/infiniteQueryOptions.mjs +0 -37
  24. package/dist/internals/mutationOptions.d.ts +0 -43
  25. package/dist/internals/mutationOptions.d.ts.map +0 -1
  26. package/dist/internals/mutationOptions.js +0 -40
  27. package/dist/internals/mutationOptions.mjs +0 -38
  28. package/dist/internals/queryOptions.d.ts +0 -58
  29. package/dist/internals/queryOptions.d.ts.map +0 -1
  30. package/dist/internals/queryOptions.js +0 -43
  31. package/dist/internals/queryOptions.mjs +0 -41
  32. package/dist/internals/subscriptionOptions.d.ts +0 -73
  33. package/dist/internals/subscriptionOptions.d.ts.map +0 -1
  34. package/dist/internals/subscriptionOptions.js +0 -181
  35. package/dist/internals/subscriptionOptions.mjs +0 -159
  36. package/dist/internals/types.d.ts +0 -83
  37. package/dist/internals/types.d.ts.map +0 -1
  38. package/dist/internals/utils.d.ts +0 -36
  39. package/dist/internals/utils.d.ts.map +0 -1
  40. package/dist/internals/utils.js +0 -118
  41. package/dist/internals/utils.mjs +0 -111
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- var reactQuery = require('@tanstack/react-query');
4
- var utils = require('./utils.js');
5
-
6
- function trpcInfiniteQueryOptions(args) {
7
- const { input, query, path, queryKey, opts } = args;
8
- const inputIsSkipToken = input === reactQuery.skipToken;
9
- const queryFn = async (queryFnContext)=>{
10
- const actualOpts = {
11
- ...opts,
12
- trpc: {
13
- ...opts?.trpc,
14
- ...opts?.trpc?.abortOnUnmount ? {
15
- signal: queryFnContext.signal
16
- } : {
17
- signal: null
18
- }
19
- }
20
- };
21
- const result = await query(...utils.getClientArgs(queryKey, actualOpts, {
22
- direction: queryFnContext.direction,
23
- pageParam: queryFnContext.pageParam
24
- }));
25
- return result;
26
- };
27
- return Object.assign(reactQuery.infiniteQueryOptions({
28
- ...opts,
29
- queryKey,
30
- queryFn: inputIsSkipToken ? reactQuery.skipToken : queryFn,
31
- initialPageParam: opts?.initialCursor ?? input?.cursor
32
- }), {
33
- trpc: utils.createTRPCOptionsResult({
34
- path
35
- })
36
- });
37
- }
38
-
39
- exports.trpcInfiniteQueryOptions = trpcInfiniteQueryOptions;
@@ -1,37 +0,0 @@
1
- import { infiniteQueryOptions, skipToken } from '@tanstack/react-query';
2
- import { createTRPCOptionsResult, getClientArgs } from './utils.mjs';
3
-
4
- function trpcInfiniteQueryOptions(args) {
5
- const { input, query, path, queryKey, opts } = args;
6
- const inputIsSkipToken = input === skipToken;
7
- const queryFn = async (queryFnContext)=>{
8
- const actualOpts = {
9
- ...opts,
10
- trpc: {
11
- ...opts?.trpc,
12
- ...opts?.trpc?.abortOnUnmount ? {
13
- signal: queryFnContext.signal
14
- } : {
15
- signal: null
16
- }
17
- }
18
- };
19
- const result = await query(...getClientArgs(queryKey, actualOpts, {
20
- direction: queryFnContext.direction,
21
- pageParam: queryFnContext.pageParam
22
- }));
23
- return result;
24
- };
25
- return Object.assign(infiniteQueryOptions({
26
- ...opts,
27
- queryKey,
28
- queryFn: inputIsSkipToken ? skipToken : queryFn,
29
- initialPageParam: opts?.initialCursor ?? input?.cursor
30
- }), {
31
- trpc: createTRPCOptionsResult({
32
- path
33
- })
34
- });
35
- }
36
-
37
- export { trpcInfiniteQueryOptions };
@@ -1,43 +0,0 @@
1
- import type { QueryClient, UseMutationOptions } from '@tanstack/react-query';
2
- import type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';
3
- import type { DistributiveOmit, MaybePromise } from '@trpc/server/unstable-core-do-not-import';
4
- import type { ResolverDef, TRPCMutationKey, TRPCQueryBaseOptions, TRPCQueryOptionsResult } from './types';
5
- type ReservedOptions = 'mutationKey' | 'mutationFn';
6
- interface TRPCMutationOptionsIn<TInput, TError, TOutput, TContext> extends DistributiveOmit<UseMutationOptions<TOutput, TError, TInput, TContext>, ReservedOptions>, TRPCQueryBaseOptions {
7
- }
8
- interface TRPCMutationOptionsOut<TInput, TError, TOutput, TContext> extends UseMutationOptions<TOutput, TError, TInput, TContext>, TRPCQueryOptionsResult {
9
- mutationKey: TRPCMutationKey;
10
- }
11
- export interface TRPCMutationOptions<TDef extends ResolverDef> {
12
- <TContext = unknown>(opts?: TRPCMutationOptionsIn<TDef['input'], TRPCClientErrorLike<TDef>, TDef['output'], TContext>): TRPCMutationOptionsOut<TDef['input'], TRPCClientErrorLike<TDef>, TDef['output'], TContext>;
13
- }
14
- /**
15
- * @internal
16
- */
17
- export interface MutationOptionsOverride {
18
- onSuccess: (opts: {
19
- /**
20
- * Calls the original function that was defined in the query's `onSuccess` option
21
- */
22
- originalFn: () => MaybePromise<void>;
23
- queryClient: QueryClient;
24
- /**
25
- * Meta data passed in from the `useMutation()` hook
26
- */
27
- meta: Record<string, unknown>;
28
- }) => MaybePromise<void>;
29
- }
30
- type AnyTRPCMutationOptionsIn = TRPCMutationOptionsIn<unknown, unknown, unknown, unknown>;
31
- type AnyTRPCMutationOptionsOut = TRPCMutationOptionsOut<unknown, unknown, unknown, unknown>;
32
- /**
33
- * @internal
34
- */
35
- export declare function trpcMutationOptions(args: {
36
- mutate: typeof TRPCUntypedClient.prototype.mutation;
37
- queryClient: QueryClient | (() => QueryClient);
38
- path: readonly string[];
39
- opts: AnyTRPCMutationOptionsIn;
40
- overrides: MutationOptionsOverride | undefined;
41
- }): AnyTRPCMutationOptionsOut;
42
- export {};
43
- //# sourceMappingURL=mutationOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutationOptions.d.ts","sourceRoot":"","sources":["../../src/internals/mutationOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAQjB,KAAK,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;AAEpD,UAAU,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAC/D,SAAQ,gBAAgB,CACpB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EACrD,eAAe,CAChB,EACD,oBAAoB;CAAG;AAE3B,UAAU,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAChE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC3D,sBAAsB;IACxB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS,WAAW;IAC3D,CAAC,QAAQ,GAAG,OAAO,EACjB,IAAI,CAAC,EAAE,qBAAqB,CAC1B,IAAI,CAAC,OAAO,CAAC,EACb,mBAAmB,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,QAAQ,CAAC,EACd,QAAQ,CACT,GACA,sBAAsB,CACvB,IAAI,CAAC,OAAO,CAAC,EACb,mBAAmB,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,QAAQ,CAAC,EACd,QAAQ,CACT,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,CAAC,IAAI,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC;QACzB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,KAAK,wBAAwB,GAAG,qBAAqB,CACnD,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR,CAAC;AAEF,KAAK,yBAAyB,GAAG,sBAAsB,CACrD,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,OAAO,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC;IACpD,WAAW,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;IAC/C,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,uBAAuB,GAAG,SAAS,CAAC;CAChD,GAAG,yBAAyB,CAmC5B"}
@@ -1,40 +0,0 @@
1
- 'use strict';
2
-
3
- var utils = require('./utils.js');
4
-
5
- /**
6
- * @internal
7
- */ function trpcMutationOptions(args) {
8
- const { mutate, path, opts, overrides } = args;
9
- const queryClient = utils.unwrapLazyArg(args.queryClient);
10
- const mutationKey = utils.getMutationKeyInternal(path);
11
- const defaultOpts = queryClient.defaultMutationOptions(queryClient.getMutationDefaults(mutationKey));
12
- const mutationSuccessOverride = overrides?.onSuccess ?? ((options)=>options.originalFn());
13
- const mutationFn = async (input)=>{
14
- const result = await mutate(...utils.getClientArgs([
15
- path,
16
- {
17
- input
18
- }
19
- ], opts));
20
- return result;
21
- };
22
- return {
23
- ...opts,
24
- mutationKey: mutationKey,
25
- mutationFn,
26
- onSuccess (...args) {
27
- const originalFn = ()=>opts?.onSuccess?.(...args) ?? defaultOpts?.onSuccess?.(...args);
28
- return mutationSuccessOverride({
29
- originalFn,
30
- queryClient,
31
- meta: opts?.meta ?? defaultOpts?.meta ?? {}
32
- });
33
- },
34
- trpc: utils.createTRPCOptionsResult({
35
- path
36
- })
37
- };
38
- }
39
-
40
- exports.trpcMutationOptions = trpcMutationOptions;
@@ -1,38 +0,0 @@
1
- import { unwrapLazyArg, getMutationKeyInternal, createTRPCOptionsResult, getClientArgs } from './utils.mjs';
2
-
3
- /**
4
- * @internal
5
- */ function trpcMutationOptions(args) {
6
- const { mutate, path, opts, overrides } = args;
7
- const queryClient = unwrapLazyArg(args.queryClient);
8
- const mutationKey = getMutationKeyInternal(path);
9
- const defaultOpts = queryClient.defaultMutationOptions(queryClient.getMutationDefaults(mutationKey));
10
- const mutationSuccessOverride = overrides?.onSuccess ?? ((options)=>options.originalFn());
11
- const mutationFn = async (input)=>{
12
- const result = await mutate(...getClientArgs([
13
- path,
14
- {
15
- input
16
- }
17
- ], opts));
18
- return result;
19
- };
20
- return {
21
- ...opts,
22
- mutationKey: mutationKey,
23
- mutationFn,
24
- onSuccess (...args) {
25
- const originalFn = ()=>opts?.onSuccess?.(...args) ?? defaultOpts?.onSuccess?.(...args);
26
- return mutationSuccessOverride({
27
- originalFn,
28
- queryClient,
29
- meta: opts?.meta ?? defaultOpts?.meta ?? {}
30
- });
31
- },
32
- trpc: createTRPCOptionsResult({
33
- path
34
- })
35
- };
36
- }
37
-
38
- export { trpcMutationOptions };
@@ -1,58 +0,0 @@
1
- import type { DataTag, DefinedInitialDataOptions, QueryClient, SkipToken, UndefinedInitialDataOptions, UnusedSkipTokenOptions } from '@tanstack/react-query';
2
- import type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';
3
- import type { coerceAsyncIterableToArray, DistributiveOmit } from '@trpc/server/unstable-core-do-not-import';
4
- import type { ResolverDef, TRPCQueryBaseOptions, TRPCQueryKey, TRPCQueryOptionsResult } from './types';
5
- type ReservedOptions = 'queryKey' | 'queryFn' | 'queryHashFn' | 'queryHash';
6
- interface UndefinedTRPCQueryOptionsIn<TQueryFnData, TData, TError> extends DistributiveOmit<UndefinedInitialDataOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TData>, TRPCQueryKey>, ReservedOptions>, TRPCQueryBaseOptions {
7
- }
8
- interface UndefinedTRPCQueryOptionsOut<TQueryFnData, TOutput, TError> extends UndefinedInitialDataOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TOutput>, TRPCQueryKey>, TRPCQueryOptionsResult {
9
- queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TOutput>, TError>;
10
- }
11
- interface DefinedTRPCQueryOptionsIn<TQueryFnData, TData, TError> extends DistributiveOmit<DefinedInitialDataOptions<coerceAsyncIterableToArray<NoInfer<TQueryFnData>>, TError, coerceAsyncIterableToArray<TData>, TRPCQueryKey>, ReservedOptions>, TRPCQueryBaseOptions {
12
- }
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
- }
18
- interface UnusedSkipTokenTRPCQueryOptionsOut<TQueryFnData, TOutput, TError> extends UnusedSkipTokenOptions<coerceAsyncIterableToArray<TQueryFnData>, TError, coerceAsyncIterableToArray<TOutput>, TRPCQueryKey>, TRPCQueryOptionsResult {
19
- queryKey: DataTag<TRPCQueryKey, coerceAsyncIterableToArray<TOutput>, TError>;
20
- }
21
- export interface TRPCQueryOptions<TDef extends ResolverDef> {
22
- <TQueryFnData extends TDef['output'], TData = TQueryFnData>(input: TDef['input'] | SkipToken, opts: DefinedTRPCQueryOptionsIn<TQueryFnData, TData, TRPCClientErrorLike<{
23
- transformer: TDef['transformer'];
24
- errorShape: TDef['errorShape'];
25
- }>>): DefinedTRPCQueryOptionsOut<TQueryFnData, TData, TRPCClientErrorLike<{
26
- transformer: TDef['transformer'];
27
- errorShape: TDef['errorShape'];
28
- }>>;
29
- <TQueryFnData extends TDef['output'], TData = TQueryFnData>(input: TDef['input'], opts?: UnusedSkipTokenTRPCQueryOptionsIn<TQueryFnData, TData, TRPCClientErrorLike<{
30
- transformer: TDef['transformer'];
31
- errorShape: TDef['errorShape'];
32
- }>>): UnusedSkipTokenTRPCQueryOptionsOut<TQueryFnData, TData, TRPCClientErrorLike<{
33
- transformer: TDef['transformer'];
34
- errorShape: TDef['errorShape'];
35
- }>>;
36
- <TQueryFnData extends TDef['output'], TData = TQueryFnData>(input: TDef['input'] | SkipToken, opts?: UndefinedTRPCQueryOptionsIn<TQueryFnData, TData, TRPCClientErrorLike<{
37
- transformer: TDef['transformer'];
38
- errorShape: TDef['errorShape'];
39
- }>>): UndefinedTRPCQueryOptionsOut<TQueryFnData, TData, TRPCClientErrorLike<{
40
- transformer: TDef['transformer'];
41
- errorShape: TDef['errorShape'];
42
- }>>;
43
- }
44
- type AnyTRPCQueryOptionsIn = DefinedTRPCQueryOptionsIn<unknown, unknown, unknown> | UnusedSkipTokenTRPCQueryOptionsIn<unknown, unknown, unknown> | UndefinedTRPCQueryOptionsIn<unknown, unknown, unknown>;
45
- type AnyTRPCQueryOptionsOut = DefinedTRPCQueryOptionsOut<unknown, unknown, unknown> | UnusedSkipTokenTRPCQueryOptionsOut<unknown, unknown, unknown> | UndefinedTRPCQueryOptionsOut<unknown, unknown, unknown>;
46
- /**
47
- * @internal
48
- */
49
- export declare function trpcQueryOptions(args: {
50
- input: unknown;
51
- query: typeof TRPCUntypedClient.prototype.query;
52
- queryClient: QueryClient | (() => QueryClient);
53
- path: readonly string[];
54
- queryKey: TRPCQueryKey;
55
- opts: AnyTRPCQueryOptionsIn;
56
- }): AnyTRPCQueryOptionsOut;
57
- export {};
58
- //# sourceMappingURL=queryOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryOptions.d.ts","sourceRoot":"","sources":["../../src/internals/queryOptions.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- 'use strict';
2
-
3
- var reactQuery = require('@tanstack/react-query');
4
- var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
5
- var utils = require('./utils.js');
6
-
7
- /**
8
- * @internal
9
- */ function trpcQueryOptions(args) {
10
- const { input, query, path, queryKey, opts } = args;
11
- const queryClient = utils.unwrapLazyArg(args.queryClient);
12
- const inputIsSkipToken = input === reactQuery.skipToken;
13
- const queryFn = async (queryFnContext)=>{
14
- const actualOpts = {
15
- ...opts,
16
- trpc: {
17
- ...opts?.trpc,
18
- ...opts?.trpc?.abortOnUnmount ? {
19
- signal: queryFnContext.signal
20
- } : {
21
- signal: null
22
- }
23
- }
24
- };
25
- const queryKey = queryFnContext.queryKey;
26
- const result = await query(...utils.getClientArgs(queryKey, actualOpts));
27
- if (unstableCoreDoNotImport.isAsyncIterable(result)) {
28
- return utils.buildQueryFromAsyncIterable(result, queryClient, queryKey);
29
- }
30
- return result;
31
- };
32
- return Object.assign(reactQuery.queryOptions({
33
- ...opts,
34
- queryKey,
35
- queryFn: inputIsSkipToken ? reactQuery.skipToken : queryFn
36
- }), {
37
- trpc: utils.createTRPCOptionsResult({
38
- path
39
- })
40
- });
41
- }
42
-
43
- exports.trpcQueryOptions = trpcQueryOptions;
@@ -1,41 +0,0 @@
1
- import { queryOptions, skipToken } from '@tanstack/react-query';
2
- import { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';
3
- import { unwrapLazyArg, createTRPCOptionsResult, getClientArgs, buildQueryFromAsyncIterable } from './utils.mjs';
4
-
5
- /**
6
- * @internal
7
- */ function trpcQueryOptions(args) {
8
- const { input, query, path, queryKey, opts } = args;
9
- const queryClient = unwrapLazyArg(args.queryClient);
10
- const inputIsSkipToken = input === skipToken;
11
- const queryFn = async (queryFnContext)=>{
12
- const actualOpts = {
13
- ...opts,
14
- trpc: {
15
- ...opts?.trpc,
16
- ...opts?.trpc?.abortOnUnmount ? {
17
- signal: queryFnContext.signal
18
- } : {
19
- signal: null
20
- }
21
- }
22
- };
23
- const queryKey = queryFnContext.queryKey;
24
- const result = await query(...getClientArgs(queryKey, actualOpts));
25
- if (isAsyncIterable(result)) {
26
- return buildQueryFromAsyncIterable(result, queryClient, queryKey);
27
- }
28
- return result;
29
- };
30
- return Object.assign(queryOptions({
31
- ...opts,
32
- queryKey,
33
- queryFn: inputIsSkipToken ? skipToken : queryFn
34
- }), {
35
- trpc: createTRPCOptionsResult({
36
- path
37
- })
38
- });
39
- }
40
-
41
- export { trpcQueryOptions };
@@ -1,73 +0,0 @@
1
- import type { SkipToken } from '@tanstack/react-query';
2
- import type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';
3
- import type { TRPCConnectionState } from '@trpc/client/unstable-internals';
4
- import type { Unsubscribable } from '@trpc/server/observable';
5
- import type { inferAsyncIterableYield } from '@trpc/server/unstable-core-do-not-import';
6
- import type { ResolverDef, TRPCQueryKey, TRPCQueryOptionsResult } from './types';
7
- interface BaseTRPCSubscriptionOptionsIn<TOutput, TError> {
8
- enabled?: boolean;
9
- onStarted?: () => void;
10
- onData?: (data: inferAsyncIterableYield<TOutput>) => void;
11
- onError?: (err: TError) => void;
12
- onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
13
- }
14
- interface UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError> {
15
- onStarted?: () => void;
16
- onData?: (data: inferAsyncIterableYield<TOutput>) => void;
17
- onError?: (err: TError) => void;
18
- onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;
19
- }
20
- interface TRPCSubscriptionOptionsOut<TOutput, TError> extends UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>, TRPCQueryOptionsResult {
21
- enabled: boolean;
22
- queryKey: TRPCQueryKey;
23
- subscribe: (innerOpts: UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>) => Unsubscribable;
24
- }
25
- export interface TRPCSubscriptionOptions<TDef extends ResolverDef> {
26
- (input: TDef['input'], opts?: UnusedSkipTokenTRPCSubscriptionOptionsIn<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>): TRPCSubscriptionOptionsOut<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>;
27
- (input: TDef['input'] | SkipToken, opts?: BaseTRPCSubscriptionOptionsIn<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>): TRPCSubscriptionOptionsOut<inferAsyncIterableYield<TDef['output']>, TRPCClientErrorLike<TDef>>;
28
- }
29
- export type TRPCSubscriptionStatus = 'idle' | 'connecting' | 'pending' | 'error';
30
- export interface TRPCSubscriptionBaseResult<TOutput, TError> {
31
- status: TRPCSubscriptionStatus;
32
- data: undefined | TOutput;
33
- error: null | TError;
34
- /**
35
- * Reset the subscription
36
- */
37
- reset: () => void;
38
- }
39
- export interface TRPCSubscriptionIdleResult<TOutput> extends TRPCSubscriptionBaseResult<TOutput, null> {
40
- status: 'idle';
41
- data: undefined;
42
- error: null;
43
- }
44
- export interface TRPCSubscriptionConnectingResult<TOutput, TError> extends TRPCSubscriptionBaseResult<TOutput, TError> {
45
- status: 'connecting';
46
- data: undefined | TOutput;
47
- error: TError | null;
48
- }
49
- export interface TRPCSubscriptionPendingResult<TOutput> extends TRPCSubscriptionBaseResult<TOutput, undefined> {
50
- status: 'pending';
51
- data: TOutput | undefined;
52
- error: null;
53
- }
54
- export interface TRPCSubscriptionErrorResult<TOutput, TError> extends TRPCSubscriptionBaseResult<TOutput, TError> {
55
- status: 'error';
56
- data: TOutput | undefined;
57
- error: TError;
58
- }
59
- export type TRPCSubscriptionResult<TOutput, TError> = TRPCSubscriptionIdleResult<TOutput> | TRPCSubscriptionConnectingResult<TOutput, TError> | TRPCSubscriptionErrorResult<TOutput, TError> | TRPCSubscriptionPendingResult<TOutput>;
60
- type AnyTRPCSubscriptionOptionsIn = BaseTRPCSubscriptionOptionsIn<unknown, unknown> | UnusedSkipTokenTRPCSubscriptionOptionsIn<unknown, unknown>;
61
- type AnyTRPCSubscriptionOptionsOut = TRPCSubscriptionOptionsOut<unknown, unknown>;
62
- /**
63
- * @internal
64
- */
65
- export declare const trpcSubscriptionOptions: (args: {
66
- subscribe: typeof TRPCUntypedClient.prototype.subscription;
67
- path: readonly string[];
68
- queryKey: TRPCQueryKey;
69
- opts?: AnyTRPCSubscriptionOptionsIn;
70
- }) => AnyTRPCSubscriptionOptionsOut;
71
- export declare function useSubscription<TOutput, TError>(opts: TRPCSubscriptionOptionsOut<TOutput, TError>): TRPCSubscriptionResult<TOutput, TError>;
72
- export {};
73
- //# sourceMappingURL=subscriptionOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptionOptions.d.ts","sourceRoot":"","sources":["../../src/internals/subscriptionOptions.ts"],"names":[],"mappings":"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"}
@@ -1,181 +0,0 @@
1
- 'use strict';
2
-
3
- var reactQuery = require('@tanstack/react-query');
4
- var React = require('react');
5
- var utils = require('./utils.js');
6
-
7
- function _interopNamespaceDefault(e) {
8
- var n = Object.create(null);
9
- if (e) {
10
- Object.keys(e).forEach(function (k) {
11
- if (k !== 'default') {
12
- var d = Object.getOwnPropertyDescriptor(e, k);
13
- Object.defineProperty(n, k, d.get ? d : {
14
- enumerable: true,
15
- get: function () { return e[k]; }
16
- });
17
- }
18
- });
19
- }
20
- n.default = e;
21
- return Object.freeze(n);
22
- }
23
-
24
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
25
-
26
- /**
27
- * @internal
28
- */ const trpcSubscriptionOptions = (args)=>{
29
- const { subscribe, path, queryKey, opts = {} } = args;
30
- const input = queryKey[1]?.input;
31
- const enabled = 'enabled' in opts ? !!opts.enabled : input !== reactQuery.skipToken;
32
- const _subscribe = (innerOpts)=>{
33
- return subscribe(path.join('.'), input ?? undefined, innerOpts);
34
- };
35
- return {
36
- ...opts,
37
- enabled,
38
- subscribe: _subscribe,
39
- queryKey,
40
- trpc: utils.createTRPCOptionsResult({
41
- path
42
- })
43
- };
44
- };
45
- function useSubscription(opts) {
46
- const optsRef = React__namespace.useRef(opts);
47
- optsRef.current = opts;
48
- const trackedProps = React__namespace.useRef(new Set([]));
49
- const addTrackedProp = React__namespace.useCallback((key)=>{
50
- trackedProps.current.add(key);
51
- }, []);
52
- const currentSubscriptionRef = React__namespace.useRef(()=>{
53
- // noop
54
- });
55
- const reset = React__namespace.useCallback(()=>{
56
- // unsubscribe from the previous subscription
57
- currentSubscriptionRef.current?.();
58
- updateState(getInitialState);
59
- if (!opts.enabled) {
60
- return;
61
- }
62
- const subscription = opts.subscribe({
63
- onStarted: ()=>{
64
- optsRef.current.onStarted?.();
65
- updateState((prev)=>({
66
- ...prev,
67
- status: 'pending',
68
- error: null
69
- }));
70
- },
71
- onData: (data)=>{
72
- optsRef.current.onData?.(data);
73
- updateState((prev)=>({
74
- ...prev,
75
- status: 'pending',
76
- data,
77
- error: null
78
- }));
79
- },
80
- onError: (error)=>{
81
- optsRef.current.onError?.(error);
82
- updateState((prev)=>({
83
- ...prev,
84
- status: 'error',
85
- error
86
- }));
87
- },
88
- onConnectionStateChange: (result)=>{
89
- optsRef.current.onConnectionStateChange?.(result);
90
- updateState((prev)=>{
91
- switch(result.state){
92
- case 'connecting':
93
- return {
94
- ...prev,
95
- status: 'connecting',
96
- error: result.error
97
- };
98
- case 'pending':
99
- // handled in onStarted
100
- return prev;
101
- case 'idle':
102
- return {
103
- ...prev,
104
- status: 'idle',
105
- data: undefined,
106
- error: null
107
- };
108
- }
109
- });
110
- }
111
- });
112
- currentSubscriptionRef.current = ()=>{
113
- subscription.unsubscribe();
114
- };
115
- // eslint-disable-next-line react-hooks/react-compiler
116
- // eslint-disable-next-line react-hooks/exhaustive-deps
117
- }, [
118
- reactQuery.hashKey(opts.queryKey),
119
- opts.enabled
120
- ]);
121
- const getInitialState = React__namespace.useCallback(()=>{
122
- return opts.enabled ? {
123
- data: undefined,
124
- error: null,
125
- status: 'connecting',
126
- reset
127
- } : {
128
- data: undefined,
129
- error: null,
130
- status: 'idle',
131
- reset
132
- };
133
- }, [
134
- opts.enabled,
135
- reset
136
- ]);
137
- const resultRef = React__namespace.useRef(getInitialState());
138
- const [state, setState] = React__namespace.useState(trackResult(resultRef.current, addTrackedProp));
139
- state.reset = reset;
140
- const updateState = React__namespace.useCallback((callback)=>{
141
- const prev = resultRef.current;
142
- const next = resultRef.current = callback(prev);
143
- let shouldUpdate = false;
144
- for (const key of trackedProps.current){
145
- if (prev[key] !== next[key]) {
146
- shouldUpdate = true;
147
- break;
148
- }
149
- }
150
- if (shouldUpdate) {
151
- setState(trackResult(next, addTrackedProp));
152
- }
153
- }, [
154
- addTrackedProp
155
- ]);
156
- React__namespace.useEffect(()=>{
157
- if (!opts.enabled) {
158
- return;
159
- }
160
- reset();
161
- return ()=>{
162
- currentSubscriptionRef.current?.();
163
- };
164
- }, [
165
- reset,
166
- opts.enabled
167
- ]);
168
- return state;
169
- }
170
- function trackResult(result, onTrackResult) {
171
- const trackedResult = new Proxy(result, {
172
- get (target, prop) {
173
- onTrackResult(prop);
174
- return target[prop];
175
- }
176
- });
177
- return trackedResult;
178
- }
179
-
180
- exports.trpcSubscriptionOptions = trpcSubscriptionOptions;
181
- exports.useSubscription = useSubscription;