@trpc/next 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 (104) hide show
  1. package/app-dir/client/package.json +1 -0
  2. package/app-dir/links/nextCache/package.json +1 -0
  3. package/app-dir/links/nextHttp/package.json +1 -0
  4. package/app-dir/server/package.json +1 -0
  5. package/dist/app-dir/client.cjs +115 -0
  6. package/dist/app-dir/client.d.cts +50 -0
  7. package/dist/app-dir/client.d.cts.map +1 -0
  8. package/dist/app-dir/client.d.mts +50 -0
  9. package/dist/app-dir/client.d.mts.map +1 -0
  10. package/dist/app-dir/client.mjs +109 -40
  11. package/dist/app-dir/client.mjs.map +1 -0
  12. package/dist/app-dir/links/nextCache.cjs +48 -0
  13. package/dist/app-dir/links/nextCache.d.cts +15 -0
  14. package/dist/app-dir/links/nextCache.d.cts.map +1 -0
  15. package/dist/app-dir/links/nextCache.d.mts +15 -0
  16. package/dist/app-dir/links/nextCache.d.mts.map +1 -0
  17. package/dist/app-dir/links/nextCache.mjs +43 -55
  18. package/dist/app-dir/links/nextCache.mjs.map +1 -0
  19. package/dist/app-dir/links/nextHttp.cjs +35 -0
  20. package/dist/app-dir/links/nextHttp.d.cts +18 -0
  21. package/dist/app-dir/links/nextHttp.d.cts.map +1 -0
  22. package/dist/app-dir/links/nextHttp.d.mts +18 -0
  23. package/dist/app-dir/links/nextHttp.d.mts.map +1 -0
  24. package/dist/app-dir/links/nextHttp.mjs +30 -32
  25. package/dist/app-dir/links/nextHttp.mjs.map +1 -0
  26. package/dist/app-dir/server.cjs +96 -0
  27. package/dist/app-dir/server.d.cts +2 -0
  28. package/dist/app-dir/server.d.mts +2 -0
  29. package/dist/app-dir/server.mjs +85 -109
  30. package/dist/app-dir/server.mjs.map +1 -0
  31. package/dist/chunk-CUT6urMc.cjs +30 -0
  32. package/dist/index.cjs +95 -0
  33. package/dist/index.d.cts +35 -0
  34. package/dist/index.d.cts.map +1 -0
  35. package/dist/index.d.mts +35 -0
  36. package/dist/index.d.mts.map +1 -0
  37. package/dist/index.mjs +94 -2
  38. package/dist/index.mjs.map +1 -0
  39. package/dist/server.d-BXv5jwlB.d.mts +90 -0
  40. package/dist/server.d-BXv5jwlB.d.mts.map +1 -0
  41. package/dist/server.d-DLnegS7F.d.cts +90 -0
  42. package/dist/server.d-DLnegS7F.d.cts.map +1 -0
  43. package/dist/shared-C9SS-IYg.cjs +29 -0
  44. package/dist/shared-FEQznZ-6.mjs +18 -0
  45. package/dist/shared-FEQznZ-6.mjs.map +1 -0
  46. package/dist/ssrPrepass.cjs +104 -0
  47. package/dist/ssrPrepass.d.cts +9 -0
  48. package/dist/ssrPrepass.d.cts.map +1 -0
  49. package/dist/ssrPrepass.d.mts +9 -0
  50. package/dist/ssrPrepass.d.mts.map +1 -0
  51. package/dist/ssrPrepass.mjs +98 -131
  52. package/dist/ssrPrepass.mjs.map +1 -0
  53. package/dist/withTRPC.d-BY6FsDWi.d.mts +54 -0
  54. package/dist/withTRPC.d-BY6FsDWi.d.mts.map +1 -0
  55. package/dist/withTRPC.d-DctYN4Yz.d.cts +54 -0
  56. package/dist/withTRPC.d-DctYN4Yz.d.cts.map +1 -0
  57. package/package.json +63 -34
  58. package/ssrPrepass/package.json +1 -0
  59. package/app-dir/client/index.d.ts +0 -1
  60. package/app-dir/client/index.js +0 -1
  61. package/app-dir/links/nextCache/index.d.ts +0 -1
  62. package/app-dir/links/nextCache/index.js +0 -1
  63. package/app-dir/links/nextHttp/index.d.ts +0 -1
  64. package/app-dir/links/nextHttp/index.js +0 -1
  65. package/app-dir/server/index.d.ts +0 -1
  66. package/app-dir/server/index.js +0 -1
  67. package/dist/app-dir/client.d.ts +0 -6
  68. package/dist/app-dir/client.d.ts.map +0 -1
  69. package/dist/app-dir/client.js +0 -48
  70. package/dist/app-dir/create-action-hook.d.ts +0 -50
  71. package/dist/app-dir/create-action-hook.d.ts.map +0 -1
  72. package/dist/app-dir/create-action-hook.js +0 -108
  73. package/dist/app-dir/create-action-hook.mjs +0 -105
  74. package/dist/app-dir/links/nextCache.d.ts +0 -12
  75. package/dist/app-dir/links/nextCache.d.ts.map +0 -1
  76. package/dist/app-dir/links/nextCache.js +0 -62
  77. package/dist/app-dir/links/nextHttp.d.ts +0 -15
  78. package/dist/app-dir/links/nextHttp.d.ts.map +0 -1
  79. package/dist/app-dir/links/nextHttp.js +0 -39
  80. package/dist/app-dir/server.d.ts +0 -30
  81. package/dist/app-dir/server.d.ts.map +0 -1
  82. package/dist/app-dir/server.js +0 -122
  83. package/dist/app-dir/shared.d.ts +0 -55
  84. package/dist/app-dir/shared.d.ts.map +0 -1
  85. package/dist/app-dir/shared.js +0 -20
  86. package/dist/app-dir/shared.mjs +0 -17
  87. package/dist/app-dir/types.d.ts +0 -31
  88. package/dist/app-dir/types.d.ts.map +0 -1
  89. package/dist/createTRPCNext.d.ts +0 -29
  90. package/dist/createTRPCNext.d.ts.map +0 -1
  91. package/dist/createTRPCNext.js +0 -39
  92. package/dist/createTRPCNext.mjs +0 -37
  93. package/dist/index.d.ts +0 -3
  94. package/dist/index.d.ts.map +0 -1
  95. package/dist/index.js +0 -9
  96. package/dist/ssrPrepass.d.ts +0 -3
  97. package/dist/ssrPrepass.d.ts.map +0 -1
  98. package/dist/ssrPrepass.js +0 -139
  99. package/dist/withTRPC.d.ts +0 -54
  100. package/dist/withTRPC.d.ts.map +0 -1
  101. package/dist/withTRPC.js +0 -84
  102. package/dist/withTRPC.mjs +0 -82
  103. package/ssrPrepass/index.d.ts +0 -1
  104. package/ssrPrepass/index.js +0 -1
