@trpc/next 11.3.1 → 11.3.2-canary.2
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/app-dir/client/package.json +1 -0
- package/app-dir/links/nextCache/package.json +1 -0
- package/app-dir/links/nextHttp/package.json +1 -0
- package/app-dir/server/package.json +1 -0
- package/dist/app-dir/client.cjs +115 -0
- package/dist/app-dir/client.d.cts +50 -0
- package/dist/app-dir/client.d.cts.map +1 -0
- package/dist/app-dir/client.d.mts +50 -0
- package/dist/app-dir/client.d.mts.map +1 -0
- package/dist/app-dir/client.mjs +109 -40
- package/dist/app-dir/client.mjs.map +1 -0
- package/dist/app-dir/links/nextCache.cjs +48 -0
- package/dist/app-dir/links/nextCache.d.cts +15 -0
- package/dist/app-dir/links/nextCache.d.cts.map +1 -0
- package/dist/app-dir/links/nextCache.d.mts +15 -0
- package/dist/app-dir/links/nextCache.d.mts.map +1 -0
- package/dist/app-dir/links/nextCache.mjs +43 -55
- package/dist/app-dir/links/nextCache.mjs.map +1 -0
- package/dist/app-dir/links/nextHttp.cjs +35 -0
- package/dist/app-dir/links/nextHttp.d.cts +18 -0
- package/dist/app-dir/links/nextHttp.d.cts.map +1 -0
- package/dist/app-dir/links/nextHttp.d.mts +18 -0
- package/dist/app-dir/links/nextHttp.d.mts.map +1 -0
- package/dist/app-dir/links/nextHttp.mjs +30 -32
- package/dist/app-dir/links/nextHttp.mjs.map +1 -0
- package/dist/app-dir/server.cjs +96 -0
- package/dist/app-dir/server.d.cts +2 -0
- package/dist/app-dir/server.d.mts +2 -0
- package/dist/app-dir/server.mjs +85 -109
- package/dist/app-dir/server.mjs.map +1 -0
- package/dist/chunk-CUT6urMc.cjs +30 -0
- package/dist/index.cjs +95 -0
- package/dist/index.d.cts +35 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +35 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +94 -2
- package/dist/index.mjs.map +1 -0
- package/dist/server.d-BXv5jwlB.d.mts +90 -0
- package/dist/server.d-BXv5jwlB.d.mts.map +1 -0
- package/dist/server.d-DLnegS7F.d.cts +90 -0
- package/dist/server.d-DLnegS7F.d.cts.map +1 -0
- package/dist/shared-C9SS-IYg.cjs +29 -0
- package/dist/shared-FEQznZ-6.mjs +18 -0
- package/dist/shared-FEQznZ-6.mjs.map +1 -0
- package/dist/ssrPrepass.cjs +104 -0
- package/dist/ssrPrepass.d.cts +9 -0
- package/dist/ssrPrepass.d.cts.map +1 -0
- package/dist/ssrPrepass.d.mts +9 -0
- package/dist/ssrPrepass.d.mts.map +1 -0
- package/dist/ssrPrepass.mjs +98 -131
- package/dist/ssrPrepass.mjs.map +1 -0
- package/dist/withTRPC.d-BY6FsDWi.d.mts +54 -0
- package/dist/withTRPC.d-BY6FsDWi.d.mts.map +1 -0
- package/dist/withTRPC.d-DctYN4Yz.d.cts +54 -0
- package/dist/withTRPC.d-DctYN4Yz.d.cts.map +1 -0
- package/package.json +63 -34
- package/ssrPrepass/package.json +1 -0
- 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/dist/app-dir/client.d.ts +0 -6
- package/dist/app-dir/client.d.ts.map +0 -1
- package/dist/app-dir/client.js +0 -48
- package/dist/app-dir/create-action-hook.d.ts +0 -50
- package/dist/app-dir/create-action-hook.d.ts.map +0 -1
- package/dist/app-dir/create-action-hook.js +0 -108
- package/dist/app-dir/create-action-hook.mjs +0 -105
- package/dist/app-dir/links/nextCache.d.ts +0 -12
- package/dist/app-dir/links/nextCache.d.ts.map +0 -1
- package/dist/app-dir/links/nextCache.js +0 -62
- package/dist/app-dir/links/nextHttp.d.ts +0 -15
- package/dist/app-dir/links/nextHttp.d.ts.map +0 -1
- package/dist/app-dir/links/nextHttp.js +0 -39
- package/dist/app-dir/server.d.ts +0 -30
- package/dist/app-dir/server.d.ts.map +0 -1
- package/dist/app-dir/server.js +0 -122
- package/dist/app-dir/shared.d.ts +0 -55
- package/dist/app-dir/shared.d.ts.map +0 -1
- package/dist/app-dir/shared.js +0 -20
- package/dist/app-dir/shared.mjs +0 -17
- package/dist/app-dir/types.d.ts +0 -31
- package/dist/app-dir/types.d.ts.map +0 -1
- package/dist/createTRPCNext.d.ts +0 -29
- package/dist/createTRPCNext.d.ts.map +0 -1
- package/dist/createTRPCNext.js +0 -39
- package/dist/createTRPCNext.mjs +0 -37
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -9
- package/dist/ssrPrepass.d.ts +0 -3
- package/dist/ssrPrepass.d.ts.map +0 -1
- package/dist/ssrPrepass.js +0 -139
- package/dist/withTRPC.d.ts +0 -54
- package/dist/withTRPC.d.ts.map +0 -1
- package/dist/withTRPC.js +0 -84
- package/dist/withTRPC.mjs +0 -82
- package/ssrPrepass/index.d.ts +0 -1
- package/ssrPrepass/index.js +0 -1
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, withTRPC } from "./withTRPC.d-DctYN4Yz.cjs";
|
|
2
|
+
import { AnyRouter, ProtectedIntersection } from "@trpc/server/unstable-core-do-not-import";
|
|
3
|
+
import { CreateReactUtils, DecorateRouterRecord, TRPCUseQueries, TRPCUseSuspenseQueries } from "@trpc/react-query/shared";
|
|
4
|
+
import { NextPageContext } from "next/types";
|
|
5
|
+
|
|
6
|
+
//#region src/createTRPCNext.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
interface CreateTRPCNextBase<TRouter extends AnyRouter, TSSRContext extends NextPageContext> {
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated renamed to `useUtils` and will be removed in a future tRPC version
|
|
14
|
+
*
|
|
15
|
+
* @see https://trpc.io/docs/v11/client/react/useUtils
|
|
16
|
+
*/
|
|
17
|
+
useContext(): CreateReactUtils<TRouter, TSSRContext>;
|
|
18
|
+
/**
|
|
19
|
+
* @see https://trpc.io/docs/v11/client/react/useUtils
|
|
20
|
+
*/
|
|
21
|
+
useUtils(): CreateReactUtils<TRouter, TSSRContext>;
|
|
22
|
+
withTRPC: ReturnType<typeof withTRPC<TRouter, TSSRContext>>;
|
|
23
|
+
useQueries: TRPCUseQueries<TRouter>;
|
|
24
|
+
useSuspenseQueries: TRPCUseSuspenseQueries<TRouter>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
type CreateTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext> = ProtectedIntersection<CreateTRPCNextBase<TRouter, TSSRContext>, DecorateRouterRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>>;
|
|
30
|
+
declare function createTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): CreateTRPCNext<TRouter, TSSRContext>;
|
|
31
|
+
//# sourceMappingURL=createTRPCNext.d.ts.map
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { CreateTRPCNext, CreateTRPCNextBase, TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, createTRPCNext, withTRPC };
|
|
35
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/createTRPCNext.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AA0BA;;AACkB,UADD,kBACC,CAAA,gBAAA,SAAA,EAAA,oBACI,eADJ,CAAA,CAAA;EAAS;;;;;EAYW,UAAE,EAAA,EAJxB,gBAIwB,CAJP,OAIO,EAJE,WAIF,CAAA;EAAW;;;EACQ,QAA7B,EAAA,EADhB,gBACgB,CADC,OACD,EADU,WACV,CAAA;EAAQ,QAA1B,EAAA,UAAA,CAAA,OAAkB,QAAlB,CAA2B,OAA3B,EAAoC,WAApC,CAAA,CAAA;EAAU,UACO,EAAf,cAAe,CAAA,OAAA,CAAA;EAAO,kBAAtB,EACQ,sBADR,CAC+B,OAD/B,CAAA;;;AAC8B;AAM5C;AAA0B,KAAd,cAAc,CAAA,gBACR,SADQ,EAAA,oBAEJ,eAFI,CAAA,GAGtB,qBAHsB,CAIxB,kBAJwB,CAIL,OAJK,EAII,WAJJ,CAAA,EAKxB,oBALwB,CAMtB,OANsB,CAAA,MAAA,CAAA,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,EAOtB,OAPsB,CAAA,MAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AACR,iBAUF,cAVE,CAAA,gBAWA,SAXA,EAAA,oBAYI,eAZJ,GAYsB,eAZtB,CAAA,CAAA,IAAA,EAcV,oBAdU,CAcW,OAdX,CAAA,GAcsB,kBAdtB,CAcyC,OAdzC,CAAA,CAAA,EAef,cAfe,CAeA,OAfA,EAeS,WAfT,CAAA"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, withTRPC } from "./withTRPC.d-BY6FsDWi.mjs";
|
|
2
|
+
import { CreateReactUtils, DecorateRouterRecord, TRPCUseQueries, TRPCUseSuspenseQueries } from "@trpc/react-query/shared";
|
|
3
|
+
import { AnyRouter, ProtectedIntersection } from "@trpc/server/unstable-core-do-not-import";
|
|
4
|
+
import { NextPageContext } from "next/types";
|
|
5
|
+
|
|
6
|
+
//#region src/createTRPCNext.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
interface CreateTRPCNextBase<TRouter extends AnyRouter, TSSRContext extends NextPageContext> {
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated renamed to `useUtils` and will be removed in a future tRPC version
|
|
14
|
+
*
|
|
15
|
+
* @see https://trpc.io/docs/v11/client/react/useUtils
|
|
16
|
+
*/
|
|
17
|
+
useContext(): CreateReactUtils<TRouter, TSSRContext>;
|
|
18
|
+
/**
|
|
19
|
+
* @see https://trpc.io/docs/v11/client/react/useUtils
|
|
20
|
+
*/
|
|
21
|
+
useUtils(): CreateReactUtils<TRouter, TSSRContext>;
|
|
22
|
+
withTRPC: ReturnType<typeof withTRPC<TRouter, TSSRContext>>;
|
|
23
|
+
useQueries: TRPCUseQueries<TRouter>;
|
|
24
|
+
useSuspenseQueries: TRPCUseSuspenseQueries<TRouter>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
type CreateTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext> = ProtectedIntersection<CreateTRPCNextBase<TRouter, TSSRContext>, DecorateRouterRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>>;
|
|
30
|
+
declare function createTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): CreateTRPCNext<TRouter, TSSRContext>;
|
|
31
|
+
//# sourceMappingURL=createTRPCNext.d.ts.map
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { CreateTRPCNext, CreateTRPCNextBase, TRPCPrepassHelper, TRPCPrepassProps, WithTRPCConfig, WithTRPCNoSSROptions, WithTRPCSSROptions, createTRPCNext, withTRPC };
|
|
35
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/createTRPCNext.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AA0BA;;AACkB,UADD,kBACC,CAAA,gBAAA,SAAA,EAAA,oBACI,eADJ,CAAA,CAAA;EAAS;;;;;EAYW,UAAE,EAAA,EAJxB,gBAIwB,CAJP,OAIO,EAJE,WAIF,CAAA;EAAW;;;EACQ,QAA7B,EAAA,EADhB,gBACgB,CADC,OACD,EADU,WACV,CAAA;EAAQ,QAA1B,EAAA,UAAA,CAAA,OAAkB,QAAlB,CAA2B,OAA3B,EAAoC,WAApC,CAAA,CAAA;EAAU,UACO,EAAf,cAAe,CAAA,OAAA,CAAA;EAAO,kBAAtB,EACQ,sBADR,CAC+B,OAD/B,CAAA;;;AAC8B;AAM5C;AAA0B,KAAd,cAAc,CAAA,gBACR,SADQ,EAAA,oBAEJ,eAFI,CAAA,GAGtB,qBAHsB,CAIxB,kBAJwB,CAIL,OAJK,EAII,WAJJ,CAAA,EAKxB,oBALwB,CAMtB,OANsB,CAAA,MAAA,CAAA,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,EAOtB,OAPsB,CAAA,MAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AACR,iBAUF,cAVE,CAAA,gBAWA,SAXA,EAAA,oBAYI,eAZJ,GAYsB,eAZtB,CAAA,CAAA,IAAA,EAcV,oBAdU,CAcW,OAdX,CAAA,GAcsB,kBAdtB,CAcyC,OAdzC,CAAA,CAAA,EAef,cAfe,CAeA,OAfA,EAeS,WAfT,CAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { HydrationBoundary, QueryClientProvider } from "@tanstack/react-query";
|
|
2
|
+
import { getTransformer } from "@trpc/client/unstable-internals";
|
|
3
|
+
import { createReactDecoration, createReactQueryUtils, createRootHooks, getQueryClient } from "@trpc/react-query/shared";
|
|
4
|
+
import React, { useMemo, useState } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { createFlatProxy } from "@trpc/server/unstable-core-do-not-import";
|
|
7
|
+
|
|
8
|
+
//#region src/withTRPC.tsx
|
|
9
|
+
function withTRPC(opts) {
|
|
10
|
+
const { config: getClientConfig } = opts;
|
|
11
|
+
const transformer = getTransformer(opts.transformer);
|
|
12
|
+
return (AppOrPage) => {
|
|
13
|
+
const trpc = createRootHooks(opts);
|
|
14
|
+
const WithTRPC = (props) => {
|
|
15
|
+
const [prepassProps] = useState(() => {
|
|
16
|
+
if (props.trpc) return props.trpc;
|
|
17
|
+
const config = getClientConfig({});
|
|
18
|
+
const queryClient$1 = getQueryClient(config);
|
|
19
|
+
const trpcClient$1 = trpc.createClient(config);
|
|
20
|
+
return {
|
|
21
|
+
abortOnUnmount: config.abortOnUnmount,
|
|
22
|
+
queryClient: queryClient$1,
|
|
23
|
+
trpcClient: trpcClient$1,
|
|
24
|
+
ssrState: opts.ssr ? "mounting" : false,
|
|
25
|
+
ssrContext: null
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
const { queryClient, trpcClient, ssrState, ssrContext } = prepassProps;
|
|
29
|
+
const trpcState = props.pageProps?.trpcState;
|
|
30
|
+
const hydratedState = React.useMemo(() => {
|
|
31
|
+
if (!trpcState) return trpcState;
|
|
32
|
+
return transformer.input.deserialize(trpcState);
|
|
33
|
+
}, [trpcState]);
|
|
34
|
+
return /* @__PURE__ */ jsx(trpc.Provider, {
|
|
35
|
+
abortOnUnmount: prepassProps.abortOnUnmount ?? false,
|
|
36
|
+
client: trpcClient,
|
|
37
|
+
queryClient,
|
|
38
|
+
ssrState,
|
|
39
|
+
ssrContext,
|
|
40
|
+
children: /* @__PURE__ */ jsx(QueryClientProvider, {
|
|
41
|
+
client: queryClient,
|
|
42
|
+
children: /* @__PURE__ */ jsx(HydrationBoundary, {
|
|
43
|
+
state: hydratedState,
|
|
44
|
+
children: /* @__PURE__ */ jsx(AppOrPage, { ...props })
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
if (opts.ssr) opts.ssrPrepass({
|
|
50
|
+
parent: opts,
|
|
51
|
+
AppOrPage,
|
|
52
|
+
WithTRPC
|
|
53
|
+
});
|
|
54
|
+
else if (AppOrPage.getInitialProps) WithTRPC.getInitialProps = async (appOrPageCtx) => {
|
|
55
|
+
const isApp = !!appOrPageCtx.Component;
|
|
56
|
+
let pageProps = {};
|
|
57
|
+
const originalProps = await AppOrPage.getInitialProps(appOrPageCtx);
|
|
58
|
+
const originalPageProps = isApp ? originalProps.pageProps ?? {} : originalProps;
|
|
59
|
+
pageProps = {
|
|
60
|
+
...originalPageProps,
|
|
61
|
+
...pageProps
|
|
62
|
+
};
|
|
63
|
+
const getAppTreeProps = (props) => isApp ? { pageProps: props } : props;
|
|
64
|
+
return getAppTreeProps(pageProps);
|
|
65
|
+
};
|
|
66
|
+
const displayName = AppOrPage.displayName ?? AppOrPage.name ?? "Component";
|
|
67
|
+
WithTRPC.displayName = `withTRPC(${displayName})`;
|
|
68
|
+
return WithTRPC;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/createTRPCNext.tsx
|
|
74
|
+
function createTRPCNext(opts) {
|
|
75
|
+
const hooks = createRootHooks(opts);
|
|
76
|
+
const _withTRPC = withTRPC(opts);
|
|
77
|
+
const proxy = createReactDecoration(hooks);
|
|
78
|
+
return createFlatProxy((key) => {
|
|
79
|
+
if (key === "useContext" || key === "useUtils") return () => {
|
|
80
|
+
const context = hooks.useUtils();
|
|
81
|
+
return useMemo(() => {
|
|
82
|
+
return createReactQueryUtils(context);
|
|
83
|
+
}, [context]);
|
|
84
|
+
};
|
|
85
|
+
if (key === "useQueries") return hooks.useQueries;
|
|
86
|
+
if (key === "useSuspenseQueries") return hooks.useSuspenseQueries;
|
|
87
|
+
if (key === "withTRPC") return _withTRPC;
|
|
88
|
+
return proxy[key];
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
export { createTRPCNext, withTRPC };
|
|
94
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>","AppOrPage: NextComponentType<any, any, any>","props: AppPropsType<NextRouter, any> & {\n trpc?: $PrepassProps;\n }","queryClient","trpcClient","hydratedState: DehydratedState | undefined","appOrPageCtx: AppContextType","pageProps: Dict<unknown>","props: Dict<unknown>","opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>"],"sources":["../src/withTRPC.tsx","../src/createTRPCNext.tsx"],"sourcesContent":["/**\n * Heavily based on urql's ssr\n * https://github.com/FormidableLabs/urql/blob/main/packages/next-urql/src/with-urql-client.ts\n */\nimport type { DehydratedState, QueryClient } from '@tanstack/react-query';\nimport { HydrationBoundary, QueryClientProvider } from '@tanstack/react-query';\nimport type {\n CreateTRPCClientOptions,\n TRPCClient,\n TRPCClientError,\n TRPCUntypedClient,\n} from '@trpc/client';\nimport type { CoercedTransformerParameters } from '@trpc/client/unstable-internals';\nimport {\n getTransformer,\n type TransformerOptions,\n} from '@trpc/client/unstable-internals';\nimport type {\n CreateTRPCReactOptions,\n CreateTRPCReactQueryClientConfig,\n} from '@trpc/react-query/shared';\nimport { createRootHooks, getQueryClient } from '@trpc/react-query/shared';\nimport type {\n AnyRouter,\n Dict,\n inferClientTypes,\n ResponseMeta,\n} from '@trpc/server/unstable-core-do-not-import';\nimport type {\n AppContextType,\n AppPropsType,\n NextComponentType,\n NextPageContext,\n} from 'next/dist/shared/lib/utils';\nimport type { NextRouter } from 'next/router';\nimport React, { useState } from 'react';\n\nexport type WithTRPCConfig<TRouter extends AnyRouter> =\n CreateTRPCClientOptions<TRouter> &\n CreateTRPCReactQueryClientConfig & {\n abortOnUnmount?: boolean;\n };\n\ntype WithTRPCOptions<TRouter extends AnyRouter> =\n CreateTRPCReactOptions<TRouter> & {\n config: (info: { ctx?: NextPageContext }) => WithTRPCConfig<TRouter>;\n } & TransformerOptions<inferClientTypes<TRouter>>;\n\nexport type TRPCPrepassHelper = (opts: {\n parent: WithTRPCSSROptions<AnyRouter>;\n WithTRPC: NextComponentType<any, any, any>;\n AppOrPage: NextComponentType<any, any, any>;\n}) => void;\nexport type WithTRPCSSROptions<TRouter extends AnyRouter> =\n WithTRPCOptions<TRouter> & {\n /**\n * If you enable this, you also need to add a `ssrPrepass`-prop\n * @see https://trpc.io/docs/client/nextjs/ssr\n */\n ssr:\n | true\n | ((opts: { ctx: NextPageContext }) => boolean | Promise<boolean>);\n responseMeta?: (opts: {\n ctx: NextPageContext;\n clientErrors: TRPCClientError<TRouter>[];\n }) => ResponseMeta;\n /**\n * use `import { ssrPrepass } from '@trpc/next/ssrPrepass'`\n * @see https://trpc.io/docs/client/nextjs/ssr\n */\n ssrPrepass: TRPCPrepassHelper;\n };\n\nexport type WithTRPCNoSSROptions<TRouter extends AnyRouter> =\n WithTRPCOptions<TRouter> & {\n ssr?: false;\n };\n\nexport type TRPCPrepassProps<\n TRouter extends AnyRouter,\n TSSRContext extends NextPageContext = NextPageContext,\n> = {\n config: WithTRPCConfig<TRouter>;\n queryClient: QueryClient;\n trpcClient: TRPCUntypedClient<TRouter> | TRPCClient<TRouter>;\n ssrState: 'prepass';\n ssrContext: TSSRContext;\n};\n\nexport function withTRPC<\n TRouter extends AnyRouter,\n TSSRContext extends NextPageContext = NextPageContext,\n>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>) {\n const { config: getClientConfig } = opts;\n const transformer = getTransformer(\n (opts as CoercedTransformerParameters).transformer,\n );\n\n type $PrepassProps = TRPCPrepassProps<TRouter, TSSRContext>;\n return (AppOrPage: NextComponentType<any, any, any>): NextComponentType => {\n const trpc = createRootHooks<TRouter, TSSRContext>(opts);\n\n const WithTRPC = (\n props: AppPropsType<NextRouter, any> & {\n trpc?: $PrepassProps;\n },\n ) => {\n const [prepassProps] = useState(() => {\n if (props.trpc) {\n return props.trpc;\n }\n\n const config = getClientConfig({});\n const queryClient = getQueryClient(config);\n const trpcClient = trpc.createClient(config);\n\n return {\n abortOnUnmount: config.abortOnUnmount,\n queryClient,\n trpcClient,\n ssrState: opts.ssr ? ('mounting' as const) : (false as const),\n ssrContext: null,\n };\n });\n\n const { queryClient, trpcClient, ssrState, ssrContext } = prepassProps;\n\n // allow normal components to be wrapped, not just app/pages\n const trpcState = props.pageProps?.trpcState;\n\n const hydratedState: DehydratedState | undefined = React.useMemo(() => {\n if (!trpcState) {\n return trpcState;\n }\n\n return transformer.input.deserialize(trpcState);\n }, [trpcState]);\n\n return (\n <trpc.Provider\n abortOnUnmount={(prepassProps as any).abortOnUnmount ?? false}\n client={trpcClient}\n queryClient={queryClient}\n ssrState={ssrState}\n ssrContext={ssrContext}\n >\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={hydratedState}>\n <AppOrPage {...props} />\n </HydrationBoundary>\n </QueryClientProvider>\n </trpc.Provider>\n );\n };\n\n if (opts.ssr) {\n opts.ssrPrepass({\n parent: opts,\n AppOrPage,\n WithTRPC,\n });\n } else if (AppOrPage.getInitialProps) {\n // Allow combining `getServerSideProps` and `getInitialProps`\n\n WithTRPC.getInitialProps = async (appOrPageCtx: AppContextType) => {\n // Determine if we are wrapping an App component or a Page component.\n const isApp = !!appOrPageCtx.Component;\n\n // Run the wrapped component's getInitialProps function.\n let pageProps: Dict<unknown> = {};\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const originalProps = await AppOrPage.getInitialProps!(\n appOrPageCtx as any,\n );\n const originalPageProps = isApp\n ? (originalProps.pageProps ?? {})\n : originalProps;\n\n pageProps = {\n ...originalPageProps,\n ...pageProps,\n };\n const getAppTreeProps = (props: Dict<unknown>) =>\n isApp ? { pageProps: props } : props;\n\n return getAppTreeProps(pageProps);\n };\n }\n\n const displayName = AppOrPage.displayName ?? AppOrPage.name ?? 'Component';\n WithTRPC.displayName = `withTRPC(${displayName})`;\n\n return WithTRPC as any;\n };\n}\n","/* istanbul ignore file -- @preserve */\n// We're testing this through E2E-testing\nimport type {\n CreateReactUtils,\n DecorateRouterRecord,\n TRPCUseQueries,\n TRPCUseSuspenseQueries,\n} from '@trpc/react-query/shared';\nimport {\n createReactDecoration,\n createReactQueryUtils,\n createRootHooks,\n} from '@trpc/react-query/shared';\nimport type {\n AnyRouter,\n ProtectedIntersection,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { createFlatProxy } from '@trpc/server/unstable-core-do-not-import';\nimport type { NextPageContext } from 'next/types';\nimport { useMemo } from 'react';\nimport type { WithTRPCNoSSROptions, WithTRPCSSROptions } from './withTRPC';\nimport { withTRPC } from './withTRPC';\n\n/**\n * @internal\n */\nexport interface CreateTRPCNextBase<\n TRouter extends AnyRouter,\n TSSRContext extends NextPageContext,\n> {\n /**\n * @deprecated renamed to `useUtils` and will be removed in a future tRPC version\n *\n * @see https://trpc.io/docs/v11/client/react/useUtils\n */\n useContext(): CreateReactUtils<TRouter, TSSRContext>;\n /**\n * @see https://trpc.io/docs/v11/client/react/useUtils\n */\n useUtils(): CreateReactUtils<TRouter, TSSRContext>;\n withTRPC: ReturnType<typeof withTRPC<TRouter, TSSRContext>>;\n useQueries: TRPCUseQueries<TRouter>;\n useSuspenseQueries: TRPCUseSuspenseQueries<TRouter>;\n}\n\n/**\n * @internal\n */\nexport type CreateTRPCNext<\n TRouter extends AnyRouter,\n TSSRContext extends NextPageContext,\n> = ProtectedIntersection<\n CreateTRPCNextBase<TRouter, TSSRContext>,\n DecorateRouterRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n>;\n\nexport function createTRPCNext<\n TRouter extends AnyRouter,\n TSSRContext extends NextPageContext = NextPageContext,\n>(\n opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>,\n): CreateTRPCNext<TRouter, TSSRContext> {\n const hooks = createRootHooks<TRouter, TSSRContext>(opts);\n\n // TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`\n const _withTRPC = withTRPC(opts);\n\n const proxy = createReactDecoration(hooks) as DecorateRouterRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >;\n\n return createFlatProxy((key) => {\n if (key === 'useContext' || key === 'useUtils') {\n return () => {\n const context = hooks.useUtils();\n // create a stable reference of the utils context\n return useMemo(() => {\n return (createReactQueryUtils as any)(context);\n }, [context]);\n };\n }\n\n if (key === 'useQueries') {\n return hooks.useQueries;\n }\n\n if (key === 'useSuspenseQueries') {\n return hooks.useSuspenseQueries;\n }\n\n if (key === 'withTRPC') {\n return _withTRPC;\n }\n\n return proxy[key];\n });\n}\n"],"mappings":";;;;;;;;AAyFA,SAAgB,SAGdA,MAAmE;CACnE,MAAM,EAAE,QAAQ,iBAAiB,GAAG;CACpC,MAAM,cAAc,eACjB,KAAsC,YACxC;AAGD,QAAO,CAACC,cAAmE;EACzE,MAAM,OAAO,gBAAsC,KAAK;EAExD,MAAM,WAAW,CACfC,UAGG;GACH,MAAM,CAAC,aAAa,GAAG,SAAS,MAAM;AACpC,QAAI,MAAM,KACR,QAAO,MAAM;IAGf,MAAM,SAAS,gBAAgB,CAAE,EAAC;IAClC,MAAMC,gBAAc,eAAe,OAAO;IAC1C,MAAMC,eAAa,KAAK,aAAa,OAAO;AAE5C,WAAO;KACL,gBAAgB,OAAO;KACvB;KACA;KACA,UAAU,KAAK,MAAO,aAAwB;KAC9C,YAAY;IACb;GACF,EAAC;GAEF,MAAM,EAAE,aAAa,YAAY,UAAU,YAAY,GAAG;GAG1D,MAAM,YAAY,MAAM,WAAW;GAEnC,MAAMC,gBAA6C,MAAM,QAAQ,MAAM;AACrE,SAAK,UACH,QAAO;AAGT,WAAO,YAAY,MAAM,YAAY,UAAU;GAChD,GAAE,CAAC,SAAU,EAAC;AAEf,0BACE,IAAC,KAAK;IACJ,gBAAiB,aAAqB,kBAAkB;IACxD,QAAQ;IACK;IACH;IACE;8BAEZ,IAAC;KAAoB,QAAQ;+BAC3B,IAAC;MAAkB,OAAO;gCACxB,IAAC,aAAU,GAAI,QAAS;OACN;MACA;KACR;EAEnB;AAED,MAAI,KAAK,IACP,MAAK,WAAW;GACd,QAAQ;GACR;GACA;EACD,EAAC;WACO,UAAU,gBAGnB,UAAS,kBAAkB,OAAOC,iBAAiC;GAEjE,MAAM,UAAU,aAAa;GAG7B,IAAIC,YAA2B,CAAE;GAEjC,MAAM,gBAAgB,MAAM,UAAU,gBACpC,aACD;GACD,MAAM,oBAAoB,QACrB,cAAc,aAAa,CAAE,IAC9B;AAEJ,eAAY;IACV,GAAG;IACH,GAAG;GACJ;GACD,MAAM,kBAAkB,CAACC,UACvB,QAAQ,EAAE,WAAW,MAAO,IAAG;AAEjC,UAAO,gBAAgB,UAAU;EAClC;EAGH,MAAM,cAAc,UAAU,eAAe,UAAU,QAAQ;AAC/D,WAAS,eAAe,WAAW,YAAY;AAE/C,SAAO;CACR;AACF;;;;ACvID,SAAgB,eAIdC,MACsC;CACtC,MAAM,QAAQ,gBAAsC,KAAK;CAGzD,MAAM,YAAY,SAAS,KAAK;CAEhC,MAAM,QAAQ,sBAAsB,MAAM;AAK1C,QAAO,gBAAgB,CAAC,QAAQ;AAC9B,MAAI,QAAQ,gBAAgB,QAAQ,WAClC,QAAO,MAAM;GACX,MAAM,UAAU,MAAM,UAAU;AAEhC,UAAO,QAAQ,MAAM;AACnB,WAAO,AAAC,sBAA8B,QAAQ;GAC/C,GAAE,CAAC,OAAQ,EAAC;EACd;AAGH,MAAI,QAAQ,aACV,QAAO,MAAM;AAGf,MAAI,QAAQ,qBACV,QAAO,MAAM;AAGf,MAAI,QAAQ,WACV,QAAO;AAGT,SAAO,MAAM;CACd,EAAC;AACH"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { AnyClientTypes, AnyProcedure, AnyRootTypes, AnyRouter, ErrorHandlerOptions, MaybePromise, ProcedureType, ProtectedIntersection, RootConfig, RouterRecord, Simplify, TRPCResponse, inferClientTypes, inferProcedureInput, inferTransformedProcedureOutput } from "@trpc/server/unstable-core-do-not-import";
|
|
2
|
+
import { CreateTRPCClientOptions, Resolver, TRPCClient, TRPCUntypedClient } from "@trpc/client";
|
|
3
|
+
import { CreateContextCallback, inferProcedureOutput } from "@trpc/server";
|
|
4
|
+
|
|
5
|
+
//#region src/app-dir/shared.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
interface CreateTRPCNextAppRouterOptions<TRouter extends AnyRouter> {
|
|
11
|
+
config: () => CreateTRPCClientOptions<TRouter>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
interface ActionHandlerDef {
|
|
21
|
+
input?: any;
|
|
22
|
+
output?: any;
|
|
23
|
+
errorShape: any;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
type inferActionDef<TRoot extends AnyClientTypes, TProc extends AnyProcedure> = {
|
|
29
|
+
input: inferProcedureInput<TProc>;
|
|
30
|
+
output: inferProcedureOutput<TProc>;
|
|
31
|
+
errorShape: TRoot['errorShape'];
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/app-dir/types.d.ts
|
|
35
|
+
type ResolverDef = {
|
|
36
|
+
input: any;
|
|
37
|
+
output: any;
|
|
38
|
+
transformer: boolean;
|
|
39
|
+
errorShape: any;
|
|
40
|
+
};
|
|
41
|
+
type DecorateProcedureServer<TType extends ProcedureType, TDef extends ResolverDef> = TType extends 'query' ? {
|
|
42
|
+
query: Resolver<TDef>;
|
|
43
|
+
revalidate: (input?: TDef['input']) => Promise<{
|
|
44
|
+
revalidated: false;
|
|
45
|
+
error: string;
|
|
46
|
+
} | {
|
|
47
|
+
revalidated: true;
|
|
48
|
+
}>;
|
|
49
|
+
} : TType extends 'mutation' ? {
|
|
50
|
+
mutate: Resolver<TDef>;
|
|
51
|
+
} : TType extends 'subscription' ? {
|
|
52
|
+
subscribe: Resolver<TDef>;
|
|
53
|
+
} : never;
|
|
54
|
+
type NextAppDirDecorateRouterRecord<TRoot extends AnyRootTypes, TRecord extends RouterRecord> = { [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value ? $Value extends AnyProcedure ? DecorateProcedureServer<$Value['_def']['type'], {
|
|
55
|
+
input: inferProcedureInput<$Value>;
|
|
56
|
+
output: inferTransformedProcedureOutput<TRoot, $Value>;
|
|
57
|
+
errorShape: TRoot['errorShape'];
|
|
58
|
+
transformer: TRoot['transformer'];
|
|
59
|
+
}> : $Value extends RouterRecord ? NextAppDirDecorateRouterRecord<TRoot, $Value> : never : never };
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/app-dir/server.d.ts
|
|
62
|
+
declare function experimental_createTRPCNextAppDirServer<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): NextAppDirDecorateRouterRecord<TRouter["_def"]["_config"]["$types"], TRouter["_def"]["record"]>;
|
|
63
|
+
/**
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
type TRPCActionHandler<TDef extends ActionHandlerDef> = (input: FormData | TDef['input']) => Promise<TRPCResponse<TDef['output'], TDef['errorShape']>>;
|
|
67
|
+
declare function experimental_createServerActionHandler<TInstance extends {
|
|
68
|
+
_config: RootConfig<AnyRootTypes>;
|
|
69
|
+
}>(t: TInstance, opts: CreateContextCallback<TInstance['_config']['$types']['ctx'], () => MaybePromise<TInstance['_config']['$types']['ctx']>> & {
|
|
70
|
+
/**
|
|
71
|
+
* Transform form data to a `Record` before passing it to the procedure
|
|
72
|
+
* @default true
|
|
73
|
+
*/
|
|
74
|
+
normalizeFormData?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Called when an error occurs in the handler
|
|
77
|
+
*/
|
|
78
|
+
onError?: (opts: ErrorHandlerOptions<TInstance['_config']['$types']['ctx']>) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Rethrow errors that should be handled by Next.js
|
|
81
|
+
* @default true
|
|
82
|
+
*/
|
|
83
|
+
rethrowNextErrors?: boolean;
|
|
84
|
+
}): <TProc extends AnyProcedure>(proc: TProc) => TRPCActionHandler<Simplify<inferActionDef<inferClientTypes<TInstance>, TProc>>>;
|
|
85
|
+
declare function experimental_revalidateEndpoint(req: Request): Promise<Response>;
|
|
86
|
+
//# sourceMappingURL=server.d.ts.map
|
|
87
|
+
|
|
88
|
+
//#endregion
|
|
89
|
+
export { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler, experimental_createServerActionHandler, experimental_createTRPCNextAppDirServer, experimental_revalidateEndpoint };
|
|
90
|
+
//# sourceMappingURL=server.d-BXv5jwlB.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d-BXv5jwlB.d.mts","names":[],"sources":["../src/app-dir/shared.ts","../src/app-dir/types.ts","../src/app-dir/server.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { CreateTRPCClientOptions, Resolver, TRPCClient, TRPCUntypedClient } from "@trpc/client";
|
|
2
|
+
import { AnyClientTypes, AnyProcedure, AnyRootTypes, AnyRouter, ErrorHandlerOptions, MaybePromise, ProcedureType, ProtectedIntersection, RootConfig, RouterRecord, Simplify, TRPCResponse, inferClientTypes, inferProcedureInput, inferTransformedProcedureOutput } from "@trpc/server/unstable-core-do-not-import";
|
|
3
|
+
import { CreateContextCallback, inferProcedureOutput } from "@trpc/server";
|
|
4
|
+
|
|
5
|
+
//#region src/app-dir/shared.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
interface CreateTRPCNextAppRouterOptions<TRouter extends AnyRouter> {
|
|
11
|
+
config: () => CreateTRPCClientOptions<TRouter>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
interface ActionHandlerDef {
|
|
21
|
+
input?: any;
|
|
22
|
+
output?: any;
|
|
23
|
+
errorShape: any;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
type inferActionDef<TRoot extends AnyClientTypes, TProc extends AnyProcedure> = {
|
|
29
|
+
input: inferProcedureInput<TProc>;
|
|
30
|
+
output: inferProcedureOutput<TProc>;
|
|
31
|
+
errorShape: TRoot['errorShape'];
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/app-dir/types.d.ts
|
|
35
|
+
type ResolverDef = {
|
|
36
|
+
input: any;
|
|
37
|
+
output: any;
|
|
38
|
+
transformer: boolean;
|
|
39
|
+
errorShape: any;
|
|
40
|
+
};
|
|
41
|
+
type DecorateProcedureServer<TType extends ProcedureType, TDef extends ResolverDef> = TType extends 'query' ? {
|
|
42
|
+
query: Resolver<TDef>;
|
|
43
|
+
revalidate: (input?: TDef['input']) => Promise<{
|
|
44
|
+
revalidated: false;
|
|
45
|
+
error: string;
|
|
46
|
+
} | {
|
|
47
|
+
revalidated: true;
|
|
48
|
+
}>;
|
|
49
|
+
} : TType extends 'mutation' ? {
|
|
50
|
+
mutate: Resolver<TDef>;
|
|
51
|
+
} : TType extends 'subscription' ? {
|
|
52
|
+
subscribe: Resolver<TDef>;
|
|
53
|
+
} : never;
|
|
54
|
+
type NextAppDirDecorateRouterRecord<TRoot extends AnyRootTypes, TRecord extends RouterRecord> = { [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value ? $Value extends AnyProcedure ? DecorateProcedureServer<$Value['_def']['type'], {
|
|
55
|
+
input: inferProcedureInput<$Value>;
|
|
56
|
+
output: inferTransformedProcedureOutput<TRoot, $Value>;
|
|
57
|
+
errorShape: TRoot['errorShape'];
|
|
58
|
+
transformer: TRoot['transformer'];
|
|
59
|
+
}> : $Value extends RouterRecord ? NextAppDirDecorateRouterRecord<TRoot, $Value> : never : never };
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/app-dir/server.d.ts
|
|
62
|
+
declare function experimental_createTRPCNextAppDirServer<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): NextAppDirDecorateRouterRecord<TRouter["_def"]["_config"]["$types"], TRouter["_def"]["record"]>;
|
|
63
|
+
/**
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
type TRPCActionHandler<TDef extends ActionHandlerDef> = (input: FormData | TDef['input']) => Promise<TRPCResponse<TDef['output'], TDef['errorShape']>>;
|
|
67
|
+
declare function experimental_createServerActionHandler<TInstance extends {
|
|
68
|
+
_config: RootConfig<AnyRootTypes>;
|
|
69
|
+
}>(t: TInstance, opts: CreateContextCallback<TInstance['_config']['$types']['ctx'], () => MaybePromise<TInstance['_config']['$types']['ctx']>> & {
|
|
70
|
+
/**
|
|
71
|
+
* Transform form data to a `Record` before passing it to the procedure
|
|
72
|
+
* @default true
|
|
73
|
+
*/
|
|
74
|
+
normalizeFormData?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Called when an error occurs in the handler
|
|
77
|
+
*/
|
|
78
|
+
onError?: (opts: ErrorHandlerOptions<TInstance['_config']['$types']['ctx']>) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Rethrow errors that should be handled by Next.js
|
|
81
|
+
* @default true
|
|
82
|
+
*/
|
|
83
|
+
rethrowNextErrors?: boolean;
|
|
84
|
+
}): <TProc extends AnyProcedure>(proc: TProc) => TRPCActionHandler<Simplify<inferActionDef<inferClientTypes<TInstance>, TProc>>>;
|
|
85
|
+
declare function experimental_revalidateEndpoint(req: Request): Promise<Response>;
|
|
86
|
+
//# sourceMappingURL=server.d.ts.map
|
|
87
|
+
|
|
88
|
+
//#endregion
|
|
89
|
+
export { ActionHandlerDef, CreateTRPCNextAppRouterOptions, TRPCActionHandler, experimental_createServerActionHandler, experimental_createTRPCNextAppDirServer, experimental_revalidateEndpoint };
|
|
90
|
+
//# sourceMappingURL=server.d-DLnegS7F.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d-DLnegS7F.d.cts","names":[],"sources":["../src/app-dir/shared.ts","../src/app-dir/types.ts","../src/app-dir/server.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
3
|
+
const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
|
|
4
|
+
|
|
5
|
+
//#region src/app-dir/shared.ts
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
function generateCacheTag(procedurePath, input) {
|
|
10
|
+
return input ? `${procedurePath}?input=${JSON.stringify(input)}` : procedurePath;
|
|
11
|
+
}
|
|
12
|
+
function isFormData(value) {
|
|
13
|
+
if (typeof FormData === "undefined") return false;
|
|
14
|
+
return value instanceof FormData;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
Object.defineProperty(exports, 'generateCacheTag', {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return generateCacheTag;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, 'isFormData', {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return isFormData;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createRecursiveProxy } from "@trpc/server/unstable-core-do-not-import";
|
|
2
|
+
import { TRPCUntypedClient } from "@trpc/client";
|
|
3
|
+
|
|
4
|
+
//#region src/app-dir/shared.ts
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
function generateCacheTag(procedurePath, input) {
|
|
9
|
+
return input ? `${procedurePath}?input=${JSON.stringify(input)}` : procedurePath;
|
|
10
|
+
}
|
|
11
|
+
function isFormData(value) {
|
|
12
|
+
if (typeof FormData === "undefined") return false;
|
|
13
|
+
return value instanceof FormData;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { generateCacheTag, isFormData };
|
|
18
|
+
//# sourceMappingURL=shared-FEQznZ-6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-FEQznZ-6.mjs","names":["procedurePath: string","input: any","value: unknown"],"sources":["../src/app-dir/shared.ts"],"sourcesContent":["import type {\n CreateTRPCClientOptions,\n Resolver,\n TRPCClient,\n} from '@trpc/client';\nimport { getUntypedClient, TRPCUntypedClient } from '@trpc/client';\nimport type { inferProcedureOutput } from '@trpc/server';\nimport type {\n AnyClientTypes,\n AnyProcedure,\n AnyQueryProcedure,\n AnyRootTypes,\n AnyRouter,\n inferProcedureInput,\n inferTransformedProcedureOutput,\n ProtectedIntersection,\n RouterRecord,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { createRecursiveProxy } from '@trpc/server/unstable-core-do-not-import';\n\n/**\n * @internal\n */\nexport type UseProcedureRecord<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = {\n [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n ? $Value extends AnyQueryProcedure\n ? Resolver<{\n input: inferProcedureInput<$Value>;\n output: inferTransformedProcedureOutput<TRoot, $Value>;\n errorShape: TRoot['errorShape'];\n transformer: TRoot['transformer'];\n }>\n : $Value extends RouterRecord\n ? UseProcedureRecord<TRoot, $Value>\n : never\n : never;\n};\n\nexport function createUseProxy<TRouter extends AnyRouter>(\n client: TRPCUntypedClient<TRouter> | TRPCClient<TRouter>,\n) {\n const untypedClient: TRPCUntypedClient<TRouter> =\n client instanceof TRPCUntypedClient ? client : getUntypedClient(client);\n\n return createRecursiveProxy<\n UseProcedureRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n >((opts) => {\n const path = opts.path.join('.');\n\n return untypedClient.query(path, ...opts.args);\n });\n}\n\ntype NextAppRouterUse<TRouter extends AnyRouter> = {\n <TData extends Promise<unknown>[]>(\n cb: (\n t: UseProcedureRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >,\n ) => [...TData],\n ): {\n [TKey in keyof TData]: Awaited<TData[TKey]>;\n };\n <TData extends Promise<unknown>>(\n cb: (\n t: UseProcedureRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >,\n ) => TData,\n ): Awaited<TData>;\n};\ntype CreateTRPCNextAppRouterBase<TRouter extends AnyRouter> = {\n use: NextAppRouterUse<TRouter>;\n};\nexport type CreateTRPCNextAppRouter<TRouter extends AnyRouter> =\n ProtectedIntersection<\n CreateTRPCNextAppRouterBase<TRouter>,\n UseProcedureRecord<\n TRouter['_def']['_config']['$types'],\n TRouter['_def']['record']\n >\n >;\n\n/**\n * @internal\n */\nexport interface CreateTRPCNextAppRouterOptions<TRouter extends AnyRouter> {\n config: () => CreateTRPCClientOptions<TRouter>;\n}\n\n/**\n * @internal\n */\nexport function generateCacheTag(procedurePath: string, input: any) {\n return input\n ? `${procedurePath}?input=${JSON.stringify(input)}`\n : procedurePath;\n}\n\nexport function isFormData(value: unknown): value is FormData {\n if (typeof FormData === 'undefined') {\n // FormData is not supported\n return false;\n }\n return value instanceof FormData;\n}\n\n/**\n * @internal\n */\nexport interface ActionHandlerDef {\n input?: any;\n output?: any;\n errorShape: any;\n}\n\n// ts-prune-ignore-next\n/**\n * @internal\n */\nexport type inferActionDef<\n TRoot extends AnyClientTypes,\n TProc extends AnyProcedure,\n> = {\n input: inferProcedureInput<TProc>;\n output: inferProcedureOutput<TProc>;\n errorShape: TRoot['errorShape'];\n};\n"],"mappings":";;;;;;;AAqGA,SAAgB,iBAAiBA,eAAuBC,OAAY;AAClE,QAAO,SACF,EAAE,cAAc,SAAS,KAAK,UAAU,MAAM,CAAC,IAChD;AACL;AAED,SAAgB,WAAWC,OAAmC;AAC5D,YAAW,aAAa,YAEtB,QAAO;AAET,QAAO,iBAAiB;AACzB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const __tanstack_react_query = require_chunk.__toESM(require("@tanstack/react-query"));
|
|
3
|
+
const __trpc_client_unstable_internals = require_chunk.__toESM(require("@trpc/client/unstable-internals"));
|
|
4
|
+
const __trpc_react_query_shared = require_chunk.__toESM(require("@trpc/react-query/shared"));
|
|
5
|
+
const react = require_chunk.__toESM(require("react"));
|
|
6
|
+
const __trpc_client = require_chunk.__toESM(require("@trpc/client"));
|
|
7
|
+
|
|
8
|
+
//#region src/ssrPrepass.ts
|
|
9
|
+
function transformQueryOrMutationCacheErrors(result) {
|
|
10
|
+
const error = result.state.error;
|
|
11
|
+
if (error instanceof Error && error.name === "TRPCClientError") {
|
|
12
|
+
const newError = {
|
|
13
|
+
message: error.message,
|
|
14
|
+
data: error.data,
|
|
15
|
+
shape: error.shape
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
...result,
|
|
19
|
+
state: {
|
|
20
|
+
...result.state,
|
|
21
|
+
error: newError
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
const ssrPrepass = (opts) => {
|
|
28
|
+
const { parent, WithTRPC, AppOrPage } = opts;
|
|
29
|
+
const transformer = (0, __trpc_client_unstable_internals.getTransformer)(parent.transformer);
|
|
30
|
+
WithTRPC.getInitialProps = async (appOrPageCtx) => {
|
|
31
|
+
const shouldSsr = async () => {
|
|
32
|
+
if (typeof window !== "undefined") return false;
|
|
33
|
+
if (typeof parent.ssr === "function") try {
|
|
34
|
+
return await parent.ssr({ ctx: appOrPageCtx.ctx });
|
|
35
|
+
} catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return parent.ssr;
|
|
39
|
+
};
|
|
40
|
+
const ssrEnabled = await shouldSsr();
|
|
41
|
+
const AppTree = appOrPageCtx.AppTree;
|
|
42
|
+
const isApp = !!appOrPageCtx.Component;
|
|
43
|
+
const ctx = isApp ? appOrPageCtx.ctx : appOrPageCtx;
|
|
44
|
+
let pageProps = {};
|
|
45
|
+
if (AppOrPage.getInitialProps) {
|
|
46
|
+
const originalProps = await AppOrPage.getInitialProps(appOrPageCtx);
|
|
47
|
+
const originalPageProps = isApp ? originalProps.pageProps ?? {} : originalProps;
|
|
48
|
+
pageProps = {
|
|
49
|
+
...originalPageProps,
|
|
50
|
+
...pageProps
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const getAppTreeProps = (props) => isApp ? { pageProps: props } : props;
|
|
54
|
+
if (typeof window !== "undefined" || !ssrEnabled) return getAppTreeProps(pageProps);
|
|
55
|
+
const config = parent.config({ ctx });
|
|
56
|
+
const trpcClient = (0, __trpc_client.createTRPCUntypedClient)(config);
|
|
57
|
+
const queryClient = (0, __trpc_react_query_shared.getQueryClient)(config);
|
|
58
|
+
const trpcProp = {
|
|
59
|
+
config,
|
|
60
|
+
trpcClient,
|
|
61
|
+
queryClient,
|
|
62
|
+
ssrState: "prepass",
|
|
63
|
+
ssrContext: ctx
|
|
64
|
+
};
|
|
65
|
+
const prepassProps = {
|
|
66
|
+
pageProps,
|
|
67
|
+
trpc: trpcProp
|
|
68
|
+
};
|
|
69
|
+
const reactDomServer = await import("react-dom/server");
|
|
70
|
+
while (true) {
|
|
71
|
+
reactDomServer.renderToString((0, react.createElement)(AppTree, prepassProps));
|
|
72
|
+
if (!queryClient.isFetching()) break;
|
|
73
|
+
await new Promise((resolve) => {
|
|
74
|
+
const unsub = queryClient.getQueryCache().subscribe((event) => {
|
|
75
|
+
if (event?.query.getObserversCount() === 0) {
|
|
76
|
+
resolve();
|
|
77
|
+
unsub();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const dehydratedCache = (0, __tanstack_react_query.dehydrate)(queryClient, { shouldDehydrateQuery(query) {
|
|
83
|
+
const isExcludedFromSSr = query.state.fetchStatus === "idle" && query.state.status === "pending";
|
|
84
|
+
return !isExcludedFromSSr;
|
|
85
|
+
} });
|
|
86
|
+
const dehydratedCacheWithErrors = {
|
|
87
|
+
...dehydratedCache,
|
|
88
|
+
queries: dehydratedCache.queries.map(transformQueryOrMutationCacheErrors),
|
|
89
|
+
mutations: dehydratedCache.mutations.map(transformQueryOrMutationCacheErrors)
|
|
90
|
+
};
|
|
91
|
+
pageProps["trpcState"] = transformer.input.serialize(dehydratedCacheWithErrors);
|
|
92
|
+
const appTreeProps = getAppTreeProps(pageProps);
|
|
93
|
+
const meta = parent.responseMeta?.({
|
|
94
|
+
ctx,
|
|
95
|
+
clientErrors: [...dehydratedCache.queries, ...dehydratedCache.mutations].map((v) => v.state.error).flatMap((err) => err instanceof Error && err.name === "TRPCClientError" ? [err] : [])
|
|
96
|
+
}) ?? {};
|
|
97
|
+
for (const [key, value] of Object.entries(meta.headers ?? {})) if (typeof value === "string") ctx.res?.setHeader(key, value);
|
|
98
|
+
if (meta.status && ctx.res) ctx.res.statusCode = meta.status;
|
|
99
|
+
return appTreeProps;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
//#endregion
|
|
104
|
+
exports.ssrPrepass = ssrPrepass;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TRPCPrepassHelper } from "./withTRPC.d-DctYN4Yz.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/ssrPrepass.d.ts
|
|
4
|
+
declare const ssrPrepass: TRPCPrepassHelper;
|
|
5
|
+
//# sourceMappingURL=ssrPrepass.d.ts.map
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { ssrPrepass };
|
|
9
|
+
//# sourceMappingURL=ssrPrepass.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssrPrepass.d.cts","names":[],"sources":["../src/ssrPrepass.ts"],"sourcesContent":[],"mappings":";;;cA8Ca,YAAY"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TRPCPrepassHelper } from "./withTRPC.d-BY6FsDWi.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/ssrPrepass.d.ts
|
|
4
|
+
declare const ssrPrepass: TRPCPrepassHelper;
|
|
5
|
+
//# sourceMappingURL=ssrPrepass.d.ts.map
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { ssrPrepass };
|
|
9
|
+
//# sourceMappingURL=ssrPrepass.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssrPrepass.d.mts","names":[],"sources":["../src/ssrPrepass.ts"],"sourcesContent":[],"mappings":";;;cA8Ca,YAAY"}
|