@trpc/next 11.18.1-canary.6 → 11.19.0
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/app-dir/client.cjs +25 -30
- package/dist/app-dir/client.d.cts +5 -8
- package/dist/app-dir/client.d.cts.map +1 -1
- package/dist/app-dir/client.d.mts +5 -8
- package/dist/app-dir/client.d.mts.map +1 -1
- package/dist/app-dir/client.mjs +11 -15
- package/dist/app-dir/client.mjs.map +1 -1
- package/dist/app-dir/links/nextCache.cjs +15 -18
- package/dist/app-dir/links/nextCache.d.cts +1 -3
- package/dist/app-dir/links/nextCache.d.cts.map +1 -1
- package/dist/app-dir/links/nextCache.d.mts +1 -3
- package/dist/app-dir/links/nextCache.d.mts.map +1 -1
- package/dist/app-dir/links/nextCache.mjs +5 -7
- package/dist/app-dir/links/nextCache.mjs.map +1 -1
- package/dist/app-dir/links/nextHttp.cjs +7 -11
- package/dist/app-dir/links/nextHttp.d.cts +1 -3
- package/dist/app-dir/links/nextHttp.d.cts.map +1 -1
- package/dist/app-dir/links/nextHttp.d.mts +1 -3
- package/dist/app-dir/links/nextHttp.d.mts.map +1 -1
- package/dist/app-dir/links/nextHttp.mjs +5 -8
- package/dist/app-dir/links/nextHttp.mjs.map +1 -1
- package/dist/app-dir/server.cjs +18 -21
- package/dist/app-dir/server.d.cts +2 -2
- package/dist/app-dir/server.d.mts +2 -2
- package/dist/app-dir/server.mjs +3 -5
- package/dist/app-dir/server.mjs.map +1 -1
- package/dist/index.cjs +47 -36
- package/dist/index.d.cts +5 -9
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +5 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +12 -23
- package/dist/index.mjs.map +1 -1
- package/dist/objectSpread2-C2ceYbQe.cjs +67 -0
- package/dist/objectSpread2-Dh4InpQf.mjs +62 -0
- package/dist/{server.d-C5p0ZwB7.d.mts → server-BSCiwefJ.d.cts} +5 -13
- package/dist/server-BSCiwefJ.d.cts.map +1 -0
- package/dist/{server.d-DLnegS7F.d.cts → server-DQOX6CNV.d.mts} +5 -13
- package/dist/server-DQOX6CNV.d.mts.map +1 -0
- package/dist/shared-BcvoW6jT.cjs +26 -0
- package/dist/{shared-Bco66qhk.mjs → shared-DJ-gGeuI.mjs} +5 -6
- package/dist/shared-DJ-gGeuI.mjs.map +1 -0
- package/dist/ssrPrepass.cjs +23 -28
- package/dist/ssrPrepass.d.cts +2 -6
- package/dist/ssrPrepass.d.cts.map +1 -1
- package/dist/ssrPrepass.d.mts +2 -6
- package/dist/ssrPrepass.d.mts.map +1 -1
- package/dist/ssrPrepass.mjs +13 -17
- package/dist/ssrPrepass.mjs.map +1 -1
- package/dist/{withTRPC.d-DctYN4Yz.d.cts → withTRPC-BchtyodQ.d.mts} +5 -7
- package/dist/withTRPC-BchtyodQ.d.mts.map +1 -0
- package/dist/{withTRPC.d-B3f3A0sf.d.mts → withTRPC-DywCxFfq.d.cts} +5 -7
- package/dist/withTRPC-DywCxFfq.d.cts.map +1 -0
- package/package.json +14 -14
- package/src/app-dir/create-action-hook.tsx +16 -12
- package/src/ssrPrepass.ts +1 -2
- package/src/withTRPC.tsx +1 -2
- package/dist/chunk-DWy1uDak.cjs +0 -39
- package/dist/objectSpread2-3tHFGdJc.mjs +0 -114
- package/dist/objectSpread2-3tHFGdJc.mjs.map +0 -1
- package/dist/objectSpread2-CGXFkI72.cjs +0 -94
- package/dist/server.d-C5p0ZwB7.d.mts.map +0 -1
- package/dist/server.d-DLnegS7F.d.cts.map +0 -1
- package/dist/shared-Bco66qhk.mjs.map +0 -1
- package/dist/shared-COdt67yK.cjs +0 -29
- package/dist/withTRPC.d-B3f3A0sf.d.mts.map +0 -1
- package/dist/withTRPC.d-DctYN4Yz.d.cts.map +0 -1
package/dist/app-dir/client.cjs
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
const require_objectSpread2
|
|
3
|
-
const require_shared = require(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_objectSpread2 = require("../objectSpread2-C2ceYbQe.cjs");
|
|
3
|
+
const require_shared = require("../shared-BcvoW6jT.cjs");
|
|
4
|
+
let _trpc_client_unstable_internals = require("@trpc/client/unstable-internals");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
let _trpc_server_unstable_core_do_not_import = require("@trpc/server/unstable-core-do-not-import");
|
|
7
|
+
let _trpc_client = require("@trpc/client");
|
|
8
|
+
let _trpc_server_observable = require("@trpc/server/observable");
|
|
10
9
|
//#region src/app-dir/create-action-hook.tsx
|
|
11
|
-
var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2());
|
|
12
10
|
function experimental_serverActionLink(...args) {
|
|
13
11
|
const [opts] = args;
|
|
14
|
-
const transformer = (0,
|
|
15
|
-
return () => ({ op }) => (0,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const transformed = (0, __trpc_server_unstable_core_do_not_import.transformResult)(data, transformer.output);
|
|
12
|
+
const transformer = (0, _trpc_client_unstable_internals.getTransformer)(opts === null || opts === void 0 ? void 0 : opts.transformer);
|
|
13
|
+
return () => ({ op }) => (0, _trpc_server_observable.observable)((observer) => {
|
|
14
|
+
op.context._action(require_shared.isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
|
|
15
|
+
const transformed = (0, _trpc_server_unstable_core_do_not_import.transformResult)(data, transformer.output);
|
|
19
16
|
if (!transformed.ok) {
|
|
20
|
-
observer.error(
|
|
17
|
+
observer.error(_trpc_client.TRPCClientError.from(transformed.error, {}));
|
|
21
18
|
return;
|
|
22
19
|
}
|
|
23
20
|
observer.next({
|
|
@@ -26,12 +23,12 @@ function experimental_serverActionLink(...args) {
|
|
|
26
23
|
});
|
|
27
24
|
observer.complete();
|
|
28
25
|
}).catch((cause) => {
|
|
29
|
-
observer.error(
|
|
26
|
+
observer.error(_trpc_client.TRPCClientError.from(cause));
|
|
30
27
|
});
|
|
31
28
|
});
|
|
32
29
|
}
|
|
33
30
|
function experimental_createActionHook(opts) {
|
|
34
|
-
const client = (0,
|
|
31
|
+
const client = (0, _trpc_client.createTRPCUntypedClient)(opts);
|
|
35
32
|
return function useAction(handler, useActionOpts) {
|
|
36
33
|
const count = (0, react.useRef)(0);
|
|
37
34
|
const [state, setState] = (0, react.useState)({ status: "idle" });
|
|
@@ -45,11 +42,11 @@ function experimental_createActionHook(opts) {
|
|
|
45
42
|
}, []);
|
|
46
43
|
const mutateAsync = (0, react.useCallback)((input, requestOptions) => {
|
|
47
44
|
const idx = ++count.current;
|
|
48
|
-
const context =
|
|
45
|
+
const context = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.context), {}, { _action(innerInput) {
|
|
49
46
|
return handler(innerInput);
|
|
50
47
|
} });
|
|
51
48
|
setState({ status: "loading" });
|
|
52
|
-
return client.mutation("serverAction", input,
|
|
49
|
+
return client.mutation("serverAction", input, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, requestOptions), {}, { context })).then(async (data) => {
|
|
53
50
|
var _actionOptsRef$curren, _actionOptsRef$curren2;
|
|
54
51
|
await ((_actionOptsRef$curren = actionOptsRef.current) === null || _actionOptsRef$curren === void 0 || (_actionOptsRef$curren2 = _actionOptsRef$curren.onSuccess) === null || _actionOptsRef$curren2 === void 0 ? void 0 : _actionOptsRef$curren2.call(_actionOptsRef$curren, data));
|
|
55
52
|
if (idx !== count.current) return;
|
|
@@ -65,7 +62,7 @@ function experimental_createActionHook(opts) {
|
|
|
65
62
|
if (idx !== count.current) return;
|
|
66
63
|
setState({
|
|
67
64
|
status: "error",
|
|
68
|
-
error:
|
|
65
|
+
error: _trpc_client.TRPCClientError.from(error, {})
|
|
69
66
|
});
|
|
70
67
|
throw error;
|
|
71
68
|
});
|
|
@@ -73,7 +70,7 @@ function experimental_createActionHook(opts) {
|
|
|
73
70
|
const mutate = (0, react.useCallback)((...args) => {
|
|
74
71
|
mutateAsync(...args).catch(() => {});
|
|
75
72
|
}, [mutateAsync]);
|
|
76
|
-
return (0, react.useMemo)(() =>
|
|
73
|
+
return (0, react.useMemo)(() => require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, state), {}, {
|
|
77
74
|
mutate,
|
|
78
75
|
mutateAsync
|
|
79
76
|
}), [
|
|
@@ -83,18 +80,17 @@ function experimental_createActionHook(opts) {
|
|
|
83
80
|
]);
|
|
84
81
|
};
|
|
85
82
|
}
|
|
86
|
-
|
|
87
83
|
//#endregion
|
|
88
84
|
//#region src/app-dir/client.ts
|
|
89
85
|
function experimental_createTRPCNextAppDirClient(opts) {
|
|
90
|
-
const client = (0,
|
|
86
|
+
const client = (0, _trpc_client.createTRPCUntypedClient)(opts.config());
|
|
91
87
|
const cache = /* @__PURE__ */ new Map();
|
|
92
|
-
return (0,
|
|
88
|
+
return (0, _trpc_server_unstable_core_do_not_import.createRecursiveProxy)(({ path, args }) => {
|
|
93
89
|
const pathCopy = [...path];
|
|
94
|
-
const procedureType = (0,
|
|
90
|
+
const procedureType = (0, _trpc_client.clientCallTypeToProcedureType)(pathCopy.pop());
|
|
95
91
|
if (procedureType === "query") {
|
|
96
|
-
const queryCacheKey
|
|
97
|
-
const cached = cache.get(queryCacheKey
|
|
92
|
+
const queryCacheKey = JSON.stringify([path, args[0]]);
|
|
93
|
+
const cached = cache.get(queryCacheKey);
|
|
98
94
|
if (cached === null || cached === void 0 ? void 0 : cached.promise) return cached.promise;
|
|
99
95
|
}
|
|
100
96
|
const fullPath = pathCopy.join(".");
|
|
@@ -105,8 +101,7 @@ function experimental_createTRPCNextAppDirClient(opts) {
|
|
|
105
101
|
return promise;
|
|
106
102
|
});
|
|
107
103
|
}
|
|
108
|
-
|
|
109
104
|
//#endregion
|
|
110
105
|
exports.experimental_createActionHook = experimental_createActionHook;
|
|
111
106
|
exports.experimental_createTRPCNextAppDirClient = experimental_createTRPCNextAppDirClient;
|
|
112
|
-
exports.experimental_serverActionLink = experimental_serverActionLink;
|
|
107
|
+
exports.experimental_serverActionLink = experimental_serverActionLink;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler } from "../server
|
|
1
|
+
import { a as ActionHandlerDef, o as CreateTRPCNextAppRouterOptions, t as TRPCActionHandler } from "../server-BSCiwefJ.cjs";
|
|
2
2
|
import { CreateTRPCClientOptions, TRPCClient, TRPCClientError, TRPCLink, TRPCProcedureOptions } from "@trpc/client";
|
|
3
3
|
import { AnyRouter, InferrableClientTypes, MaybePromise, Simplify, TypeError, inferClientTypes } from "@trpc/server/unstable-core-do-not-import";
|
|
4
4
|
import { TransformerOptions } from "@trpc/client/unstable-internals";
|
|
5
|
-
|
|
6
5
|
//#region src/app-dir/create-action-hook.d.ts
|
|
7
6
|
type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: TRPCProcedureOptions] : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions];
|
|
8
7
|
interface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> {
|
|
@@ -30,7 +29,7 @@ interface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef> extends UseT
|
|
|
30
29
|
status: 'loading';
|
|
31
30
|
}
|
|
32
31
|
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<{
|
|
32
|
+
export 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
33
|
transformer: true;
|
|
35
34
|
}>] : [opts?: TransformerOptions<{
|
|
36
35
|
transformer: false;
|
|
@@ -39,12 +38,10 @@ interface UseTRPCActionOptions<TDef extends ActionHandlerDef> {
|
|
|
39
38
|
onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;
|
|
40
39
|
onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;
|
|
41
40
|
}
|
|
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>;
|
|
41
|
+
export 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
42
|
//#endregion
|
|
44
43
|
//#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
|
-
|
|
44
|
+
export declare function experimental_createTRPCNextAppDirClient<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): TRPCClient<TRouter>;
|
|
48
45
|
//#endregion
|
|
49
|
-
export { UseTRPCActionResult
|
|
46
|
+
export type { UseTRPCActionResult };
|
|
50
47
|
//# sourceMappingURL=client.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.cts","names":[],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"
|
|
1
|
+
{"version":3,"file":"client.d.cts","names":[],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"mappings":";;;;;KA0BK,aAAa,aAAa,oBAAoB,8BAC9C,0BAA0B,OAAO,yBACjC,OAAO,WAAW,eAAe,OAAO;UAEnC,wBAAwB,aAAa;EAC7C,YAAY,MAAM,aAAa;EAC/B,iBAAiB,MAAM,aAAa,UAAU,QAAQ;;UAG9C,2BACR,aAAa,0BACL,wBAAwB;EAChC,MAAM;EACN;EACA;;UAGQ,yBACR,aAAa,0BACL,wBAAwB;EAChC;EACA,OAAO,gBAAgB;EACvB;;UAGQ,wBACR,aAAa,0BACL,wBAAwB;EAChC;EACA;EACA;;UAGQ,2BACR,aAAa,0BACL,wBAAwB;EAChC;EACA;EACA;;KAIU,oBAAoB,aAAa,oBACzC,yBAAyB,QACzB,wBAAwB,QACxB,2BAA2B,QAC3B,2BAA2B;wBAOf,8BACd,oBAAoB,0BAEjB,MAAM,8BAA8B,eAEjC,8HAEF,iBAAiB,4CAEb,MAAM;EACJ;OAIF,OAAO;EACL;MAGT,SAAS;UAiCF,qBAAqB,aAAa;EAC1C,aAAa,QAAQ,mBAAmB;EACxC,WAAW,QAAQ,gBAAgB,wBAAwB;;wBAG7C,8BACd,oBAAoB,uBAEpB,MAAM,8BAA8B,cAChC,oFACA,wBAAwB,gBAQF,aAAa,kBAAgB,SAC5C,kBAAkB,OAAK,gBAChB,qBAAqB,SAAS,WAAM,oBAAA;;;wBC7HxC,wCACd,gBAAgB,WAChB,MAAM,+BAA+B,WAAQ,WAAA"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler } from "../server
|
|
1
|
+
import { a as ActionHandlerDef, o as CreateTRPCNextAppRouterOptions, t as TRPCActionHandler } from "../server-DQOX6CNV.mjs";
|
|
2
2
|
import { TransformerOptions } from "@trpc/client/unstable-internals";
|
|
3
3
|
import { AnyRouter, InferrableClientTypes, MaybePromise, Simplify, TypeError, inferClientTypes } from "@trpc/server/unstable-core-do-not-import";
|
|
4
4
|
import { CreateTRPCClientOptions, TRPCClient, TRPCClientError, TRPCLink, TRPCProcedureOptions } from "@trpc/client";
|
|
5
|
-
|
|
6
5
|
//#region src/app-dir/create-action-hook.d.ts
|
|
7
6
|
type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: TRPCProcedureOptions] : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions];
|
|
8
7
|
interface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> {
|
|
@@ -30,7 +29,7 @@ interface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef> extends UseT
|
|
|
30
29
|
status: 'loading';
|
|
31
30
|
}
|
|
32
31
|
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<{
|
|
32
|
+
export 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
33
|
transformer: true;
|
|
35
34
|
}>] : [opts?: TransformerOptions<{
|
|
36
35
|
transformer: false;
|
|
@@ -39,12 +38,10 @@ interface UseTRPCActionOptions<TDef extends ActionHandlerDef> {
|
|
|
39
38
|
onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;
|
|
40
39
|
onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;
|
|
41
40
|
}
|
|
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>;
|
|
41
|
+
export 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
42
|
//#endregion
|
|
44
43
|
//#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
|
-
|
|
44
|
+
export declare function experimental_createTRPCNextAppDirClient<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): TRPCClient<TRouter>;
|
|
48
45
|
//#endregion
|
|
49
|
-
export { UseTRPCActionResult
|
|
46
|
+
export type { UseTRPCActionResult };
|
|
50
47
|
//# sourceMappingURL=client.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.mts","names":[],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"
|
|
1
|
+
{"version":3,"file":"client.d.mts","names":[],"sources":["../../src/app-dir/create-action-hook.tsx","../../src/app-dir/client.ts"],"mappings":";;;;;KA0BK,aAAa,aAAa,oBAAoB,8BAC9C,0BAA0B,OAAO,yBACjC,OAAO,WAAW,eAAe,OAAO;UAEnC,wBAAwB,aAAa;EAC7C,YAAY,MAAM,aAAa;EAC/B,iBAAiB,MAAM,aAAa,UAAU,QAAQ;;UAG9C,2BACR,aAAa,0BACL,wBAAwB;EAChC,MAAM;EACN;EACA;;UAGQ,yBACR,aAAa,0BACL,wBAAwB;EAChC;EACA,OAAO,gBAAgB;EACvB;;UAGQ,wBACR,aAAa,0BACL,wBAAwB;EAChC;EACA;EACA;;UAGQ,2BACR,aAAa,0BACL,wBAAwB;EAChC;EACA;EACA;;KAIU,oBAAoB,aAAa,oBACzC,yBAAyB,QACzB,wBAAwB,QACxB,2BAA2B,QAC3B,2BAA2B;wBAOf,8BACd,oBAAoB,0BAEjB,MAAM,8BAA8B,eAEjC,8HAEF,iBAAiB,4CAEb,MAAM;EACJ;OAIF,OAAO;EACL;MAGT,SAAS;UAiCF,qBAAqB,aAAa;EAC1C,aAAa,QAAQ,mBAAmB;EACxC,WAAW,QAAQ,gBAAgB,wBAAwB;;wBAG7C,8BACd,oBAAoB,uBAEpB,MAAM,8BAA8B,cAChC,oFACA,wBAAwB,gBAQF,aAAa,kBAAgB,SAC5C,kBAAkB,OAAK,gBAChB,qBAAqB,SAAS,WAAM,oBAAA;;;wBC7HxC,wCACd,gBAAgB,WAChB,MAAM,+BAA+B,WAAQ,WAAA"}
|
package/dist/app-dir/client.mjs
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isFormData } from "../shared-
|
|
1
|
+
import { t as _objectSpread2 } from "../objectSpread2-Dh4InpQf.mjs";
|
|
2
|
+
import { n as isFormData } from "../shared-DJ-gGeuI.mjs";
|
|
3
3
|
import { getTransformer } from "@trpc/client/unstable-internals";
|
|
4
4
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
5
5
|
import { createRecursiveProxy, transformResult } from "@trpc/server/unstable-core-do-not-import";
|
|
6
6
|
import { TRPCClientError, clientCallTypeToProcedureType, createTRPCUntypedClient } from "@trpc/client";
|
|
7
7
|
import { observable } from "@trpc/server/observable";
|
|
8
|
-
|
|
9
8
|
//#region src/app-dir/create-action-hook.tsx
|
|
10
|
-
var import_objectSpread2 = __toESM(require_objectSpread2());
|
|
11
9
|
function experimental_serverActionLink(...args) {
|
|
12
10
|
const [opts] = args;
|
|
13
11
|
const transformer = getTransformer(opts === null || opts === void 0 ? void 0 : opts.transformer);
|
|
14
12
|
return () => ({ op }) => observable((observer) => {
|
|
15
|
-
|
|
16
|
-
context._action(isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
|
|
13
|
+
op.context._action(isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
|
|
17
14
|
const transformed = transformResult(data, transformer.output);
|
|
18
15
|
if (!transformed.ok) {
|
|
19
16
|
observer.error(TRPCClientError.from(transformed.error, {}));
|
|
@@ -44,11 +41,11 @@ function experimental_createActionHook(opts) {
|
|
|
44
41
|
}, []);
|
|
45
42
|
const mutateAsync = useCallback((input, requestOptions) => {
|
|
46
43
|
const idx = ++count.current;
|
|
47
|
-
const context = (
|
|
44
|
+
const context = _objectSpread2(_objectSpread2({}, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.context), {}, { _action(innerInput) {
|
|
48
45
|
return handler(innerInput);
|
|
49
46
|
} });
|
|
50
47
|
setState({ status: "loading" });
|
|
51
|
-
return client.mutation("serverAction", input, (
|
|
48
|
+
return client.mutation("serverAction", input, _objectSpread2(_objectSpread2({}, requestOptions), {}, { context })).then(async (data) => {
|
|
52
49
|
var _actionOptsRef$curren, _actionOptsRef$curren2;
|
|
53
50
|
await ((_actionOptsRef$curren = actionOptsRef.current) === null || _actionOptsRef$curren === void 0 || (_actionOptsRef$curren2 = _actionOptsRef$curren.onSuccess) === null || _actionOptsRef$curren2 === void 0 ? void 0 : _actionOptsRef$curren2.call(_actionOptsRef$curren, data));
|
|
54
51
|
if (idx !== count.current) return;
|
|
@@ -72,7 +69,7 @@ function experimental_createActionHook(opts) {
|
|
|
72
69
|
const mutate = useCallback((...args) => {
|
|
73
70
|
mutateAsync(...args).catch(() => {});
|
|
74
71
|
}, [mutateAsync]);
|
|
75
|
-
return useMemo(() => (
|
|
72
|
+
return useMemo(() => _objectSpread2(_objectSpread2({}, state), {}, {
|
|
76
73
|
mutate,
|
|
77
74
|
mutateAsync
|
|
78
75
|
}), [
|
|
@@ -82,29 +79,28 @@ function experimental_createActionHook(opts) {
|
|
|
82
79
|
]);
|
|
83
80
|
};
|
|
84
81
|
}
|
|
85
|
-
|
|
86
82
|
//#endregion
|
|
87
83
|
//#region src/app-dir/client.ts
|
|
88
84
|
function experimental_createTRPCNextAppDirClient(opts) {
|
|
89
85
|
const client = createTRPCUntypedClient(opts.config());
|
|
90
|
-
const cache
|
|
86
|
+
const cache = /* @__PURE__ */ new Map();
|
|
91
87
|
return createRecursiveProxy(({ path, args }) => {
|
|
92
88
|
const pathCopy = [...path];
|
|
93
89
|
const procedureType = clientCallTypeToProcedureType(pathCopy.pop());
|
|
94
90
|
if (procedureType === "query") {
|
|
95
|
-
const queryCacheKey
|
|
96
|
-
const cached = cache
|
|
91
|
+
const queryCacheKey = JSON.stringify([path, args[0]]);
|
|
92
|
+
const cached = cache.get(queryCacheKey);
|
|
97
93
|
if (cached === null || cached === void 0 ? void 0 : cached.promise) return cached.promise;
|
|
98
94
|
}
|
|
99
95
|
const fullPath = pathCopy.join(".");
|
|
100
96
|
const promise = client[procedureType](fullPath, ...args);
|
|
101
97
|
if (procedureType !== "query") return promise;
|
|
102
98
|
const queryCacheKey = JSON.stringify([path, args[0]]);
|
|
103
|
-
cache
|
|
99
|
+
cache.set(queryCacheKey, { promise });
|
|
104
100
|
return promise;
|
|
105
101
|
});
|
|
106
102
|
}
|
|
107
|
-
|
|
108
103
|
//#endregion
|
|
109
104
|
export { experimental_createActionHook, experimental_createTRPCNextAppDirClient, experimental_serverActionLink };
|
|
105
|
+
|
|
110
106
|
//# sourceMappingURL=client.mjs.map
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"client.mjs","names":[],"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<\n TDef extends ActionHandlerDef,\n> extends UseTRPCActionBaseResult<TDef> {\n data: TDef['output'];\n error?: never;\n status: 'success';\n}\n\ninterface UseTRPCActionErrorResult<\n TDef extends ActionHandlerDef,\n> extends UseTRPCActionBaseResult<TDef> {\n data?: never;\n error: TRPCClientError<TDef['errorShape']>;\n status: 'error';\n}\n\ninterface UseTRPCActionIdleResult<\n TDef extends ActionHandlerDef,\n> extends UseTRPCActionBaseResult<TDef> {\n data?: never;\n error?: never;\n status: 'idle';\n}\n\ninterface UseTRPCActionLoadingResult<\n 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: ActionContext = {\n ...requestOptions?.context,\n _action(innerInput) {\n return handler(innerInput);\n },\n };\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);\n if (idx !== count.current) {\n return;\n }\n setState({\n status: 'success',\n data,\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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"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
const require_shared = require(
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_shared = require("../../shared-BcvoW6jT.cjs");
|
|
3
|
+
let _trpc_client_unstable_internals = require("@trpc/client/unstable-internals");
|
|
4
|
+
let _trpc_server_unstable_core_do_not_import = require("@trpc/server/unstable-core-do-not-import");
|
|
5
|
+
let _trpc_client = require("@trpc/client");
|
|
6
|
+
let next_cache = require("next/cache");
|
|
7
|
+
let _trpc_server_observable = require("@trpc/server/observable");
|
|
9
8
|
//#region src/app-dir/links/nextCache.ts
|
|
10
9
|
function experimental_nextCacheLink(opts) {
|
|
11
|
-
const transformer = (0,
|
|
12
|
-
return () => ({ op }) => (0,
|
|
10
|
+
const transformer = (0, _trpc_client_unstable_internals.getTransformer)(opts.transformer);
|
|
11
|
+
return () => ({ op }) => (0, _trpc_server_observable.observable)((observer) => {
|
|
13
12
|
var _ref;
|
|
14
13
|
const { path, input, type, context } = op;
|
|
15
14
|
const cacheTag = require_shared.generateCacheTag(path, input);
|
|
16
15
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
17
16
|
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
18
|
-
|
|
17
|
+
opts.createContext().then(async (ctx) => {
|
|
19
18
|
const callProc = async (_cachebuster) => {
|
|
20
|
-
const procedureResult = await (0,
|
|
19
|
+
const procedureResult = await (0, _trpc_server_unstable_core_do_not_import.callProcedure)({
|
|
21
20
|
router: opts.router,
|
|
22
21
|
path,
|
|
23
22
|
getRawInput: async () => input,
|
|
@@ -34,17 +33,15 @@ function experimental_nextCacheLink(opts) {
|
|
|
34
33
|
})(cacheTag);
|
|
35
34
|
return callProc(cacheTag);
|
|
36
35
|
}).catch((cause) => {
|
|
37
|
-
observer.error(
|
|
38
|
-
})
|
|
39
|
-
promise.then((data) => {
|
|
36
|
+
observer.error(_trpc_client.TRPCClientError.from(cause));
|
|
37
|
+
}).then((data) => {
|
|
40
38
|
const transformedResult = transformer.output.deserialize(data);
|
|
41
39
|
observer.next({ result: { data: transformedResult } });
|
|
42
40
|
observer.complete();
|
|
43
41
|
}).catch((cause) => {
|
|
44
|
-
observer.error(
|
|
42
|
+
observer.error(_trpc_client.TRPCClientError.from(cause));
|
|
45
43
|
});
|
|
46
44
|
});
|
|
47
45
|
}
|
|
48
|
-
|
|
49
46
|
//#endregion
|
|
50
|
-
exports.experimental_nextCacheLink = experimental_nextCacheLink;
|
|
47
|
+
exports.experimental_nextCacheLink = experimental_nextCacheLink;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { TRPCLink } from "@trpc/client";
|
|
2
2
|
import { AnyRouter, inferClientTypes, inferRouterContext } from "@trpc/server/unstable-core-do-not-import";
|
|
3
3
|
import { TransformerOptions } from "@trpc/client/unstable-internals";
|
|
4
|
-
|
|
5
4
|
//#region src/app-dir/links/nextCache.d.ts
|
|
6
5
|
type NextCacheLinkOptions<TRouter extends AnyRouter> = {
|
|
7
6
|
router: TRouter;
|
|
@@ -9,7 +8,6 @@ type NextCacheLinkOptions<TRouter extends AnyRouter> = {
|
|
|
9
8
|
/** how many seconds the cache should hold before revalidating */
|
|
10
9
|
revalidate?: number | false;
|
|
11
10
|
} & TransformerOptions<inferClientTypes<TRouter>>;
|
|
12
|
-
declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
11
|
+
export declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
13
12
|
//#endregion
|
|
14
|
-
export { experimental_nextCacheLink };
|
|
15
13
|
//# sourceMappingURL=nextCache.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextCache.d.cts","names":[],"sources":["../../../src/app-dir/links/nextCache.ts"],"
|
|
1
|
+
{"version":3,"file":"nextCache.d.cts","names":[],"sources":["../../../src/app-dir/links/nextCache.ts"],"mappings":";;;;KAkBK,qBAAqB,gBAAgB;EACxC,QAAQ;EACR,qBAAqB,QAAQ,mBAAmB;;EAEhD;IACE,mBAAmB,iBAAiB;wBAGxB,2BAA2B,gBAAgB,WACzD,MAAM,qBAAqB,WAC1B,SAAS"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { TransformerOptions } from "@trpc/client/unstable-internals";
|
|
2
2
|
import { AnyRouter, inferClientTypes, inferRouterContext } from "@trpc/server/unstable-core-do-not-import";
|
|
3
3
|
import { TRPCLink } from "@trpc/client";
|
|
4
|
-
|
|
5
4
|
//#region src/app-dir/links/nextCache.d.ts
|
|
6
5
|
type NextCacheLinkOptions<TRouter extends AnyRouter> = {
|
|
7
6
|
router: TRouter;
|
|
@@ -9,7 +8,6 @@ type NextCacheLinkOptions<TRouter extends AnyRouter> = {
|
|
|
9
8
|
/** how many seconds the cache should hold before revalidating */
|
|
10
9
|
revalidate?: number | false;
|
|
11
10
|
} & TransformerOptions<inferClientTypes<TRouter>>;
|
|
12
|
-
declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
11
|
+
export declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
13
12
|
//#endregion
|
|
14
|
-
export { experimental_nextCacheLink };
|
|
15
13
|
//# sourceMappingURL=nextCache.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextCache.d.mts","names":[],"sources":["../../../src/app-dir/links/nextCache.ts"],"
|
|
1
|
+
{"version":3,"file":"nextCache.d.mts","names":[],"sources":["../../../src/app-dir/links/nextCache.ts"],"mappings":";;;;KAkBK,qBAAqB,gBAAgB;EACxC,QAAQ;EACR,qBAAqB,QAAQ,mBAAmB;;EAEhD;IACE,mBAAmB,iBAAiB;wBAGxB,2BAA2B,gBAAgB,WACzD,MAAM,qBAAqB,WAC1B,SAAS"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { generateCacheTag } from "../../shared-
|
|
1
|
+
import { t as generateCacheTag } from "../../shared-DJ-gGeuI.mjs";
|
|
2
2
|
import { getTransformer } from "@trpc/client/unstable-internals";
|
|
3
3
|
import { callProcedure } from "@trpc/server/unstable-core-do-not-import";
|
|
4
4
|
import { TRPCClientError } from "@trpc/client";
|
|
5
|
-
import { observable } from "@trpc/server/observable";
|
|
6
5
|
import { unstable_cache } from "next/cache";
|
|
7
|
-
|
|
6
|
+
import { observable } from "@trpc/server/observable";
|
|
8
7
|
//#region src/app-dir/links/nextCache.ts
|
|
9
8
|
function experimental_nextCacheLink(opts) {
|
|
10
9
|
const transformer = getTransformer(opts.transformer);
|
|
@@ -14,7 +13,7 @@ function experimental_nextCacheLink(opts) {
|
|
|
14
13
|
const cacheTag = generateCacheTag(path, input);
|
|
15
14
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
16
15
|
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
17
|
-
|
|
16
|
+
opts.createContext().then(async (ctx) => {
|
|
18
17
|
const callProc = async (_cachebuster) => {
|
|
19
18
|
const procedureResult = await callProcedure({
|
|
20
19
|
router: opts.router,
|
|
@@ -34,8 +33,7 @@ function experimental_nextCacheLink(opts) {
|
|
|
34
33
|
return callProc(cacheTag);
|
|
35
34
|
}).catch((cause) => {
|
|
36
35
|
observer.error(TRPCClientError.from(cause));
|
|
37
|
-
})
|
|
38
|
-
promise.then((data) => {
|
|
36
|
+
}).then((data) => {
|
|
39
37
|
const transformedResult = transformer.output.deserialize(data);
|
|
40
38
|
observer.next({ result: { data: transformedResult } });
|
|
41
39
|
observer.complete();
|
|
@@ -44,7 +42,7 @@ function experimental_nextCacheLink(opts) {
|
|
|
44
42
|
});
|
|
45
43
|
});
|
|
46
44
|
}
|
|
47
|
-
|
|
48
45
|
//#endregion
|
|
49
46
|
export { experimental_nextCacheLink };
|
|
47
|
+
|
|
50
48
|
//# sourceMappingURL=nextCache.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextCache.mjs","names":[
|
|
1
|
+
{"version":3,"file":"nextCache.mjs","names":[],"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 batchIndex: 0,\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,2BACd,MACmB;CACnB,MAAM,cAAc,eAAe,KAAK,WAAW;CACnD,cACG,EAAE,SACD,YAAY,aAAa;;EACvB,MAAM,EAAE,MAAM,OAAO,MAAM,YAAY;EAEvC,MAAM,WAAW,iBAAiB,MAAM,KAAK;EAE7C,MAAM,oBACJ,OAAO,QAAQ,kBAAkB,YACjC,QAAQ,kBAAkB,QACtB,QAAQ,gBACR,KAAA;EACN,MAAM,cAAA,OAAa,sBAAA,QAAA,sBAAA,KAAA,IAAA,oBAAqB,KAAK,gBAAA,QAAA,SAAA,KAAA,IAAA,OAAc;EAoC3D,KAjCG,cAAc,CAAC,CACf,KAAK,OAAO,QAAQ;GACnB,MAAM,WAAW,OAAO,iBAAyB;IAI/C,MAAM,kBAAkB,MAAM,cAAc;KAC1C,QAAQ,KAAK;KACb;KACA,aAAa,YAAY;KACpB;KACL;KACA,QAAQ,KAAA;KACR,YAAY;IACd,CAAC;IAGD,OAAO,YAAY,MAAM,UAAU,eAAe;GACpD;GAEA,IAAI,SAAS,SACX,OAAO,eAAe,UAAU,KAAK,MAAM,GAAG,GAAG;IAC/C;IACA,MAAM,CAAC,QAAQ;GACjB,CAAC,CAAC,CAAC,QAAQ;GAGb,OAAO,SAAS,QAAQ;EAC1B,CAAC,CAAC,CACD,OAAO,UAAU;GAChB,SAAS,MAAM,gBAAgB,KAAK,KAAK,CAAC;EAC5C,CAEI,CAAC,CACJ,MAAM,SAAS;GACd,MAAM,oBAAoB,YAAY,OAAO,YAAY,IAAI;GAC7D,SAAS,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,EAAE,CAAC;GACrD,SAAS,SAAS;EACpB,CAAC,CAAC,CACD,OAAO,UAAU;GAChB,SAAS,MAAM,gBAAgB,KAAK,KAAK,CAAC;EAC5C,CAAC;CACL,CAAC;AACP"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
const require_objectSpread2
|
|
3
|
-
const require_shared = require(
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_objectSpread2 = require("../../objectSpread2-C2ceYbQe.cjs");
|
|
3
|
+
const require_shared = require("../../shared-BcvoW6jT.cjs");
|
|
4
|
+
let _trpc_client = require("@trpc/client");
|
|
6
5
|
//#region src/app-dir/links/nextHttp.ts
|
|
7
|
-
var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2(), 1);
|
|
8
6
|
function experimental_nextHttpLink(opts) {
|
|
9
7
|
return (runtime) => {
|
|
10
8
|
return (ctx) => {
|
|
@@ -14,16 +12,14 @@ function experimental_nextHttpLink(opts) {
|
|
|
14
12
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
15
13
|
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
16
14
|
const _fetch = (url, fetchOpts) => {
|
|
17
|
-
return fetch(url,
|
|
15
|
+
return fetch(url, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, fetchOpts), {}, { next: {
|
|
18
16
|
revalidate,
|
|
19
17
|
tags: [cacheTag]
|
|
20
18
|
} }));
|
|
21
19
|
};
|
|
22
|
-
|
|
23
|
-
return link(runtime)(ctx);
|
|
20
|
+
return (opts.batch ? (0, _trpc_client.httpBatchLink)(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, opts), {}, { fetch: _fetch })) : (0, _trpc_client.httpLink)(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, opts), {}, { fetch: _fetch })))(runtime)(ctx);
|
|
24
21
|
};
|
|
25
22
|
};
|
|
26
23
|
}
|
|
27
|
-
|
|
28
24
|
//#endregion
|
|
29
|
-
exports.experimental_nextHttpLink = experimental_nextHttpLink;
|
|
25
|
+
exports.experimental_nextHttpLink = experimental_nextHttpLink;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { HTTPBatchLinkOptions, HTTPLinkOptions, TRPCLink } from "@trpc/client";
|
|
2
2
|
import { AnyRootTypes, AnyRouter } from "@trpc/server/unstable-core-do-not-import";
|
|
3
|
-
|
|
4
3
|
//#region src/app-dir/links/nextHttp.d.ts
|
|
5
4
|
interface NextLinkBaseOptions {
|
|
6
5
|
revalidate?: number | false;
|
|
@@ -12,7 +11,6 @@ type NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions & O
|
|
|
12
11
|
type NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions & Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {
|
|
13
12
|
batch: true;
|
|
14
13
|
};
|
|
15
|
-
declare function experimental_nextHttpLink<TRouter extends AnyRouter>(opts: NextLinkSingleOptions<TRouter['_def']['_config']['$types']> | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
|
|
14
|
+
export declare function experimental_nextHttpLink<TRouter extends AnyRouter>(opts: NextLinkSingleOptions<TRouter['_def']['_config']['$types']> | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
|
|
16
15
|
//#endregion
|
|
17
|
-
export { experimental_nextHttpLink };
|
|
18
16
|
//# sourceMappingURL=nextHttp.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextHttp.d.cts","names":[],"sources":["../../../src/app-dir/links/nextHttp.ts"],"
|
|
1
|
+
{"version":3,"file":"nextHttp.d.cts","names":[],"sources":["../../../src/app-dir/links/nextHttp.ts"],"mappings":";;;UAYU;EACR;EACA;;KAGG,sBAAsB,cAAc,gBAAgB,sBACvD,KAAK,gBAAgB;EACnB;;KAGC,qBAAqB,cAAc,gBAAgB,sBACtD,KAAK,qBAAqB;EACxB;;wBAIY,0BAA0B,gBAAgB,WACxD,MACI,sBAAsB,wCACtB,qBAAqB,wCACxB,SAAS"}
|