@@ -0,0 +1 @@
1
+ {"main":"../../dist/app-dir/client.cjs","module":"../../dist/app-dir/client.mjs","types":"../../dist/app-dir/client.d.cts"}
@@ -0,0 +1 @@
1
+ {"main":"../../../dist/app-dir/links/nextCache.cjs","module":"../../../dist/app-dir/links/nextCache.mjs","types":"../../../dist/app-dir/links/nextCache.d.cts"}
@@ -0,0 +1 @@
1
+ {"main":"../../../dist/app-dir/links/nextHttp.cjs","module":"../../../dist/app-dir/links/nextHttp.mjs","types":"../../../dist/app-dir/links/nextHttp.d.cts"}
@@ -0,0 +1 @@
1
+ {"main":"../../dist/app-dir/server.cjs","module":"../../dist/app-dir/server.mjs","types":"../../dist/app-dir/server.d.cts"}
@@ -0,0 +1,115 @@
1
+ const require_chunk = require('../chunk-CUT6urMc.cjs');
2
+ const require_shared = require('../shared-C9SS-IYg.cjs');
3
+ const __trpc_client_unstable_internals = require_chunk.__toESM(require("@trpc/client/unstable-internals"));
4
+ const react = require_chunk.__toESM(require("react"));
5
+ const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
6
+ const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
7
+ const __trpc_server_observable = require_chunk.__toESM(require("@trpc/server/observable"));
8
+
9
+ //#region src/app-dir/create-action-hook.tsx
10
+ function experimental_serverActionLink(...args) {
11
+ const [opts] = args;
12
+ const transformer = (0, __trpc_client_unstable_internals.getTransformer)(opts?.transformer);
13
+ return () => ({ op }) => (0, __trpc_server_observable.observable)((observer) => {
14
+ const context = op.context;
15
+ context._action(require_shared.isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
16
+ const transformed = (0, __trpc_server_unstable_core_do_not_import.transformResult)(data, transformer.output);
17
+ if (!transformed.ok) {
18
+ observer.error(__trpc_client.TRPCClientError.from(transformed.error, {}));
19
+ return;
20
+ }
21
+ observer.next({
22
+ context: op.context,
23
+ result: transformed.result
24
+ });
25
+ observer.complete();
26
+ }).catch((cause) => {
27
+ observer.error(__trpc_client.TRPCClientError.from(cause));
28
+ });
29
+ });
30
+ }
31
+ function experimental_createActionHook(opts) {
32
+ const client = (0, __trpc_client.createTRPCUntypedClient)(opts);
33
+ return function useAction(handler, useActionOpts) {
34
+ const count = (0, react.useRef)(0);
35
+ const [state, setState] = (0, react.useState)({ status: "idle" });
36
+ const actionOptsRef = (0, react.useRef)(useActionOpts);
37
+ actionOptsRef.current = useActionOpts;
38
+ (0, react.useEffect)(() => {
39
+ return () => {
40
+ count.current = -1;
41
+ actionOptsRef.current = void 0;
42
+ };
43
+ }, []);
44
+ const mutateAsync = (0, react.useCallback)((input, requestOptions) => {
45
+ const idx = ++count.current;
46
+ const context = {
47
+ ...requestOptions?.context,
48
+ _action(innerInput) {
49
+ return handler(innerInput);
50
+ }
51
+ };
52
+ setState({ status: "loading" });
53
+ return client.mutation("serverAction", input, {
54
+ ...requestOptions,
55
+ context
56
+ }).then(async (data) => {
57
+ await actionOptsRef.current?.onSuccess?.(data);
58
+ if (idx !== count.current) return;
59
+ setState({
60
+ status: "success",
61
+ data
62
+ });
63
+ }).catch(async (error) => {
64
+ await actionOptsRef.current?.onError?.(error);
65
+ throw error;
66
+ }).catch((error) => {
67
+ if (idx !== count.current) return;
68
+ setState({
69
+ status: "error",
70
+ error: __trpc_client.TRPCClientError.from(error, {})
71
+ });
72
+ throw error;
73
+ });
74
+ }, [handler]);
75
+ const mutate = (0, react.useCallback)((...args) => {
76
+ mutateAsync(...args).catch(() => {});
77
+ }, [mutateAsync]);
78
+ return (0, react.useMemo)(() => ({
79
+ ...state,
80
+ mutate,
81
+ mutateAsync
82
+ }), [
83
+ mutate,
84
+ mutateAsync,
85
+ state
86
+ ]);
87
+ };
88
+ }
89
+
90
+ //#endregion
91
+ //#region src/app-dir/client.ts
92
+ function experimental_createTRPCNextAppDirClient(opts) {
93
+ const client = (0, __trpc_client.createTRPCUntypedClient)(opts.config());
94
+ const cache = /* @__PURE__ */ new Map();
95
+ return (0, __trpc_server_unstable_core_do_not_import.createRecursiveProxy)(({ path, args }) => {
96
+ const pathCopy = [...path];
97
+ const procedureType = (0, __trpc_client.clientCallTypeToProcedureType)(pathCopy.pop());
98
+ if (procedureType === "query") {
99
+ const queryCacheKey$1 = JSON.stringify([path, args[0]]);
100
+ const cached = cache.get(queryCacheKey$1);
101
+ if (cached?.promise) return cached.promise;
102
+ }
103
+ const fullPath = pathCopy.join(".");
104
+ const promise = client[procedureType](fullPath, ...args);
105
+ if (procedureType !== "query") return promise;
106
+ const queryCacheKey = JSON.stringify([path, args[0]]);
107
+ cache.set(queryCacheKey, { promise });
108
+ return promise;
109
+ });
110
+ }
111
+
112
+ //#endregion
113
+ exports.experimental_createActionHook = experimental_createActionHook;
114
+ exports.experimental_createTRPCNextAppDirClient = experimental_createTRPCNextAppDirClient;
115
+ exports.experimental_serverActionLink = experimental_serverActionLink;
@@ -0,0 +1,50 @@
1
+ import { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler } from "../server.d-DLnegS7F.cjs";
2
+ import { CreateTRPCClientOptions, TRPCClient, TRPCClientError, TRPCLink, TRPCProcedureOptions } from "@trpc/client";
3
+ import { AnyRouter, InferrableClientTypes, MaybePromise, Simplify, TypeError, inferClientTypes } from "@trpc/server/unstable-core-do-not-import";
4
+ import { TransformerOptions } from "@trpc/client/unstable-internals";
5
+
6
+ //#region src/app-dir/create-action-hook.d.ts
7
+ type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: TRPCProcedureOptions] : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions];
8
+ interface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> {
9
+ mutate: (...args: MutationArgs<TDef>) => void;
10
+ mutateAsync: (...args: MutationArgs<TDef>) => Promise<TDef['output']>;
11
+ }
12
+ interface UseTRPCActionSuccessResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
13
+ data: TDef['output'];
14
+ error?: never;
15
+ status: 'success';
16
+ }
17
+ interface UseTRPCActionErrorResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
18
+ data?: never;
19
+ error: TRPCClientError<TDef['errorShape']>;
20
+ status: 'error';
21
+ }
22
+ interface UseTRPCActionIdleResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
23
+ data?: never;
24
+ error?: never;
25
+ status: 'idle';
26
+ }
27
+ interface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
28
+ data?: never;
29
+ error?: never;
30
+ status: 'loading';
31
+ }
32
+ type UseTRPCActionResult<TDef extends ActionHandlerDef> = UseTRPCActionErrorResult<TDef> | UseTRPCActionIdleResult<TDef> | UseTRPCActionLoadingResult<TDef> | UseTRPCActionSuccessResult<TDef>;
33
+ declare function experimental_serverActionLink<TInferrable extends InferrableClientTypes>(...args: InferrableClientTypes extends TInferrable ? [TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()` or experimental_serverActionLink<HERE>()'>] : inferClientTypes<TInferrable>['transformer'] extends true ? [opts: TransformerOptions<{
34
+ transformer: true;
35
+ }>] : [opts?: TransformerOptions<{
36
+ transformer: false;
37
+ }>]): TRPCLink<TInferrable>;
38
+ interface UseTRPCActionOptions<TDef extends ActionHandlerDef> {
39
+ onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;
40
+ onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;
41
+ }
42
+ declare function experimental_createActionHook<TInferrable extends InferrableClientTypes>(opts: InferrableClientTypes extends TInferrable ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'> : CreateTRPCClientOptions<TInferrable>): <TDef extends ActionHandlerDef>(handler: TRPCActionHandler<TDef>, useActionOpts?: UseTRPCActionOptions<Simplify<TDef>>) => UseTRPCActionResult<TDef>;
43
+ //#endregion
44
+ //#region src/app-dir/client.d.ts
45
+ declare function experimental_createTRPCNextAppDirClient<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): TRPCClient<TRouter>;
46
+ //# sourceMappingURL=client.d.ts.map
47
+
48
+ //#endregion
49
+ export { UseTRPCActionResult, experimental_createActionHook, experimental_createTRPCNextAppDirClient, experimental_serverActionLink };
50
+ //# sourceMappingURL=client.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.cts","names":[],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler } from "../server.d-BXv5jwlB.mjs";
2
+ import { TransformerOptions } from "@trpc/client/unstable-internals";
3
+ import { AnyRouter, InferrableClientTypes, MaybePromise, Simplify, TypeError, inferClientTypes } from "@trpc/server/unstable-core-do-not-import";
4
+ import { CreateTRPCClientOptions, TRPCClient, TRPCClientError, TRPCLink, TRPCProcedureOptions } from "@trpc/client";
5
+
6
+ //#region src/app-dir/create-action-hook.d.ts
7
+ type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: TRPCProcedureOptions] : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions];
8
+ interface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> {
9
+ mutate: (...args: MutationArgs<TDef>) => void;
10
+ mutateAsync: (...args: MutationArgs<TDef>) => Promise<TDef['output']>;
11
+ }
12
+ interface UseTRPCActionSuccessResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
13
+ data: TDef['output'];
14
+ error?: never;
15
+ status: 'success';
16
+ }
17
+ interface UseTRPCActionErrorResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
18
+ data?: never;
19
+ error: TRPCClientError<TDef['errorShape']>;
20
+ status: 'error';
21
+ }
22
+ interface UseTRPCActionIdleResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
23
+ data?: never;
24
+ error?: never;
25
+ status: 'idle';
26
+ }
27
+ interface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> {
28
+ data?: never;
29
+ error?: never;
30
+ status: 'loading';
31
+ }
32
+ type UseTRPCActionResult<TDef extends ActionHandlerDef> = UseTRPCActionErrorResult<TDef> | UseTRPCActionIdleResult<TDef> | UseTRPCActionLoadingResult<TDef> | UseTRPCActionSuccessResult<TDef>;
33
+ declare function experimental_serverActionLink<TInferrable extends InferrableClientTypes>(...args: InferrableClientTypes extends TInferrable ? [TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()` or experimental_serverActionLink<HERE>()'>] : inferClientTypes<TInferrable>['transformer'] extends true ? [opts: TransformerOptions<{
34
+ transformer: true;
35
+ }>] : [opts?: TransformerOptions<{
36
+ transformer: false;
37
+ }>]): TRPCLink<TInferrable>;
38
+ interface UseTRPCActionOptions<TDef extends ActionHandlerDef> {
39
+ onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;
40
+ onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;
41
+ }
42
+ declare function experimental_createActionHook<TInferrable extends InferrableClientTypes>(opts: InferrableClientTypes extends TInferrable ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'> : CreateTRPCClientOptions<TInferrable>): <TDef extends ActionHandlerDef>(handler: TRPCActionHandler<TDef>, useActionOpts?: UseTRPCActionOptions<Simplify<TDef>>) => UseTRPCActionResult<TDef>;
43
+ //#endregion
44
+ //#region src/app-dir/client.d.ts
45
+ declare function experimental_createTRPCNextAppDirClient<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): TRPCClient<TRouter>;
46
+ //# sourceMappingURL=client.d.ts.map
47
+
48
+ //#endregion
49
+ export { UseTRPCActionResult, experimental_createActionHook, experimental_createTRPCNextAppDirClient, experimental_serverActionLink };
50
+ //# sourceMappingURL=client.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,44 +1,113 @@
1
- import { createTRPCUntypedClient, clientCallTypeToProcedureType } from '@trpc/client';
2
- import { createRecursiveProxy } from '@trpc/server/unstable-core-do-not-import';
3
- export { experimental_createActionHook, experimental_serverActionLink } from './create-action-hook.mjs';
1
+ import { isFormData } from "../shared-FEQznZ-6.mjs";
2
+ import { getTransformer } from "@trpc/client/unstable-internals";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
+ import { createRecursiveProxy, transformResult } from "@trpc/server/unstable-core-do-not-import";
5
+ import { TRPCClientError, clientCallTypeToProcedureType, createTRPCUntypedClient } from "@trpc/client";
6
+ import { observable } from "@trpc/server/observable";
4
7
 
