@trpc/next 11.4.1 → 11.4.2-canary.1
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 +15 -18
- package/dist/app-dir/client.d.mts +1 -1
- package/dist/app-dir/client.mjs +14 -17
- package/dist/app-dir/client.mjs.map +1 -1
- package/dist/app-dir/links/nextCache.cjs +4 -3
- package/dist/app-dir/links/nextCache.mjs +3 -2
- package/dist/app-dir/links/nextCache.mjs.map +1 -1
- package/dist/app-dir/links/nextHttp.cjs +11 -17
- package/dist/app-dir/links/nextHttp.mjs +10 -16
- package/dist/app-dir/links/nextHttp.mjs.map +1 -1
- package/dist/app-dir/server.cjs +7 -5
- package/dist/app-dir/server.d.mts +1 -1
- package/dist/app-dir/server.mjs +6 -4
- package/dist/app-dir/server.mjs.map +1 -1
- package/dist/{chunk-CUT6urMc.cjs → chunk-DWy1uDak.cjs} +9 -0
- package/dist/index.cjs +12 -10
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +11 -9
- package/dist/index.mjs.map +1 -1
- package/dist/objectSpread2-3tHFGdJc.mjs +114 -0
- package/dist/objectSpread2-3tHFGdJc.mjs.map +1 -0
- package/dist/objectSpread2-CGXFkI72.cjs +94 -0
- package/dist/{server.d-BXv5jwlB.d.mts → server.d-C5p0ZwB7.d.mts} +1 -1
- package/dist/{server.d-BXv5jwlB.d.mts.map → server.d-C5p0ZwB7.d.mts.map} +1 -1
- package/dist/{shared-FEQznZ-6.mjs → shared-Bco66qhk.mjs} +1 -1
- package/dist/{shared-FEQznZ-6.mjs.map → shared-Bco66qhk.mjs.map} +1 -1
- package/dist/{shared-C9SS-IYg.cjs → shared-COdt67yK.cjs} +1 -1
- package/dist/ssrPrepass.cjs +18 -21
- package/dist/ssrPrepass.d.mts +1 -1
- package/dist/ssrPrepass.mjs +17 -20
- package/dist/ssrPrepass.mjs.map +1 -1
- package/dist/{withTRPC.d-BY6FsDWi.d.mts → withTRPC.d-B3f3A0sf.d.mts} +1 -1
- package/dist/{withTRPC.d-BY6FsDWi.d.mts.map → withTRPC.d-B3f3A0sf.d.mts.map} +1 -1
- package/package.json +8 -8
- package/app-dir/client/index.d.ts +0 -1
- package/app-dir/client/index.js +0 -1
- package/app-dir/links/nextCache/index.d.ts +0 -1
- package/app-dir/links/nextCache/index.js +0 -1
- package/app-dir/links/nextHttp/index.d.ts +0 -1
- package/app-dir/links/nextHttp/index.js +0 -1
- package/app-dir/server/index.d.ts +0 -1
- package/app-dir/server/index.js +0 -1
- package/ssrPrepass/index.d.ts +0 -1
- package/ssrPrepass/index.js +0 -1
package/dist/app-dir/client.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
const require_chunk = require('../chunk-
|
|
2
|
-
const
|
|
1
|
+
const require_chunk = require('../chunk-DWy1uDak.cjs');
|
|
2
|
+
const require_objectSpread2$1 = require('../objectSpread2-CGXFkI72.cjs');
|
|
3
|
+
const require_shared = require('../shared-COdt67yK.cjs');
|
|
3
4
|
const __trpc_client_unstable_internals = require_chunk.__toESM(require("@trpc/client/unstable-internals"));
|
|
4
5
|
const react = require_chunk.__toESM(require("react"));
|
|
5
6
|
const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
@@ -7,9 +8,10 @@ const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
|
|
|
7
8
|
const __trpc_server_observable = require_chunk.__toESM(require("@trpc/server/observable"));
|
|
8
9
|
|
|
9
10
|
//#region src/app-dir/create-action-hook.tsx
|
|
11
|
+
var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2());
|
|
10
12
|
function experimental_serverActionLink(...args) {
|
|
11
13
|
const [opts] = args;
|
|
12
|
-
const transformer = (0, __trpc_client_unstable_internals.getTransformer)(opts
|
|
14
|
+
const transformer = (0, __trpc_client_unstable_internals.getTransformer)(opts === null || opts === void 0 ? void 0 : opts.transformer);
|
|
13
15
|
return () => ({ op }) => (0, __trpc_server_observable.observable)((observer) => {
|
|
14
16
|
const context = op.context;
|
|
15
17
|
context._action(require_shared.isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
|
|
@@ -43,25 +45,21 @@ function experimental_createActionHook(opts) {
|
|
|
43
45
|
}, []);
|
|
44
46
|
const mutateAsync = (0, react.useCallback)((input, requestOptions) => {
|
|
45
47
|
const idx = ++count.current;
|
|
46
|
-
const context = {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return handler(innerInput);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
48
|
+
const context = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.context), {}, { _action(innerInput) {
|
|
49
|
+
return handler(innerInput);
|
|
50
|
+
} });
|
|
52
51
|
setState({ status: "loading" });
|
|
53
|
-
return client.mutation("serverAction", input, {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}).then(async (data) => {
|
|
57
|
-
await actionOptsRef.current?.onSuccess?.(data);
|
|
52
|
+
return client.mutation("serverAction", input, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, requestOptions), {}, { context })).then(async (data) => {
|
|
53
|
+
var _actionOptsRef$curren, _actionOptsRef$curren2;
|
|
54
|
+
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));
|
|
58
55
|
if (idx !== count.current) return;
|
|
59
56
|
setState({
|
|
60
57
|
status: "success",
|
|
61
58
|
data
|
|
62
59
|
});
|
|
63
60
|
}).catch(async (error) => {
|
|
64
|
-
|
|
61
|
+
var _actionOptsRef$curren3, _actionOptsRef$curren4;
|
|
62
|
+
await ((_actionOptsRef$curren3 = actionOptsRef.current) === null || _actionOptsRef$curren3 === void 0 || (_actionOptsRef$curren4 = _actionOptsRef$curren3.onError) === null || _actionOptsRef$curren4 === void 0 ? void 0 : _actionOptsRef$curren4.call(_actionOptsRef$curren3, error));
|
|
65
63
|
throw error;
|
|
66
64
|
}).catch((error) => {
|
|
67
65
|
if (idx !== count.current) return;
|
|
@@ -75,8 +73,7 @@ function experimental_createActionHook(opts) {
|
|
|
75
73
|
const mutate = (0, react.useCallback)((...args) => {
|
|
76
74
|
mutateAsync(...args).catch(() => {});
|
|
77
75
|
}, [mutateAsync]);
|
|
78
|
-
return (0, react.useMemo)(() => ({
|
|
79
|
-
...state,
|
|
76
|
+
return (0, react.useMemo)(() => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, state), {}, {
|
|
80
77
|
mutate,
|
|
81
78
|
mutateAsync
|
|
82
79
|
}), [
|
|
@@ -98,7 +95,7 @@ function experimental_createTRPCNextAppDirClient(opts) {
|
|
|
98
95
|
if (procedureType === "query") {
|
|
99
96
|
const queryCacheKey$1 = JSON.stringify([path, args[0]]);
|
|
100
97
|
const cached = cache.get(queryCacheKey$1);
|
|
101
|
-
if (cached
|
|
98
|
+
if (cached === null || cached === void 0 ? void 0 : cached.promise) return cached.promise;
|
|
102
99
|
}
|
|
103
100
|
const fullPath = pathCopy.join(".");
|
|
104
101
|
const promise = client[procedureType](fullPath, ...args);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler } from "../server.d-
|
|
1
|
+
import { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler } from "../server.d-C5p0ZwB7.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";
|
package/dist/app-dir/client.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __toESM, require_objectSpread2 } from "../objectSpread2-3tHFGdJc.mjs";
|
|
2
|
+
import { isFormData } from "../shared-Bco66qhk.mjs";
|
|
2
3
|
import { getTransformer } from "@trpc/client/unstable-internals";
|
|
3
4
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
5
|
import { createRecursiveProxy, transformResult } from "@trpc/server/unstable-core-do-not-import";
|
|
@@ -6,9 +7,10 @@ import { TRPCClientError, clientCallTypeToProcedureType, createTRPCUntypedClient
|
|
|
6
7
|
import { observable } from "@trpc/server/observable";
|
|
7
8
|
|
|
8
9
|
//#region src/app-dir/create-action-hook.tsx
|
|
10
|
+
var import_objectSpread2 = __toESM(require_objectSpread2());
|
|
9
11
|
function experimental_serverActionLink(...args) {
|
|
10
12
|
const [opts] = args;
|
|
11
|
-
const transformer = getTransformer(opts
|
|
13
|
+
const transformer = getTransformer(opts === null || opts === void 0 ? void 0 : opts.transformer);
|
|
12
14
|
return () => ({ op }) => observable((observer) => {
|
|
13
15
|
const context = op.context;
|
|
14
16
|
context._action(isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data) => {
|
|
@@ -42,25 +44,21 @@ function experimental_createActionHook(opts) {
|
|
|
42
44
|
}, []);
|
|
43
45
|
const mutateAsync = useCallback((input, requestOptions) => {
|
|
44
46
|
const idx = ++count.current;
|
|
45
|
-
const context = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return handler(innerInput);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
47
|
+
const context = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.context), {}, { _action(innerInput) {
|
|
48
|
+
return handler(innerInput);
|
|
49
|
+
} });
|
|
51
50
|
setState({ status: "loading" });
|
|
52
|
-
return client.mutation("serverAction", input, {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}).then(async (data) => {
|
|
56
|
-
await actionOptsRef.current?.onSuccess?.(data);
|
|
51
|
+
return client.mutation("serverAction", input, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, requestOptions), {}, { context })).then(async (data) => {
|
|
52
|
+
var _actionOptsRef$curren, _actionOptsRef$curren2;
|
|
53
|
+
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));
|
|
57
54
|
if (idx !== count.current) return;
|
|
58
55
|
setState({
|
|
59
56
|
status: "success",
|
|
60
57
|
data
|
|
61
58
|
});
|
|
62
59
|
}).catch(async (error) => {
|
|
63
|
-
|
|
60
|
+
var _actionOptsRef$curren3, _actionOptsRef$curren4;
|
|
61
|
+
await ((_actionOptsRef$curren3 = actionOptsRef.current) === null || _actionOptsRef$curren3 === void 0 || (_actionOptsRef$curren4 = _actionOptsRef$curren3.onError) === null || _actionOptsRef$curren4 === void 0 ? void 0 : _actionOptsRef$curren4.call(_actionOptsRef$curren3, error));
|
|
64
62
|
throw error;
|
|
65
63
|
}).catch((error) => {
|
|
66
64
|
if (idx !== count.current) return;
|
|
@@ -74,8 +72,7 @@ function experimental_createActionHook(opts) {
|
|
|
74
72
|
const mutate = useCallback((...args) => {
|
|
75
73
|
mutateAsync(...args).catch(() => {});
|
|
76
74
|
}, [mutateAsync]);
|
|
77
|
-
return useMemo(() => ({
|
|
78
|
-
...state,
|
|
75
|
+
return useMemo(() => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, state), {}, {
|
|
79
76
|
mutate,
|
|
80
77
|
mutateAsync
|
|
81
78
|
}), [
|
|
@@ -97,7 +94,7 @@ function experimental_createTRPCNextAppDirClient(opts) {
|
|
|
97
94
|
if (procedureType === "query") {
|
|
98
95
|
const queryCacheKey$1 = JSON.stringify([path, args[0]]);
|
|
99
96
|
const cached = cache$1.get(queryCacheKey$1);
|
|
100
|
-
if (cached
|
|
97
|
+
if (cached === null || cached === void 0 ? void 0 : cached.promise) return cached.promise;
|
|
101
98
|
}
|
|
102
99
|
const fullPath = pathCopy.join(".");
|
|
103
100
|
const promise = client[procedureType](fullPath, ...args);
|
|
@@ -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":";;;;;;;;AA2EA,SAAgB,8BAGd,GAAG,MAeoB;CACvB,MAAM,CAAC,KAAK,GAAG;CACf,MAAM,cAAc,eAAe,MAAM,YAAY;AACrD,QAAO,MACL,CAAC,EAAE,IAAI,KACL,WAAW,CAAC,aAAa;EACvB,MAAM,UAAU,GAAG;AAEnB,UACG,QACC,WAAW,GAAG,MAAM,GAChB,GAAG,QACH,YAAY,MAAM,UAAU,GAAG,MAAM,CAC1C,CACA,KAAK,CAAC,SAAS;GACd,MAAM,cAAc,gBAAgB,MAAM,YAAY,OAAO;AAE7D,QAAK,YAAY,IAAI;AACnB,aAAS,MAAM,gBAAgB,KAAK,YAAY,OAAO,CAAE,EAAC,CAAC;AAC3D;GACD;AACD,YAAS,KAAK;IACZ,SAAS,GAAG;IACZ,QAAQ,YAAY;GACrB,EAAC;AACF,YAAS,UAAU;EACpB,EAAC,CACD,MAAM,CAAC,UAAU;AAChB,YAAS,MAAM,gBAAgB,KAAK,MAAM,CAAC;EAC5C,EAAC;CACL,EAAC;AACP;AAOD,SAAgB,8BAGdA,MAGA;CAIA,MAAM,SAAS,wBACb,KACD;AACD,QAAO,SAAS,UACdC,SACAC,eACA;EACA,MAAM,QAAQ,OAAO,EAAE;EAIvB,MAAM,CAAC,OAAO,SAAS,GAAG,SAAgB,EACxC,QAAQ,OACT,EAAC;EAEF,MAAM,gBAAgB,OAAO,cAAc;AAC3C,gBAAc,UAAU;AAExB,YAAU,MAAM;AACd,UAAO,MAAM;AAEX,UAAM,UAAU;AAChB,kBAAc;GACf;EACF,GAAE,CAAE,EAAC;EAEN,MAAM,cAAc,YAClB,CAACC,OAAYC,mBAAwC;GACnD,MAAM,MAAM,EAAE,MAAM;GACpB,MAAM,UAAU;IACd,GAAG,gBAAgB;IACnB,QAAQ,YAAY;AAClB,YAAO,QAAQ,WAAW;IAC3B;GACF;AAED,YAAS,EACP,QAAQ,UACT,EAAC;AACF,UAAO,OACJ,SAAS,gBAAgB,OAAO;IAC/B,GAAG;IACH;GACD,EAAC,CACD,KAAK,OAAO,SAAS;AACpB,UAAM,cAAc,SAAS,YAAY,KAAY;AACrD,QAAI,QAAQ,MAAM,QAChB;AAEF,aAAS;KACP,QAAQ;KACF;IACP,EAAC;GACH,EAAC,CACD,MAAM,OAAO,UAAU;AACtB,UAAM,cAAc,SAAS,UAAU,MAAM;AAC7C,UAAM;GACP,EAAC,CACD,MAAM,CAAC,UAAU;AAChB,QAAI,QAAQ,MAAM,QAChB;AAEF,aAAS;KACP,QAAQ;KACR,OAAO,gBAAgB,KAAK,OAAO,CAAE,EAAC;IACvC,EAAC;AACF,UAAM;GACP,EAAC;EACL,GACD,CAAC,OAAQ,EACV;EAED,MAAMC,SAA2B,YAC/B,CAAC,GAAG,SAAgB;AAClB,GAAK,AAAC,YAAoB,GAAG,KAAK,CAAC,MAAM,MAAM,CAE9C,EAAC;EACH,GACD,CAAC,WAAY,EACd;AAED,SAAO,QACL,OAAO;GACL,GAAG;GACH;GACA;EACD,IACD;GAAC;GAAQ;GAAa;EAAM,EAC7B;CACF;AACF;;;;AC9MD,SAAgB,wCAEdC,MAA+C;CAC/C,MAAM,SAAS,wBAAiC,KAAK,QAAQ,CAAC;CAG9D,MAAMC,0BAAQ,IAAI;AAElB,QAAO,qBAA0C,CAAC,EAAE,MAAM,MAAM,KAAK;EAEnE,MAAM,WAAW,CAAC,GAAG,IAAK;EAE1B,MAAM,gBAAgB,8BAA8B,SAAS,KAAK,CAAE;AAEpE,MAAI,kBAAkB,SAAS;GAC7B,MAAMC,kBAAgB,KAAK,UAAU,CAAC,MAAM,KAAK,EAAG,EAAC;GACrD,MAAM,SAAS,QAAM,IAAIA,gBAAc;AAEvC,OAAI,QAAQ,QACV,QAAO,OAAO;EAEjB;EAED,MAAM,WAAW,SAAS,KAAK,IAAI;EAEnC,MAAMC,UAA4B,AAAC,OAAe,eAChD,UACA,GAAG,KACJ;AACD,MAAI,kBAAkB,QACpB,QAAO;EAGT,MAAM,gBAAgB,KAAK,UAAU,CAAC,MAAM,KAAK,EAAG,EAAC;AAErD,UAAM,IAAI,eAAe,EACvB,QACD,EAAC;AAEF,SAAO;CACR,EAAC;AAEH"}
|
|
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,5 +1,5 @@
|
|
|
1
|
-
const require_chunk = require('../../chunk-
|
|
2
|
-
const require_shared = require('../../shared-
|
|
1
|
+
const require_chunk = require('../../chunk-DWy1uDak.cjs');
|
|
2
|
+
const require_shared = require('../../shared-COdt67yK.cjs');
|
|
3
3
|
const __trpc_client_unstable_internals = require_chunk.__toESM(require("@trpc/client/unstable-internals"));
|
|
4
4
|
const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
5
5
|
const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
|
|
@@ -10,10 +10,11 @@ const next_cache = require_chunk.__toESM(require("next/cache"));
|
|
|
10
10
|
function experimental_nextCacheLink(opts) {
|
|
11
11
|
const transformer = (0, __trpc_client_unstable_internals.getTransformer)(opts.transformer);
|
|
12
12
|
return () => ({ op }) => (0, __trpc_server_observable.observable)((observer) => {
|
|
13
|
+
var _ref;
|
|
13
14
|
const { path, input, type, context } = op;
|
|
14
15
|
const cacheTag = require_shared.generateCacheTag(path, input);
|
|
15
16
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
16
|
-
const revalidate = requestRevalidate
|
|
17
|
+
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
17
18
|
const promise = opts.createContext().then(async (ctx) => {
|
|
18
19
|
const callProc = async (_cachebuster) => {
|
|
19
20
|
const procedureResult = await (0, __trpc_server_unstable_core_do_not_import.callProcedure)({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateCacheTag } from "../../shared-
|
|
1
|
+
import { generateCacheTag } from "../../shared-Bco66qhk.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";
|
|
@@ -9,10 +9,11 @@ import { unstable_cache } from "next/cache";
|
|
|
9
9
|
function experimental_nextCacheLink(opts) {
|
|
10
10
|
const transformer = getTransformer(opts.transformer);
|
|
11
11
|
return () => ({ op }) => observable((observer) => {
|
|
12
|
+
var _ref;
|
|
12
13
|
const { path, input, type, context } = op;
|
|
13
14
|
const cacheTag = generateCacheTag(path, input);
|
|
14
15
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
15
|
-
const revalidate = requestRevalidate
|
|
16
|
+
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
16
17
|
const promise = opts.createContext().then(async (ctx) => {
|
|
17
18
|
const callProc = async (_cachebuster) => {
|
|
18
19
|
const procedureResult = await callProcedure({
|
|
@@ -1 +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
|
|
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,qBAAa,iFAAqB,KAAK,iDAAc;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"}
|
|
@@ -1,31 +1,25 @@
|
|
|
1
|
-
const require_chunk = require('../../chunk-
|
|
2
|
-
const
|
|
1
|
+
const require_chunk = require('../../chunk-DWy1uDak.cjs');
|
|
2
|
+
const require_objectSpread2$1 = require('../../objectSpread2-CGXFkI72.cjs');
|
|
3
|
+
const require_shared = require('../../shared-COdt67yK.cjs');
|
|
3
4
|
const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
|
|
4
5
|
|
|
5
6
|
//#region src/app-dir/links/nextHttp.ts
|
|
7
|
+
var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2(), 1);
|
|
6
8
|
function experimental_nextHttpLink(opts) {
|
|
7
9
|
return (runtime) => {
|
|
8
10
|
return (ctx) => {
|
|
11
|
+
var _ref;
|
|
9
12
|
const { path, input, context } = ctx.op;
|
|
10
13
|
const cacheTag = require_shared.generateCacheTag(path, input);
|
|
11
14
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
12
|
-
const revalidate = requestRevalidate
|
|
15
|
+
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
13
16
|
const _fetch = (url, fetchOpts) => {
|
|
14
|
-
return fetch(url, {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
tags: [cacheTag]
|
|
19
|
-
}
|
|
20
|
-
});
|
|
17
|
+
return fetch(url, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, fetchOpts), {}, { next: {
|
|
18
|
+
revalidate,
|
|
19
|
+
tags: [cacheTag]
|
|
20
|
+
} }));
|
|
21
21
|
};
|
|
22
|
-
const link = opts.batch ? (0, __trpc_client.httpBatchLink)({
|
|
23
|
-
...opts,
|
|
24
|
-
fetch: _fetch
|
|
25
|
-
}) : (0, __trpc_client.httpLink)({
|
|
26
|
-
...opts,
|
|
27
|
-
fetch: _fetch
|
|
28
|
-
});
|
|
22
|
+
const link = opts.batch ? (0, __trpc_client.httpBatchLink)((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { fetch: _fetch })) : (0, __trpc_client.httpLink)((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { fetch: _fetch }));
|
|
29
23
|
return link(runtime)(ctx);
|
|
30
24
|
};
|
|
31
25
|
};
|
|
@@ -1,30 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __toESM, require_objectSpread2 } from "../../objectSpread2-3tHFGdJc.mjs";
|
|
2
|
+
import { generateCacheTag } from "../../shared-Bco66qhk.mjs";
|
|
2
3
|
import { httpBatchLink, httpLink } from "@trpc/client";
|
|
3
4
|
|
|
4
5
|
//#region src/app-dir/links/nextHttp.ts
|
|
6
|
+
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
|
5
7
|
function experimental_nextHttpLink(opts) {
|
|
6
8
|
return (runtime) => {
|
|
7
9
|
return (ctx) => {
|
|
10
|
+
var _ref;
|
|
8
11
|
const { path, input, context } = ctx.op;
|
|
9
12
|
const cacheTag = generateCacheTag(path, input);
|
|
10
13
|
const requestRevalidate = typeof context["revalidate"] === "number" || context["revalidate"] === false ? context["revalidate"] : void 0;
|
|
11
|
-
const revalidate = requestRevalidate
|
|
14
|
+
const revalidate = (_ref = requestRevalidate !== null && requestRevalidate !== void 0 ? requestRevalidate : opts.revalidate) !== null && _ref !== void 0 ? _ref : false;
|
|
12
15
|
const _fetch = (url, fetchOpts) => {
|
|
13
|
-
return fetch(url, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
tags: [cacheTag]
|
|
18
|
-
}
|
|
19
|
-
});
|
|
16
|
+
return fetch(url, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, fetchOpts), {}, { next: {
|
|
17
|
+
revalidate,
|
|
18
|
+
tags: [cacheTag]
|
|
19
|
+
} }));
|
|
20
20
|
};
|
|
21
|
-
const link = opts.batch ? httpBatchLink({
|
|
22
|
-
...opts,
|
|
23
|
-
fetch: _fetch
|
|
24
|
-
}) : httpLink({
|
|
25
|
-
...opts,
|
|
26
|
-
fetch: _fetch
|
|
27
|
-
});
|
|
21
|
+
const link = opts.batch ? httpBatchLink((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { fetch: _fetch })) : httpLink((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { fetch: _fetch }));
|
|
28
22
|
return link(runtime)(ctx);
|
|
29
23
|
};
|
|
30
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextHttp.mjs","names":["opts:\n | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>\n | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>","_fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']>"],"sources":["../../../src/app-dir/links/nextHttp.ts"],"sourcesContent":["import type {\n HTTPBatchLinkOptions,\n HTTPLinkOptions,\n TRPCLink,\n} from '@trpc/client';\nimport { httpBatchLink, httpLink } from '@trpc/client';\nimport type {\n AnyRootTypes,\n AnyRouter,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { generateCacheTag } from '../shared';\n\ninterface NextLinkBaseOptions {\n revalidate?: number | false;\n batch?: boolean;\n}\n\ntype NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &\n Omit<HTTPLinkOptions<TRoot>, 'fetch'> & {\n batch?: false;\n };\n\ntype NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &\n Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {\n batch: true;\n };\n\n// ts-prune-ignore-next\nexport function experimental_nextHttpLink<TRouter extends AnyRouter>(\n opts:\n | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>\n | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n return (runtime) => {\n return (ctx) => {\n const { path, input, context } = ctx.op;\n const cacheTag = generateCacheTag(path, input);\n\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\n const revalidate = requestRevalidate ?? opts.revalidate ?? false;\n\n const _fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']> = (\n url,\n fetchOpts,\n ) => {\n return fetch(url, {\n ...fetchOpts,\n // cache: 'no-cache',\n next: {\n revalidate,\n tags: [cacheTag],\n },\n });\n };\n const link = opts.batch\n ? httpBatchLink({\n ...(opts as any),\n fetch: _fetch,\n })\n : httpLink({\n ...(opts as any),\n fetch: _fetch,\n });\n\n return link(runtime)(ctx);\n };\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"nextHttp.mjs","names":["opts:\n | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>\n | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>","_fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']>"],"sources":["../../../src/app-dir/links/nextHttp.ts"],"sourcesContent":["import type {\n HTTPBatchLinkOptions,\n HTTPLinkOptions,\n TRPCLink,\n} from '@trpc/client';\nimport { httpBatchLink, httpLink } from '@trpc/client';\nimport type {\n AnyRootTypes,\n AnyRouter,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { generateCacheTag } from '../shared';\n\ninterface NextLinkBaseOptions {\n revalidate?: number | false;\n batch?: boolean;\n}\n\ntype NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &\n Omit<HTTPLinkOptions<TRoot>, 'fetch'> & {\n batch?: false;\n };\n\ntype NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &\n Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {\n batch: true;\n };\n\n// ts-prune-ignore-next\nexport function experimental_nextHttpLink<TRouter extends AnyRouter>(\n opts:\n | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>\n | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n return (runtime) => {\n return (ctx) => {\n const { path, input, context } = ctx.op;\n const cacheTag = generateCacheTag(path, input);\n\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\n const revalidate = requestRevalidate ?? opts.revalidate ?? false;\n\n const _fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']> = (\n url,\n fetchOpts,\n ) => {\n return fetch(url, {\n ...fetchOpts,\n // cache: 'no-cache',\n next: {\n revalidate,\n tags: [cacheTag],\n },\n });\n };\n const link = opts.batch\n ? httpBatchLink({\n ...(opts as any),\n fetch: _fetch,\n })\n : httpLink({\n ...(opts as any),\n fetch: _fetch,\n });\n\n return link(runtime)(ctx);\n };\n };\n}\n"],"mappings":";;;;;;AA4BA,SAAgB,0BACdA,MAGmB;AACnB,QAAO,CAAC,YAAY;AAClB,SAAO,CAAC,QAAQ;;GACd,MAAM,EAAE,MAAM,OAAO,SAAS,GAAG,IAAI;GACrC,MAAM,WAAW,iBAAiB,MAAM,MAAM;GAG9C,MAAM,2BACG,QAAQ,kBAAkB,YACjC,QAAQ,kBAAkB,QACtB,QAAQ;GAGd,MAAM,qBAAa,iFAAqB,KAAK,iDAAc;GAE3D,MAAMC,SAA8D,CAClE,KACA,cACG;AACH,WAAO,MAAM,6EACR,kBAEH,MAAM;KACJ;KACA,MAAM,CAAC,QAAS;IACjB,KACD;GACH;GACD,MAAM,OAAO,KAAK,QACd,sFACM,aACJ,OAAO,UACP,GACF,iFACM,aACJ,OAAO,UACP;AAEN,UAAO,KAAK,QAAQ,CAAC,IAAI;EAC1B;CACF;AACF"}
|
package/dist/app-dir/server.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_chunk = require('../chunk-
|
|
2
|
-
const require_shared = require('../shared-
|
|
1
|
+
const require_chunk = require('../chunk-DWy1uDak.cjs');
|
|
2
|
+
const require_shared = require('../shared-COdt67yK.cjs');
|
|
3
3
|
const react = require_chunk.__toESM(require("react"));
|
|
4
4
|
const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
5
5
|
const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
|
|
@@ -34,10 +34,11 @@ function experimental_createServerActionHandler(t, opts) {
|
|
|
34
34
|
return async function actionHandler(rawInput) {
|
|
35
35
|
let ctx = void 0;
|
|
36
36
|
try {
|
|
37
|
-
|
|
37
|
+
var _await$createContext;
|
|
38
|
+
ctx = (_await$createContext = await (createContext === null || createContext === void 0 ? void 0 : createContext())) !== null && _await$createContext !== void 0 ? _await$createContext : {};
|
|
38
39
|
if (normalizeFormData && require_shared.isFormData(rawInput)) try {
|
|
39
40
|
rawInput = (0, __trpc_server_unstable_core_do_not_import.formDataToObject)(rawInput);
|
|
40
|
-
} catch {
|
|
41
|
+
} catch (_unused) {
|
|
41
42
|
throw new __trpc_server_unstable_core_do_not_import.TRPCError({
|
|
42
43
|
code: "INTERNAL_SERVER_ERROR",
|
|
43
44
|
message: "Failed to convert FormData to an object"
|
|
@@ -55,8 +56,9 @@ function experimental_createServerActionHandler(t, opts) {
|
|
|
55
56
|
const transformedJSON = (0, __trpc_server_unstable_core_do_not_import.transformTRPCResponse)(config, { result: { data } });
|
|
56
57
|
return transformedJSON;
|
|
57
58
|
} catch (cause) {
|
|
59
|
+
var _opts$onError;
|
|
58
60
|
const error = (0, __trpc_server_unstable_core_do_not_import.getTRPCErrorFromUnknown)(cause);
|
|
59
|
-
opts.onError
|
|
61
|
+
(_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {
|
|
60
62
|
ctx,
|
|
61
63
|
error,
|
|
62
64
|
input: rawInput,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ActionHandlerDef, TRPCActionHandler, experimental_createServerActionHandler, experimental_createTRPCNextAppDirServer, experimental_revalidateEndpoint } from "../server.d-
|
|
1
|
+
import { ActionHandlerDef, TRPCActionHandler, experimental_createServerActionHandler, experimental_createTRPCNextAppDirServer, experimental_revalidateEndpoint } from "../server.d-C5p0ZwB7.mjs";
|
|
2
2
|
export { ActionHandlerDef, TRPCActionHandler, experimental_createServerActionHandler, experimental_createTRPCNextAppDirServer, experimental_revalidateEndpoint };
|
package/dist/app-dir/server.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateCacheTag, isFormData } from "../shared-
|
|
1
|
+
import { generateCacheTag, isFormData } from "../shared-Bco66qhk.mjs";
|
|
2
2
|
import { cache } from "react";
|
|
3
3
|
import { TRPCError, createRecursiveProxy, formDataToObject, getErrorShape, getTRPCErrorFromUnknown, transformTRPCResponse } from "@trpc/server/unstable-core-do-not-import";
|
|
4
4
|
import { clientCallTypeToProcedureType, createTRPCUntypedClient } from "@trpc/client";
|
|
@@ -33,10 +33,11 @@ function experimental_createServerActionHandler(t, opts) {
|
|
|
33
33
|
return async function actionHandler(rawInput) {
|
|
34
34
|
let ctx = void 0;
|
|
35
35
|
try {
|
|
36
|
-
|
|
36
|
+
var _await$createContext;
|
|
37
|
+
ctx = (_await$createContext = await (createContext === null || createContext === void 0 ? void 0 : createContext())) !== null && _await$createContext !== void 0 ? _await$createContext : {};
|
|
37
38
|
if (normalizeFormData && isFormData(rawInput)) try {
|
|
38
39
|
rawInput = formDataToObject(rawInput);
|
|
39
|
-
} catch {
|
|
40
|
+
} catch (_unused) {
|
|
40
41
|
throw new TRPCError({
|
|
41
42
|
code: "INTERNAL_SERVER_ERROR",
|
|
42
43
|
message: "Failed to convert FormData to an object"
|
|
@@ -54,8 +55,9 @@ function experimental_createServerActionHandler(t, opts) {
|
|
|
54
55
|
const transformedJSON = transformTRPCResponse(config, { result: { data } });
|
|
55
56
|
return transformedJSON;
|
|
56
57
|
} catch (cause) {
|
|
58
|
+
var _opts$onError;
|
|
57
59
|
const error = getTRPCErrorFromUnknown(cause);
|
|
58
|
-
opts.onError
|
|
60
|
+
(_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {
|
|
59
61
|
ctx,
|
|
60
62
|
error,
|
|
61
63
|
input: rawInput,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.mjs","names":["opts: CreateTRPCNextAppRouterOptions<TRouter>","t: TInstance","opts: CreateContextCallback<\n TInstance['_config']['$types']['ctx'],\n () => MaybePromise<TInstance['_config']['$types']['ctx']>\n > & {\n /**\n * Transform form data to a `Record` before passing it to the procedure\n * @default true\n */\n normalizeFormData?: boolean;\n /**\n * Called when an error occurs in the handler\n */\n onError?: (\n opts: ErrorHandlerOptions<TInstance['_config']['$types']['ctx']>,\n ) => void;\n\n /**\n * Rethrow errors that should be handled by Next.js\n * @default true\n */\n rethrowNextErrors?: boolean;\n }","proc: TProc","rawInput: FormData | inferProcedureInput<TProc>","ctx: TInstance['_config']['$types']['ctx'] | undefined","req: Request"],"sources":["../../src/app-dir/server.ts"],"sourcesContent":["/// <reference types=\"next\" />\nimport {\n clientCallTypeToProcedureType,\n createTRPCUntypedClient,\n} from '@trpc/client';\nimport type { CreateContextCallback } from '@trpc/server';\nimport { rethrowNextErrors } from '@trpc/server/adapters/next-app-dir';\nimport type {\n AnyProcedure,\n AnyRootTypes,\n AnyRouter,\n ErrorHandlerOptions,\n inferClientTypes,\n inferProcedureInput,\n MaybePromise,\n RootConfig,\n Simplify,\n TRPCResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n createRecursiveProxy,\n formDataToObject,\n getErrorShape,\n getTRPCErrorFromUnknown,\n transformTRPCResponse,\n TRPCError,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { revalidateTag } from 'next/cache';\nimport { cache } from 'react';\nimport type {\n ActionHandlerDef,\n CreateTRPCNextAppRouterOptions,\n inferActionDef,\n} from './shared';\nimport { generateCacheTag, isFormData } from './shared';\nimport type { NextAppDirDecorateRouterRecord } from './types';\n\nexport type { ActionHandlerDef };\n\n// ts-prune-ignore-next\nexport function experimental_createTRPCNextAppDirServer<\n TRouter extends AnyRouter,\n>(opts: CreateTRPCNextAppRouterOptions<TRouter>) {\n const getClient = cache(() => {\n const config = opts.config();\n return createTRPCUntypedClient(config);\n });\n\n return createRecursiveProxy<\n NextAppDirDecorateRouterRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n >((callOpts) => {\n // lazily initialize client\n const client = getClient();\n\n const pathCopy = [...callOpts.path];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const action = pathCopy.pop()!;\n const procedurePath = pathCopy.join('.');\n const procedureType = clientCallTypeToProcedureType(action);\n const cacheTag = generateCacheTag(procedurePath, callOpts.args[0]);\n\n if (action === 'revalidate') {\n revalidateTag(cacheTag);\n return;\n }\n\n return (client[procedureType] as any)(procedurePath, ...callOpts.args);\n });\n}\n\n/**\n * @internal\n */\nexport type TRPCActionHandler<TDef extends ActionHandlerDef> = (\n input: FormData | TDef['input'],\n) => Promise<TRPCResponse<TDef['output'], TDef['errorShape']>>;\n\nexport function experimental_createServerActionHandler<\n TInstance extends {\n _config: RootConfig<AnyRootTypes>;\n },\n>(\n t: TInstance,\n opts: CreateContextCallback<\n TInstance['_config']['$types']['ctx'],\n () => MaybePromise<TInstance['_config']['$types']['ctx']>\n > & {\n /**\n * Transform form data to a `Record` before passing it to the procedure\n * @default true\n */\n normalizeFormData?: boolean;\n /**\n * Called when an error occurs in the handler\n */\n onError?: (\n opts: ErrorHandlerOptions<TInstance['_config']['$types']['ctx']>,\n ) => void;\n\n /**\n * Rethrow errors that should be handled by Next.js\n * @default true\n */\n rethrowNextErrors?: boolean;\n },\n) {\n const config = t._config;\n const {\n normalizeFormData = true,\n createContext,\n rethrowNextErrors: shouldRethrowNextErrors = true,\n } = opts;\n\n const transformer = config.transformer;\n\n // TODO allow this to take a `TRouter` in addition to a `AnyProcedure`\n return function createServerAction<TProc extends AnyProcedure>(\n proc: TProc,\n ): TRPCActionHandler<\n Simplify<inferActionDef<inferClientTypes<TInstance>, TProc>>\n > {\n return async function actionHandler(\n rawInput: FormData | inferProcedureInput<TProc>,\n ) {\n let ctx: TInstance['_config']['$types']['ctx'] | undefined = undefined;\n try {\n ctx = (await createContext?.()) ?? {};\n if (normalizeFormData && isFormData(rawInput)) {\n // Normalizes FormData so we can use `z.object({})` etc on the server\n try {\n rawInput = formDataToObject(rawInput);\n } catch {\n throw new TRPCError({\n code: 'INTERNAL_SERVER_ERROR',\n message: 'Failed to convert FormData to an object',\n });\n }\n } else if (rawInput && !isFormData(rawInput)) {\n rawInput = transformer.input.deserialize(rawInput);\n }\n\n const data = proc._def.experimental_caller\n ? await proc(rawInput as any)\n : await proc({\n input: undefined,\n ctx,\n path: '',\n getRawInput: async () => rawInput,\n type: proc._def.type,\n // is it possible to get the AbortSignal from the request?\n signal: undefined,\n });\n\n const transformedJSON = transformTRPCResponse(config, {\n result: {\n data,\n },\n });\n return transformedJSON;\n } catch (cause) {\n const error = getTRPCErrorFromUnknown(cause);\n\n opts.onError?.({\n ctx,\n error,\n input: rawInput,\n path: '',\n type: proc._def.type,\n });\n\n if (shouldRethrowNextErrors) {\n rethrowNextErrors(error);\n }\n\n const shape = getErrorShape({\n config,\n ctx,\n error,\n input: rawInput,\n path: '',\n type: proc._def.type,\n });\n\n return transformTRPCResponse(t._config, {\n error: shape,\n });\n }\n } as TRPCActionHandler<\n inferActionDef<TInstance['_config']['$types'], TProc>\n >;\n };\n}\n\n// ts-prune-ignore-next\nexport async function experimental_revalidateEndpoint(req: Request) {\n const { cacheTag } = await req.json();\n\n if (typeof cacheTag !== 'string') {\n return new Response(\n JSON.stringify({\n revalidated: false,\n error: 'cacheTag must be a string',\n }),\n { status: 400 },\n );\n }\n\n revalidateTag(cacheTag);\n return new Response(JSON.stringify({ revalidated: true, now: Date.now() }), {\n status: 200,\n });\n}\n"],"mappings":";;;;;;;;AAwCA,SAAgB,wCAEdA,MAA+C;CAC/C,MAAM,YAAY,MAAM,MAAM;EAC5B,MAAM,SAAS,KAAK,QAAQ;AAC5B,SAAO,wBAAwB,OAAO;CACvC,EAAC;AAEF,QAAO,qBAKL,CAAC,aAAa;EAEd,MAAM,SAAS,WAAW;EAE1B,MAAM,WAAW,CAAC,GAAG,SAAS,IAAK;EAEnC,MAAM,SAAS,SAAS,KAAK;EAC7B,MAAM,gBAAgB,SAAS,KAAK,IAAI;EACxC,MAAM,gBAAgB,8BAA8B,OAAO;EAC3D,MAAM,WAAW,iBAAiB,eAAe,SAAS,KAAK,GAAG;AAElE,MAAI,WAAW,cAAc;AAC3B,iBAAc,SAAS;AACvB;EACD;AAED,SAAO,AAAC,OAAO,eAAuB,eAAe,GAAG,SAAS,KAAK;CACvE,EAAC;AACH;AASD,SAAgB,uCAKdC,GACAC,MAsBA;CACA,MAAM,SAAS,EAAE;CACjB,MAAM,EACJ,oBAAoB,MACpB,eACA,mBAAmB,0BAA0B,MAC9C,GAAG;CAEJ,MAAM,cAAc,OAAO;AAG3B,QAAO,SAAS,mBACdC,MAGA;AACA,SAAO,eAAe,cACpBC,UACA;GACA,IAAIC;AACJ,OAAI
|
|
1
|
+
{"version":3,"file":"server.mjs","names":["opts: CreateTRPCNextAppRouterOptions<TRouter>","t: TInstance","opts: CreateContextCallback<\n TInstance['_config']['$types']['ctx'],\n () => MaybePromise<TInstance['_config']['$types']['ctx']>\n > & {\n /**\n * Transform form data to a `Record` before passing it to the procedure\n * @default true\n */\n normalizeFormData?: boolean;\n /**\n * Called when an error occurs in the handler\n */\n onError?: (\n opts: ErrorHandlerOptions<TInstance['_config']['$types']['ctx']>,\n ) => void;\n\n /**\n * Rethrow errors that should be handled by Next.js\n * @default true\n */\n rethrowNextErrors?: boolean;\n }","proc: TProc","rawInput: FormData | inferProcedureInput<TProc>","ctx: TInstance['_config']['$types']['ctx'] | undefined","req: Request"],"sources":["../../src/app-dir/server.ts"],"sourcesContent":["/// <reference types=\"next\" />\nimport {\n clientCallTypeToProcedureType,\n createTRPCUntypedClient,\n} from '@trpc/client';\nimport type { CreateContextCallback } from '@trpc/server';\nimport { rethrowNextErrors } from '@trpc/server/adapters/next-app-dir';\nimport type {\n AnyProcedure,\n AnyRootTypes,\n AnyRouter,\n ErrorHandlerOptions,\n inferClientTypes,\n inferProcedureInput,\n MaybePromise,\n RootConfig,\n Simplify,\n TRPCResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n createRecursiveProxy,\n formDataToObject,\n getErrorShape,\n getTRPCErrorFromUnknown,\n transformTRPCResponse,\n TRPCError,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { revalidateTag } from 'next/cache';\nimport { cache } from 'react';\nimport type {\n ActionHandlerDef,\n CreateTRPCNextAppRouterOptions,\n inferActionDef,\n} from './shared';\nimport { generateCacheTag, isFormData } from './shared';\nimport type { NextAppDirDecorateRouterRecord } from './types';\n\nexport type { ActionHandlerDef };\n\n// ts-prune-ignore-next\nexport function experimental_createTRPCNextAppDirServer<\n TRouter extends AnyRouter,\n>(opts: CreateTRPCNextAppRouterOptions<TRouter>) {\n const getClient = cache(() => {\n const config = opts.config();\n return createTRPCUntypedClient(config);\n });\n\n return createRecursiveProxy<\n NextAppDirDecorateRouterRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n >((callOpts) => {\n // lazily initialize client\n const client = getClient();\n\n const pathCopy = [...callOpts.path];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const action = pathCopy.pop()!;\n const procedurePath = pathCopy.join('.');\n const procedureType = clientCallTypeToProcedureType(action);\n const cacheTag = generateCacheTag(procedurePath, callOpts.args[0]);\n\n if (action === 'revalidate') {\n revalidateTag(cacheTag);\n return;\n }\n\n return (client[procedureType] as any)(procedurePath, ...callOpts.args);\n });\n}\n\n/**\n * @internal\n */\nexport type TRPCActionHandler<TDef extends ActionHandlerDef> = (\n input: FormData | TDef['input'],\n) => Promise<TRPCResponse<TDef['output'], TDef['errorShape']>>;\n\nexport function experimental_createServerActionHandler<\n TInstance extends {\n _config: RootConfig<AnyRootTypes>;\n },\n>(\n t: TInstance,\n opts: CreateContextCallback<\n TInstance['_config']['$types']['ctx'],\n () => MaybePromise<TInstance['_config']['$types']['ctx']>\n > & {\n /**\n * Transform form data to a `Record` before passing it to the procedure\n * @default true\n */\n normalizeFormData?: boolean;\n /**\n * Called when an error occurs in the handler\n */\n onError?: (\n opts: ErrorHandlerOptions<TInstance['_config']['$types']['ctx']>,\n ) => void;\n\n /**\n * Rethrow errors that should be handled by Next.js\n * @default true\n */\n rethrowNextErrors?: boolean;\n },\n) {\n const config = t._config;\n const {\n normalizeFormData = true,\n createContext,\n rethrowNextErrors: shouldRethrowNextErrors = true,\n } = opts;\n\n const transformer = config.transformer;\n\n // TODO allow this to take a `TRouter` in addition to a `AnyProcedure`\n return function createServerAction<TProc extends AnyProcedure>(\n proc: TProc,\n ): TRPCActionHandler<\n Simplify<inferActionDef<inferClientTypes<TInstance>, TProc>>\n > {\n return async function actionHandler(\n rawInput: FormData | inferProcedureInput<TProc>,\n ) {\n let ctx: TInstance['_config']['$types']['ctx'] | undefined = undefined;\n try {\n ctx = (await createContext?.()) ?? {};\n if (normalizeFormData && isFormData(rawInput)) {\n // Normalizes FormData so we can use `z.object({})` etc on the server\n try {\n rawInput = formDataToObject(rawInput);\n } catch {\n throw new TRPCError({\n code: 'INTERNAL_SERVER_ERROR',\n message: 'Failed to convert FormData to an object',\n });\n }\n } else if (rawInput && !isFormData(rawInput)) {\n rawInput = transformer.input.deserialize(rawInput);\n }\n\n const data = proc._def.experimental_caller\n ? await proc(rawInput as any)\n : await proc({\n input: undefined,\n ctx,\n path: '',\n getRawInput: async () => rawInput,\n type: proc._def.type,\n // is it possible to get the AbortSignal from the request?\n signal: undefined,\n });\n\n const transformedJSON = transformTRPCResponse(config, {\n result: {\n data,\n },\n });\n return transformedJSON;\n } catch (cause) {\n const error = getTRPCErrorFromUnknown(cause);\n\n opts.onError?.({\n ctx,\n error,\n input: rawInput,\n path: '',\n type: proc._def.type,\n });\n\n if (shouldRethrowNextErrors) {\n rethrowNextErrors(error);\n }\n\n const shape = getErrorShape({\n config,\n ctx,\n error,\n input: rawInput,\n path: '',\n type: proc._def.type,\n });\n\n return transformTRPCResponse(t._config, {\n error: shape,\n });\n }\n } as TRPCActionHandler<\n inferActionDef<TInstance['_config']['$types'], TProc>\n >;\n };\n}\n\n// ts-prune-ignore-next\nexport async function experimental_revalidateEndpoint(req: Request) {\n const { cacheTag } = await req.json();\n\n if (typeof cacheTag !== 'string') {\n return new Response(\n JSON.stringify({\n revalidated: false,\n error: 'cacheTag must be a string',\n }),\n { status: 400 },\n );\n }\n\n revalidateTag(cacheTag);\n return new Response(JSON.stringify({ revalidated: true, now: Date.now() }), {\n status: 200,\n });\n}\n"],"mappings":";;;;;;;;AAwCA,SAAgB,wCAEdA,MAA+C;CAC/C,MAAM,YAAY,MAAM,MAAM;EAC5B,MAAM,SAAS,KAAK,QAAQ;AAC5B,SAAO,wBAAwB,OAAO;CACvC,EAAC;AAEF,QAAO,qBAKL,CAAC,aAAa;EAEd,MAAM,SAAS,WAAW;EAE1B,MAAM,WAAW,CAAC,GAAG,SAAS,IAAK;EAEnC,MAAM,SAAS,SAAS,KAAK;EAC7B,MAAM,gBAAgB,SAAS,KAAK,IAAI;EACxC,MAAM,gBAAgB,8BAA8B,OAAO;EAC3D,MAAM,WAAW,iBAAiB,eAAe,SAAS,KAAK,GAAG;AAElE,MAAI,WAAW,cAAc;AAC3B,iBAAc,SAAS;AACvB;EACD;AAED,SAAO,AAAC,OAAO,eAAuB,eAAe,GAAG,SAAS,KAAK;CACvE,EAAC;AACH;AASD,SAAgB,uCAKdC,GACAC,MAsBA;CACA,MAAM,SAAS,EAAE;CACjB,MAAM,EACJ,oBAAoB,MACpB,eACA,mBAAmB,0BAA0B,MAC9C,GAAG;CAEJ,MAAM,cAAc,OAAO;AAG3B,QAAO,SAAS,mBACdC,MAGA;AACA,SAAO,eAAe,cACpBC,UACA;GACA,IAAIC;AACJ,OAAI;;AACF,kCAAO,qEAAM,eAAiB,wEAAK,CAAE;AACrC,QAAI,qBAAqB,WAAW,SAAS,CAE3C,KAAI;AACF,gBAAW,iBAAiB,SAAS;IACtC,kBAAO;AACN,WAAM,IAAI,UAAU;MAClB,MAAM;MACN,SAAS;KACV;IACF;aACQ,aAAa,WAAW,SAAS,CAC1C,YAAW,YAAY,MAAM,YAAY,SAAS;IAGpD,MAAM,OAAO,KAAK,KAAK,sBACnB,MAAM,KAAK,SAAgB,GAC3B,MAAM,KAAK;KACT;KACA;KACA,MAAM;KACN,aAAa,YAAY;KACzB,MAAM,KAAK,KAAK;KAEhB;IACD,EAAC;IAEN,MAAM,kBAAkB,sBAAsB,QAAQ,EACpD,QAAQ,EACN,KACD,EACF,EAAC;AACF,WAAO;GACR,SAAQ,OAAO;;IACd,MAAM,QAAQ,wBAAwB,MAAM;AAE5C,0BAAK,iDAAL,yBAAe;KACb;KACA;KACA,OAAO;KACP,MAAM;KACN,MAAM,KAAK,KAAK;IACjB,EAAC;AAEF,QAAI,wBACF,mBAAkB,MAAM;IAG1B,MAAM,QAAQ,cAAc;KAC1B;KACA;KACA;KACA,OAAO;KACP,MAAM;KACN,MAAM,KAAK,KAAK;IACjB,EAAC;AAEF,WAAO,sBAAsB,EAAE,SAAS,EACtC,OAAO,MACR,EAAC;GACH;EACF;CAGF;AACF;AAGD,eAAsB,gCAAgCC,KAAc;CAClE,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,MAAM;AAErC,YAAW,aAAa,SACtB,QAAO,IAAI,SACT,KAAK,UAAU;EACb,aAAa;EACb,OAAO;CACR,EAAC,EACF,EAAE,QAAQ,IAAK;AAInB,eAAc,SAAS;AACvB,QAAO,IAAI,SAAS,KAAK,UAAU;EAAE,aAAa;EAAM,KAAK,KAAK,KAAK;CAAE,EAAC,EAAE,EAC1E,QAAQ,IACT;AACF"}
|
|
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJS = (cb, mod) => function() {
|
|
9
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
+
};
|
|
8
11
|
var __copyProps = (to, from, except, desc) => {
|
|
9
12
|
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
13
|
key = keys[i];
|
|
@@ -22,6 +25,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
25
|
|
|
23
26
|
//#endregion
|
|
24
27
|
|
|
28
|
+
Object.defineProperty(exports, '__commonJS', {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () {
|
|
31
|
+
return __commonJS;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
25
34
|
Object.defineProperty(exports, '__toESM', {
|
|
26
35
|
enumerable: true,
|
|
27
36
|
get: function () {
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-
|
|
1
|
+
const require_chunk = require('./chunk-DWy1uDak.cjs');
|
|
2
|
+
const require_objectSpread2$1 = require('./objectSpread2-CGXFkI72.cjs');
|
|
2
3
|
const __tanstack_react_query = require_chunk.__toESM(require("@tanstack/react-query"));
|
|
3
4
|
const __trpc_client_unstable_internals = require_chunk.__toESM(require("@trpc/client/unstable-internals"));
|
|
4
5
|
const __trpc_react_query_shared = require_chunk.__toESM(require("@trpc/react-query/shared"));
|
|
@@ -7,12 +8,15 @@ const react_jsx_runtime = require_chunk.__toESM(require("react/jsx-runtime"));
|
|
|
7
8
|
const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
8
9
|
|
|
9
10
|
//#region src/withTRPC.tsx
|
|
11
|
+
var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2());
|
|
10
12
|
function withTRPC(opts) {
|
|
11
13
|
const { config: getClientConfig } = opts;
|
|
12
14
|
const transformer = (0, __trpc_client_unstable_internals.getTransformer)(opts.transformer);
|
|
13
15
|
return (AppOrPage) => {
|
|
16
|
+
var _ref, _AppOrPage$displayNam;
|
|
14
17
|
const trpc = (0, __trpc_react_query_shared.createRootHooks)(opts);
|
|
15
18
|
const WithTRPC = (props) => {
|
|
19
|
+
var _props$pageProps, _abortOnUnmount;
|
|
16
20
|
const [prepassProps] = (0, react.useState)(() => {
|
|
17
21
|
if (props.trpc) return props.trpc;
|
|
18
22
|
const config = getClientConfig({});
|
|
@@ -27,13 +31,13 @@ function withTRPC(opts) {
|
|
|
27
31
|
};
|
|
28
32
|
});
|
|
29
33
|
const { queryClient, trpcClient, ssrState, ssrContext } = prepassProps;
|
|
30
|
-
const trpcState = props.pageProps
|
|
34
|
+
const trpcState = (_props$pageProps = props.pageProps) === null || _props$pageProps === void 0 ? void 0 : _props$pageProps.trpcState;
|
|
31
35
|
const hydratedState = react.default.useMemo(() => {
|
|
32
36
|
if (!trpcState) return trpcState;
|
|
33
37
|
return transformer.input.deserialize(trpcState);
|
|
34
38
|
}, [trpcState]);
|
|
35
39
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(trpc.Provider, {
|
|
36
|
-
abortOnUnmount: prepassProps.abortOnUnmount
|
|
40
|
+
abortOnUnmount: (_abortOnUnmount = prepassProps.abortOnUnmount) !== null && _abortOnUnmount !== void 0 ? _abortOnUnmount : false,
|
|
37
41
|
client: trpcClient,
|
|
38
42
|
queryClient,
|
|
39
43
|
ssrState,
|
|
@@ -42,7 +46,7 @@ function withTRPC(opts) {
|
|
|
42
46
|
client: queryClient,
|
|
43
47
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tanstack_react_query.HydrationBoundary, {
|
|
44
48
|
state: hydratedState,
|
|
45
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AppOrPage, {
|
|
49
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AppOrPage, (0, import_objectSpread2.default)({}, props))
|
|
46
50
|
})
|
|
47
51
|
})
|
|
48
52
|
});
|
|
@@ -53,18 +57,16 @@ function withTRPC(opts) {
|
|
|
53
57
|
WithTRPC
|
|
54
58
|
});
|
|
55
59
|
else if (AppOrPage.getInitialProps) WithTRPC.getInitialProps = async (appOrPageCtx) => {
|
|
60
|
+
var _originalProps$pagePr;
|
|
56
61
|
const isApp = !!appOrPageCtx.Component;
|
|
57
62
|
let pageProps = {};
|
|
58
63
|
const originalProps = await AppOrPage.getInitialProps(appOrPageCtx);
|
|
59
|
-
const originalPageProps = isApp ? originalProps.pageProps
|
|
60
|
-
pageProps = {
|
|
61
|
-
...originalPageProps,
|
|
62
|
-
...pageProps
|
|
63
|
-
};
|
|
64
|
+
const originalPageProps = isApp ? (_originalProps$pagePr = originalProps.pageProps) !== null && _originalProps$pagePr !== void 0 ? _originalProps$pagePr : {} : originalProps;
|
|
65
|
+
pageProps = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, originalPageProps), pageProps);
|
|
64
66
|
const getAppTreeProps = (props) => isApp ? { pageProps: props } : props;
|
|
65
67
|
return getAppTreeProps(pageProps);
|
|
66
68
|
};
|
|
67
|
-
const displayName = AppOrPage.displayName
|
|
69
|
+
const displayName = (_ref = (_AppOrPage$displayNam = AppOrPage.displayName) !== null && _AppOrPage$displayNam !== void 0 ? _AppOrPage$displayNam : AppOrPage.name) !== null && _ref !== void 0 ? _ref : "Component";
|
|
68
70
|
WithTRPC.displayName = `withTRPC(${displayName})`;
|
|
69
71
|
return WithTRPC;
|
|
70
72
|
};
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, withTRPC } from "./withTRPC.d-
|
|
1
|
+
import { TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, withTRPC } from "./withTRPC.d-B3f3A0sf.mjs";
|
|
2
2
|
import { CreateReactUtils, DecorateRouterRecord, TRPCUseQueries, TRPCUseSuspenseQueries } from "@trpc/react-query/shared";
|
|
3
3
|
import { AnyRouter, ProtectedIntersection } from "@trpc/server/unstable-core-do-not-import";
|
|
4
4
|
import { NextPageContext } from "next/types";
|