5
- // ts-prune-ignore-next
8
+ //#region src/app-dir/create-action-hook.tsx
9
+ function experimental_serverActionLink(...args) {
10
+ const [opts] = args;
11
+ const transformer = getTransformer(opts?.transformer);
12
+ return () => ({ op }) => observable((observer) => {
13
+ const context = op.context;
14
+ context._action(isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
15
+ const transformed = transformResult(data, transformer.output);
16
+ if (!transformed.ok) {
17
+ observer.error(TRPCClientError.from(transformed.error, {}));
18
+ return;
19
+ }
20
+ observer.next({
21
+ context: op.context,
22
+ result: transformed.result
23
+ });
24
+ observer.complete();
25
+ }).catch((cause) => {
26
+ observer.error(TRPCClientError.from(cause));
27
+ });
28
+ });
29
+ }
30
+ function experimental_createActionHook(opts) {
31
+ const client = createTRPCUntypedClient(opts);
32
+ return function useAction(handler, useActionOpts) {
33
+ const count = useRef(0);
34
+ const [state, setState] = useState({ status: "idle" });
35
+ const actionOptsRef = useRef(useActionOpts);
36
+ actionOptsRef.current = useActionOpts;
37
+ useEffect(() => {
38
+ return () => {
39
+ count.current = -1;
40
+ actionOptsRef.current = void 0;
41
+ };
42
+ }, []);
43
+ const mutateAsync = useCallback((input, requestOptions) => {
44
+ const idx = ++count.current;
45
+ const context = {
46
+ ...requestOptions?.context,
47
+ _action(innerInput) {
48
+ return handler(innerInput);
49
+ }
50
+ };
51
+ setState({ status: "loading" });
52
+ return client.mutation("serverAction", input, {
53
+ ...requestOptions,
54
+ context
55
+ }).then(async (data) => {
56
+ await actionOptsRef.current?.onSuccess?.(data);
57
+ if (idx !== count.current) return;
58
+ setState({
59
+ status: "success",
60
+ data
61
+ });
62
+ }).catch(async (error) => {
63
+ await actionOptsRef.current?.onError?.(error);
64
+ throw error;
65
+ }).catch((error) => {
66
+ if (idx !== count.current) return;
67
+ setState({
68
+ status: "error",
69
+ error: TRPCClientError.from(error, {})
70
+ });
71
+ throw error;
72
+ });
73
+ }, [handler]);
74
+ const mutate = useCallback((...args) => {
75
+ mutateAsync(...args).catch(() => {});
76
+ }, [mutateAsync]);
77
+ return useMemo(() => ({
78
+ ...state,
79
+ mutate,
80
+ mutateAsync
81
+ }), [
82
+ mutate,
83
+ mutateAsync,
84
+ state
85
+ ]);
86
+ };
87
+ }
88
+
89
+ //#endregion
90
+ //#region src/app-dir/client.ts
6
91
  function experimental_createTRPCNextAppDirClient(opts) {
7
- const client = createTRPCUntypedClient(opts.config());
8
- // const useProxy = createUseProxy<TRouter>(client);
9
- const cache = new Map();
10
- return createRecursiveProxy(({ path, args })=>{
11
- // const pathCopy = [key, ...path];
12
- const pathCopy = [
13
- ...path
14
- ];
15
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
16
- const procedureType = clientCallTypeToProcedureType(pathCopy.pop());
17
- if (procedureType === 'query') {
18
- const queryCacheKey = JSON.stringify([
19
- path,
20
- args[0]
21
- ]);
22
- const cached = cache.get(queryCacheKey);
23
- if (cached?.promise) {
24
- return cached.promise;
25
- }
26
- }
27
- const fullPath = pathCopy.join('.');
28
- const promise = client[procedureType](fullPath, ...args);
29
- if (procedureType !== 'query') {
30
- return promise;
31
- }
32
- const queryCacheKey = JSON.stringify([
33
- path,
34
- args[0]
35
- ]);
36
- cache.set(queryCacheKey, {
37
- promise
38
- });
39
- return promise;
40
- });
41
- // });
92
+ const client = createTRPCUntypedClient(opts.config());
93
+ const cache$1 = /* @__PURE__ */ new Map();
94
+ return createRecursiveProxy(({ path, args }) => {
95
+ const pathCopy = [...path];
96
+ const procedureType = clientCallTypeToProcedureType(pathCopy.pop());
97
+ if (procedureType === "query") {
98
+ const queryCacheKey$1 = JSON.stringify([path, args[0]]);
99
+ const cached = cache$1.get(queryCacheKey$1);
100
+ if (cached?.promise) return cached.promise;
101
+ }
102
+ const fullPath = pathCopy.join(".");
103
+ const promise = client[procedureType](fullPath, ...args);
104
+ if (procedureType !== "query") return promise;
105
+ const queryCacheKey = JSON.stringify([path, args[0]]);
106
+ cache$1.set(queryCacheKey, { promise });
107
+ return promise;
108
+ });
42
109
  }
43
110
 
44
- export { experimental_createTRPCNextAppDirClient };
111
+ //#endregion
112
+ export { experimental_createActionHook, experimental_createTRPCNextAppDirClient, experimental_serverActionLink };
113
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.mjs","names":["opts: InferrableClientTypes extends TInferrable\n ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'>\n : CreateTRPCClientOptions<TInferrable>","handler: TRPCActionHandler<TDef>","useActionOpts?: UseTRPCActionOptions<Simplify<TDef>>","input: any","requestOptions?: TRPCRequestOptions","mutate: Result['mutate']","opts: CreateTRPCNextAppRouterOptions<TRouter>","cache","queryCacheKey","promise: Promise<unknown>"],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"sourcesContent":["import type {\n CreateTRPCClientOptions,\n TRPCLink,\n TRPCProcedureOptions,\n TRPCRequestOptions,\n} from '@trpc/client';\nimport { createTRPCUntypedClient, TRPCClientError } from '@trpc/client';\nimport type {\n CoercedTransformerParameters,\n TransformerOptions,\n} from '@trpc/client/unstable-internals';\nimport { getTransformer } from '@trpc/client/unstable-internals';\nimport { observable } from '@trpc/server/observable';\nimport type {\n inferClientTypes,\n InferrableClientTypes,\n MaybePromise,\n Simplify,\n TypeError,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { transformResult } from '@trpc/server/unstable-core-do-not-import';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { TRPCActionHandler } from './server';\nimport type { ActionHandlerDef } from './shared';\nimport { isFormData } from './shared';\n\ntype MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void\n ? [input?: undefined | void, opts?: TRPCProcedureOptions]\n : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions];\n\ninterface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> {\n mutate: (...args: MutationArgs<TDef>) => void;\n mutateAsync: (...args: MutationArgs<TDef>) => Promise<TDef['output']>;\n}\n\ninterface UseTRPCActionSuccessResult<TDef extends ActionHandlerDef>\n extends UseTRPCActionBaseResult<TDef> {\n data: TDef['output'];\n error?: never;\n status: 'success';\n}\n\ninterface UseTRPCActionErrorResult<TDef extends ActionHandlerDef>\n extends UseTRPCActionBaseResult<TDef> {\n data?: never;\n error: TRPCClientError<TDef['errorShape']>;\n status: 'error';\n}\n\ninterface UseTRPCActionIdleResult<TDef extends ActionHandlerDef>\n extends UseTRPCActionBaseResult<TDef> {\n data?: never;\n error?: never;\n status: 'idle';\n}\n\ninterface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef>\n extends UseTRPCActionBaseResult<TDef> {\n data?: never;\n error?: never;\n status: 'loading';\n}\n\n// ts-prune-ignore-next\nexport type UseTRPCActionResult<TDef extends ActionHandlerDef> =\n | UseTRPCActionErrorResult<TDef>\n | UseTRPCActionIdleResult<TDef>\n | UseTRPCActionLoadingResult<TDef>\n | UseTRPCActionSuccessResult<TDef>;\n\ntype ActionContext = {\n _action: (...args: any[]) => Promise<any>;\n};\n\n// ts-prune-ignore-next\nexport function experimental_serverActionLink<\n TInferrable extends InferrableClientTypes,\n>(\n ...args: InferrableClientTypes extends TInferrable\n ? [\n TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()` or experimental_serverActionLink<HERE>()'>,\n ]\n : inferClientTypes<TInferrable>['transformer'] extends true\n ? [\n opts: TransformerOptions<{\n transformer: true;\n }>,\n ]\n : [\n opts?: TransformerOptions<{\n transformer: false;\n }>,\n ]\n): TRPCLink<TInferrable> {\n const [opts] = args as [CoercedTransformerParameters];\n const transformer = getTransformer(opts?.transformer);\n return () =>\n ({ op }) =>\n observable((observer) => {\n const context = op.context as ActionContext;\n\n context\n ._action(\n isFormData(op.input)\n ? op.input\n : transformer.input.serialize(op.input),\n )\n .then((data) => {\n const transformed = transformResult(data, transformer.output);\n\n if (!transformed.ok) {\n observer.error(TRPCClientError.from(transformed.error, {}));\n return;\n }\n observer.next({\n context: op.context,\n result: transformed.result,\n });\n observer.complete();\n })\n .catch((cause) => {\n observer.error(TRPCClientError.from(cause));\n });\n });\n}\n\ninterface UseTRPCActionOptions<TDef extends ActionHandlerDef> {\n onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;\n onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;\n}\n// ts-prune-ignore-next\nexport function experimental_createActionHook<\n TInferrable extends InferrableClientTypes,\n>(\n opts: InferrableClientTypes extends TInferrable\n ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'>\n : CreateTRPCClientOptions<TInferrable>,\n) {\n type ActionContext = {\n _action: (...args: any[]) => Promise<any>;\n };\n const client = createTRPCUntypedClient(\n opts as Exclude<typeof opts, TypeError<any>>,\n );\n return function useAction<TDef extends ActionHandlerDef>(\n handler: TRPCActionHandler<TDef>,\n useActionOpts?: UseTRPCActionOptions<Simplify<TDef>>,\n ) {\n const count = useRef(0);\n\n type Result = UseTRPCActionResult<TDef>;\n type State = Omit<Result, 'mutate' | 'mutateAsync'>;\n const [state, setState] = useState<State>({\n status: 'idle',\n });\n\n const actionOptsRef = useRef(useActionOpts);\n actionOptsRef.current = useActionOpts;\n\n useEffect(() => {\n return () => {\n // cleanup after unmount to prevent calling hook opts after unmount\n count.current = -1;\n actionOptsRef.current = undefined;\n };\n }, []);\n\n const mutateAsync = useCallback(\n (input: any, requestOptions?: TRPCRequestOptions) => {\n const idx = ++count.current;\n const context = {\n ...requestOptions?.context,\n _action(innerInput) {\n return handler(innerInput);\n },\n } as ActionContext;\n\n setState({\n status: 'loading',\n });\n return client\n .mutation('serverAction', input, {\n ...requestOptions,\n context,\n })\n .then(async (data) => {\n await actionOptsRef.current?.onSuccess?.(data as any);\n if (idx !== count.current) {\n return;\n }\n setState({\n status: 'success',\n data: data as any,\n });\n })\n .catch(async (error) => {\n await actionOptsRef.current?.onError?.(error);\n throw error;\n })\n .catch((error) => {\n if (idx !== count.current) {\n return;\n }\n setState({\n status: 'error',\n error: TRPCClientError.from(error, {}),\n });\n throw error;\n });\n },\n [handler],\n ) as Result['mutateAsync'];\n\n const mutate: Result['mutate'] = useCallback(\n (...args: any[]) => {\n void (mutateAsync as any)(...args).catch(() => {\n // ignored\n });\n },\n [mutateAsync],\n );\n\n return useMemo(\n () => ({\n ...state,\n mutate,\n mutateAsync,\n }),\n [mutate, mutateAsync, state],\n ) as Result;\n };\n}\n","import type { TRPCClient } from '@trpc/client';\nimport {\n clientCallTypeToProcedureType,\n createTRPCUntypedClient,\n} from '@trpc/client';\nimport type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';\nimport { createRecursiveProxy } from '@trpc/server/unstable-core-do-not-import';\nimport type { CreateTRPCNextAppRouterOptions } from './shared';\n\nexport {\n // ts-prune-ignore-next\n experimental_createActionHook,\n // ts-prune-ignore-next\n experimental_serverActionLink,\n // ts-prune-ignore-next\n type UseTRPCActionResult,\n} from './create-action-hook';\n\ntype QueryResult = {\n data?: unknown;\n error?: unknown;\n promise?: Promise<unknown>;\n};\n\n// ts-prune-ignore-next\nexport function experimental_createTRPCNextAppDirClient<\n TRouter extends AnyRouter,\n>(opts: CreateTRPCNextAppRouterOptions<TRouter>) {\n const client = createTRPCUntypedClient<TRouter>(opts.config());\n // const useProxy = createUseProxy<TRouter>(client);\n\n const cache = new Map<string, QueryResult>();\n\n return createRecursiveProxy<TRPCClient<TRouter>>(({ path, args }) => {\n // const pathCopy = [key, ...path];\n const pathCopy = [...path];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const procedureType = clientCallTypeToProcedureType(pathCopy.pop()!);\n\n if (procedureType === 'query') {\n const queryCacheKey = JSON.stringify([path, args[0]]);\n const cached = cache.get(queryCacheKey);\n\n if (cached?.promise) {\n return cached.promise;\n }\n }\n\n const fullPath = pathCopy.join('.');\n\n const promise: Promise<unknown> = (client as any)[procedureType](\n fullPath,\n ...args,\n );\n if (procedureType !== 'query') {\n return promise;\n }\n\n const queryCacheKey = JSON.stringify([path, args[0]]);\n\n cache.set(queryCacheKey, {\n promise,\n });\n\n return promise;\n });\n // });\n}\n"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ const require_chunk = require('../../chunk-CUT6urMc.cjs');
2
+ const require_shared = require('../../shared-C9SS-IYg.cjs');
3
+ const __trpc_client_unstable_internals = require_chunk.__toESM(require("@trpc/client/unstable-internals"));
4
+ const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
5
+ const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
6
+ const __trpc_server_observable = require_chunk.__toESM(require("@trpc/server/observable"));
7
+ const next_cache = require_chunk.__toESM(require("next/cache"));
8
+
9
+ //#region src/app-dir/links/nextCache.ts
10
+ function experimental_nextCacheLink(opts) {
11
+ const transformer = (0, __trpc_client_unstable_internals.getTransformer)(opts.transformer);
12
+ return () => ({ op }) => (0, __trpc_server_observable.observable)((observer) => {
13
+ const { path, input, type, context } = op;
14
+ const cacheTag = require_shared.generateCacheTag(path, input);
15
+ const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
16
+ const revalidate = requestRevalidate ?? opts.revalidate ?? false;
17
+ const promise = opts.createContext().then(async (ctx) => {
18
+ const callProc = async (_cachebuster) => {
19
+ const procedureResult = await (0, __trpc_server_unstable_core_do_not_import.callProcedure)({
20
+ router: opts.router,
21
+ path,
22
+ getRawInput: async () => input,
23
+ ctx,
24
+ type,
25
+ signal: void 0
26
+ });
27
+ return transformer.input.serialize(procedureResult);
28
+ };
29
+ if (type === "query") return (0, next_cache.unstable_cache)(callProc, path.split("."), {
30
+ revalidate,
31
+ tags: [cacheTag]
32
+ })(cacheTag);
33
+ return callProc(cacheTag);
34
+ }).catch((cause) => {
35
+ observer.error(__trpc_client.TRPCClientError.from(cause));
36
+ });
37
+ promise.then((data) => {
38
+ const transformedResult = transformer.output.deserialize(data);
39
+ observer.next({ result: { data: transformedResult } });
40
+ observer.complete();
41
+ }).catch((cause) => {
42
+ observer.error(__trpc_client.TRPCClientError.from(cause));
43
+ });
44
+ });
45
+ }
46
+
47
+ //#endregion
48
+ exports.experimental_nextCacheLink = experimental_nextCacheLink;
@@ -0,0 +1,15 @@
1
+ import { TRPCLink } from "@trpc/client";
2
+ import { AnyRouter, inferClientTypes, inferRouterContext } from "@trpc/server/unstable-core-do-not-import";
3
+ import { TransformerOptions } from "@trpc/client/unstable-internals";
4
+
5
+ //#region src/app-dir/links/nextCache.d.ts
6
+ type NextCacheLinkOptions<TRouter extends AnyRouter> = {
7
+ router: TRouter;
8
+ createContext: () => Promise<inferRouterContext<TRouter>>;
9
+ /** how many seconds the cache should hold before revalidating */
10
+ revalidate?: number | false;
11
+ } & TransformerOptions<inferClientTypes<TRouter>>;
12
+ declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
13
+ //#endregion
14
+ export { experimental_nextCacheLink };
15
+ //# sourceMappingURL=nextCache.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextCache.d.cts","names":[],"sources":["../../../src/app-dir/links/nextCache.ts"],"sourcesContent":[],"mappings":";;;;;KAkBK,qCAAqC;UAChC;EADL,aAAA,EAAA,GAAA,GAEkB,OAFE,CAEM,kBAFN,CAEyB,OAFzB,CAAA,CAAA;EAAA;EAAA,UAAiB,CAAA,EAAA,MAAA,GAAA,KAAA;CAAS,GAK/C,kBAJM,CAIa,gBAJb,CAI8B,OAJ9B,CAAA,CAAA;AACwC,iBAMlC,0BANkC,CAAA,gBAMS,SANT,CAAA,CAAA,IAAA,EAO1C,oBAP0C,CAOrB,OAPqB,CAAA,CAAA,EAQ/C,QAR+C,CAQtC,OARsC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { TransformerOptions } from "@trpc/client/unstable-internals";
2
+ import { AnyRouter, inferClientTypes, inferRouterContext } from "@trpc/server/unstable-core-do-not-import";
3
+ import { TRPCLink } from "@trpc/client";
4
+
5
+ //#region src/app-dir/links/nextCache.d.ts
6
+ type NextCacheLinkOptions<TRouter extends AnyRouter> = {
7
+ router: TRouter;
8
+ createContext: () => Promise<inferRouterContext<TRouter>>;
9
+ /** how many seconds the cache should hold before revalidating */
10
+ revalidate?: number | false;
11
+ } & TransformerOptions<inferClientTypes<TRouter>>;
12
+ declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
13
+ //#endregion
14
+ export { experimental_nextCacheLink };
15
+ //# sourceMappingURL=nextCache.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextCache.d.mts","names":[],"sources":["../../../src/app-dir/links/nextCache.ts"],"sourcesContent":[],"mappings":";;;;;KAkBK,qCAAqC;UAChC;EADL,aAAA,EAAA,GAAA,GAEkB,OAFE,CAEM,kBAFN,CAEyB,OAFzB,CAAA,CAAA;EAAA;EAAA,UAAiB,CAAA,EAAA,MAAA,GAAA,KAAA;CAAS,GAK/C,kBAJM,CAIa,gBAJb,CAI8B,OAJ9B,CAAA,CAAA;AACwC,iBAMlC,0BANkC,CAAA,gBAMS,SANT,CAAA,CAAA,IAAA,EAO1C,oBAP0C,CAOrB,OAPqB,CAAA,CAAA,EAQ/C,QAR+C,CAQtC,OARsC,CAAA"}
@@ -1,60 +1,48 @@
1
- import { TRPCClientError } from '@trpc/client';
2
- import { getTransformer } from '@trpc/client/unstable-internals';
3
- import { observable } from '@trpc/server/observable';
4
- import { callProcedure } from '@trpc/server/unstable-core-do-not-import';
5
- import { unstable_cache } from 'next/cache';
6
- import { generateCacheTag } from '../shared.mjs';
1
+ import { generateCacheTag } from "../../shared-FEQznZ-6.mjs";
2
+ import { getTransformer } from "@trpc/client/unstable-internals";
3
+ import { callProcedure } from "@trpc/server/unstable-core-do-not-import";
4
+ import { TRPCClientError } from "@trpc/client";
5
+ import { observable } from "@trpc/server/observable";
6
+ import { unstable_cache } from "next/cache";
7
7
 
8
- // import "server-only";
9
- // ts-prune-ignore-next
8
+ //#region src/app-dir/links/nextCache.ts
10
9
  function experimental_nextCacheLink(opts) {
11
- const transformer = getTransformer(opts.transformer);
12
- return ()=>({ op })=>observable((observer)=>{
13
- const { path, input, type, context } = op;
14
- const cacheTag = generateCacheTag(path, input);
15
- // Let per-request revalidate override global revalidate
16
- const requestRevalidate = typeof context['revalidate'] === 'number' || context['revalidate'] === false ? context['revalidate'] : undefined;
17
- const revalidate = requestRevalidate ?? opts.revalidate ?? false;
18
- const promise = opts.createContext().then(async (ctx)=>{
19
- const callProc = async (_cachebuster)=>{
20
- // // _cachebuster is not used by us but to make sure
21
- // // that calls with different tags are properly separated
22
- // // @link https://github.com/trpc/trpc/issues/4622
23
- const procedureResult = await callProcedure({
24
- router: opts.router,
25
- path,
26
- getRawInput: async ()=>input,
27
- ctx: ctx,
28
- type,
29
- signal: undefined
30
- });
31
- // We need to serialize cause the cache only accepts JSON
32
- return transformer.input.serialize(procedureResult);
33
- };
34
- if (type === 'query') {
35
- return unstable_cache(callProc, path.split('.'), {
36
- revalidate,
37
- tags: [
38
- cacheTag
39
- ]
40
- })(cacheTag);
41
- }
42
- return callProc();
43
- }).catch((cause)=>{
44
- observer.error(TRPCClientError.from(cause));
45
- });
46
- promise.then((data)=>{
47
- const transformedResult = transformer.output.deserialize(data);
48
- observer.next({
49
- result: {
50
- data: transformedResult
51
- }
52
- });
53
- observer.complete();
54
- }).catch((cause)=>{
55
- observer.error(TRPCClientError.from(cause));
56
- });
57
- });
10
+ const transformer = getTransformer(opts.transformer);
11
+ return () => ({ op }) => observable((observer) => {
12
+ const { path, input, type, context } = op;
13
+ const cacheTag = generateCacheTag(path, input);
14
+ const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
15
+ const revalidate = requestRevalidate ?? opts.revalidate ?? false;
16
+ const promise = opts.createContext().then(async (ctx) => {
17
+ const callProc = async (_cachebuster) => {
18
+ const procedureResult = await callProcedure({
19
+ router: opts.router,
20
+ path,
21
+ getRawInput: async () => input,
22
+ ctx,
23
+ type,
24
+ signal: void 0
25
+ });
26
+ return transformer.input.serialize(procedureResult);
27
+ };
28
+ if (type === "query") return unstable_cache(callProc, path.split("."), {
29
+ revalidate,
30
+ tags: [cacheTag]
31
+ })(cacheTag);
32
+ return callProc(cacheTag);
33
+ }).catch((cause) => {
34
+ observer.error(TRPCClientError.from(cause));
35
+ });
36
+ promise.then((data) => {
37
+ const transformedResult = transformer.output.deserialize(data);
38
+ observer.next({ result: { data: transformedResult } });
39
+ observer.complete();
40
+ }).catch((cause) => {
41
+ observer.error(TRPCClientError.from(cause));
42
+ });
43
+ });
58
44
  }
59
45
 
46
+ //#endregion
60
47
  export { experimental_nextCacheLink };
48
+ //# sourceMappingURL=nextCache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextCache.mjs","names":["opts: NextCacheLinkOptions<TRouter>","_cachebuster: string"],"sources":["../../../src/app-dir/links/nextCache.ts"],"sourcesContent":["// import \"server-only\";\n\nimport type { TRPCLink } from '@trpc/client';\nimport { TRPCClientError } from '@trpc/client';\nimport {\n getTransformer,\n type TransformerOptions,\n} from '@trpc/client/unstable-internals';\nimport { observable } from '@trpc/server/observable';\nimport type {\n AnyRouter,\n inferClientTypes,\n inferRouterContext,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { callProcedure } from '@trpc/server/unstable-core-do-not-import';\nimport { unstable_cache } from 'next/cache';\nimport { generateCacheTag } from '../shared';\n\ntype NextCacheLinkOptions<TRouter extends AnyRouter> = {\n router: TRouter;\n createContext: () => Promise<inferRouterContext<TRouter>>;\n /** how many seconds the cache should hold before revalidating */\n revalidate?: number | false;\n} & TransformerOptions<inferClientTypes<TRouter>>;\n\n// ts-prune-ignore-next\nexport function experimental_nextCacheLink<TRouter extends AnyRouter>(\n opts: NextCacheLinkOptions<TRouter>,\n): TRPCLink<TRouter> {\n const transformer = getTransformer(opts.transformer);\n return () =>\n ({ op }) =>\n observable((observer) => {\n const { path, input, type, context } = op;\n\n const cacheTag = generateCacheTag(path, input);\n // Let per-request revalidate override global revalidate\n const requestRevalidate =\n typeof context['revalidate'] === 'number' ||\n context['revalidate'] === false\n ? context['revalidate']\n : undefined;\n const revalidate = requestRevalidate ?? opts.revalidate ?? false;\n\n const promise = opts\n .createContext()\n .then(async (ctx) => {\n const callProc = async (_cachebuster: string) => {\n // // _cachebuster is not used by us but to make sure\n // // that calls with different tags are properly separated\n // // @link https://github.com/trpc/trpc/issues/4622\n const procedureResult = await callProcedure({\n router: opts.router,\n path,\n getRawInput: async () => input,\n ctx: ctx,\n type,\n signal: undefined,\n });\n\n // We need to serialize cause the cache only accepts JSON\n return transformer.input.serialize(procedureResult);\n };\n\n if (type === 'query') {\n return unstable_cache(callProc, path.split('.'), {\n revalidate,\n tags: [cacheTag],\n })(cacheTag);\n }\n\n return callProc(cacheTag);\n })\n .catch((cause) => {\n observer.error(TRPCClientError.from(cause));\n });\n\n promise\n .then((data) => {\n const transformedResult = transformer.output.deserialize(data);\n observer.next({ result: { data: transformedResult } });\n observer.complete();\n })\n .catch((cause) => {\n observer.error(TRPCClientError.from(cause));\n });\n });\n}\n"],"mappings":";;;;;;;;AA0BA,SAAgB,2BACdA,MACmB;CACnB,MAAM,cAAc,eAAe,KAAK,YAAY;AACpD,QAAO,MACL,CAAC,EAAE,IAAI,KACL,WAAW,CAAC,aAAa;EACvB,MAAM,EAAE,MAAM,OAAO,MAAM,SAAS,GAAG;EAEvC,MAAM,WAAW,iBAAiB,MAAM,MAAM;EAE9C,MAAM,2BACG,QAAQ,kBAAkB,YACjC,QAAQ,kBAAkB,QACtB,QAAQ;EAEd,MAAM,aAAa,qBAAqB,KAAK,cAAc;EAE3D,MAAM,UAAU,KACb,eAAe,CACf,KAAK,OAAO,QAAQ;GACnB,MAAM,WAAW,OAAOC,iBAAyB;IAI/C,MAAM,kBAAkB,MAAM,cAAc;KAC1C,QAAQ,KAAK;KACb;KACA,aAAa,YAAY;KACpB;KACL;KACA;IACD,EAAC;AAGF,WAAO,YAAY,MAAM,UAAU,gBAAgB;GACpD;AAED,OAAI,SAAS,QACX,QAAO,eAAe,UAAU,KAAK,MAAM,IAAI,EAAE;IAC/C;IACA,MAAM,CAAC,QAAS;GACjB,EAAC,CAAC,SAAS;AAGd,UAAO,SAAS,SAAS;EAC1B,EAAC,CACD,MAAM,CAAC,UAAU;AAChB,YAAS,MAAM,gBAAgB,KAAK,MAAM,CAAC;EAC5C,EAAC;AAEJ,UACG,KAAK,CAAC,SAAS;GACd,MAAM,oBAAoB,YAAY,OAAO,YAAY,KAAK;AAC9D,YAAS,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAmB,EAAE,EAAC;AACtD,YAAS,UAAU;EACpB,EAAC,CACD,MAAM,CAAC,UAAU;AAChB,YAAS,MAAM,gBAAgB,KAAK,MAAM,CAAC;EAC5C,EAAC;CACL,EAAC;AACP"}