@trpc/next 11.0.0-next.91 → 11.0.0-rc.329
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/README.md +5 -5
- package/dist/app-dir/client.d.ts +3 -3
- package/dist/app-dir/client.d.ts.map +1 -1
- package/dist/app-dir/client.js +5 -105
- package/dist/app-dir/client.mjs +4 -102
- package/dist/app-dir/create-action-hook.d.ts +18 -6
- package/dist/app-dir/create-action-hook.d.ts.map +1 -1
- package/dist/app-dir/create-action-hook.js +108 -0
- package/dist/app-dir/create-action-hook.mjs +105 -0
- package/dist/app-dir/formDataToObject.js +34 -0
- package/dist/app-dir/formDataToObject.mjs +32 -0
- package/dist/app-dir/links/nextCache.d.ts +4 -3
- package/dist/app-dir/links/nextCache.d.ts.map +1 -1
- package/dist/app-dir/links/nextCache.js +9 -10
- package/dist/app-dir/links/nextCache.mjs +8 -7
- package/dist/app-dir/links/nextHttp.d.ts +11 -5
- package/dist/app-dir/links/nextHttp.d.ts.map +1 -1
- package/dist/app-dir/links/nextHttp.js +22 -23
- package/dist/app-dir/links/nextHttp.mjs +22 -21
- package/dist/app-dir/server.d.ts +19 -12
- package/dist/app-dir/server.d.ts.map +1 -1
- package/dist/app-dir/server.js +39 -55
- package/dist/app-dir/server.mjs +29 -43
- package/dist/app-dir/shared.d.ts +19 -13
- package/dist/app-dir/shared.d.ts.map +1 -1
- package/dist/{shared-e49b9cdc.js → app-dir/shared.js} +1 -1
- package/dist/{shared-f6996341.mjs → app-dir/shared.mjs} +2 -2
- package/dist/app-dir/types.d.ts +23 -11
- package/dist/app-dir/types.d.ts.map +1 -1
- package/dist/bundle-analysis.json +56 -44
- package/dist/createTRPCNext.d.ts +10 -8
- package/dist/createTRPCNext.d.ts.map +1 -1
- package/dist/createTRPCNext.js +38 -0
- package/dist/createTRPCNext.mjs +36 -0
- package/dist/index.js +4 -190
- package/dist/index.mjs +2 -185
- package/dist/ssrPrepass.d.ts +3 -0
- package/dist/ssrPrepass.d.ts.map +1 -0
- package/dist/ssrPrepass.js +139 -0
- package/dist/ssrPrepass.mjs +137 -0
- package/dist/withTRPC.d.ts +41 -13
- package/dist/withTRPC.d.ts.map +1 -1
- package/dist/withTRPC.js +86 -0
- package/dist/withTRPC.mjs +84 -0
- package/package.json +36 -25
- package/src/app-dir/client.ts +4 -4
- package/src/app-dir/create-action-hook.tsx +49 -19
- package/src/app-dir/links/nextCache.ts +20 -8
- package/src/app-dir/links/nextHttp.ts +50 -30
- package/src/app-dir/server.ts +86 -34
- package/src/app-dir/shared.ts +52 -25
- package/src/app-dir/types.ts +41 -29
- package/src/createTRPCNext.tsx +25 -16
- package/src/ssrPrepass.ts +185 -0
- package/src/withTRPC.tsx +102 -180
- package/ssrPrepass/index.d.ts +1 -0
- package/ssrPrepass/index.js +1 -0
- package/dist/shared-642894f4.js +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/app-dir/shared.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/app-dir/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '@trpc/server/
|
|
1
|
+
import '@trpc/server/unstable-core-do-not-import';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @internal
|
|
@@ -13,4 +13,4 @@ function isFormData(value) {
|
|
|
13
13
|
return value instanceof FormData;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export { generateCacheTag
|
|
16
|
+
export { generateCacheTag, isFormData };
|
package/dist/app-dir/types.d.ts
CHANGED
|
@@ -1,19 +1,31 @@
|
|
|
1
|
-
import { Resolver } from '@trpc/client';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { Resolver } from '@trpc/client';
|
|
2
|
+
import type { AnyProcedure, AnyRootTypes, inferProcedureInput, inferTransformedProcedureOutput, ProcedureType, RouterRecord } from '@trpc/server/unstable-core-do-not-import';
|
|
3
|
+
type ResolverDef = {
|
|
4
|
+
input: any;
|
|
5
|
+
output: any;
|
|
6
|
+
transformer: boolean;
|
|
7
|
+
errorShape: any;
|
|
8
|
+
};
|
|
9
|
+
export type DecorateProcedureServer<TType extends ProcedureType, TDef extends ResolverDef> = TType extends 'query' ? {
|
|
10
|
+
query: Resolver<TDef>;
|
|
11
|
+
revalidate: (input?: TDef['input']) => Promise<{
|
|
6
12
|
revalidated: false;
|
|
7
13
|
error: string;
|
|
8
14
|
} | {
|
|
9
15
|
revalidated: true;
|
|
10
16
|
}>;
|
|
11
|
-
} :
|
|
12
|
-
mutate: Resolver<
|
|
13
|
-
} :
|
|
14
|
-
subscribe: Resolver<
|
|
17
|
+
} : TType extends 'mutation' ? {
|
|
18
|
+
mutate: Resolver<TDef>;
|
|
19
|
+
} : TType extends 'subscription' ? {
|
|
20
|
+
subscribe: Resolver<TDef>;
|
|
15
21
|
} : never;
|
|
16
|
-
export type
|
|
17
|
-
[TKey in keyof
|
|
22
|
+
export type NextAppDirDecorateRouterRecord<TRoot extends AnyRootTypes, TRecord extends RouterRecord> = {
|
|
23
|
+
[TKey in keyof TRecord]: TRecord[TKey] extends infer $Value ? $Value extends RouterRecord ? NextAppDirDecorateRouterRecord<TRoot, $Value> : $Value extends AnyProcedure ? DecorateProcedureServer<$Value['_def']['type'], {
|
|
24
|
+
input: inferProcedureInput<$Value>;
|
|
25
|
+
output: inferTransformedProcedureOutput<TRoot, $Value>;
|
|
26
|
+
errorShape: TRoot['errorShape'];
|
|
27
|
+
transformer: TRoot['transformer'];
|
|
28
|
+
}> : never : never;
|
|
18
29
|
};
|
|
30
|
+
export {};
|
|
19
31
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app-dir/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app-dir/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,YAAY,EACb,MAAM,0CAA0C,CAAC;AAElD,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,KAAK,SAAS,aAAa,EAC3B,IAAI,SAAS,WAAW,IACtB,KAAK,SAAS,OAAO,GACrB;IACE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CACV,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAClB,OAAO,CACV;QAAE,WAAW,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,CAC9D,CAAC;CACH,GACD,KAAK,SAAS,UAAU,GACxB;IACE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACxB,GACD,KAAK,SAAS,cAAc,GAC5B;IACE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC3B,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,8BAA8B,CACxC,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,IAC1B;KACD,IAAI,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,GACvD,MAAM,SAAS,YAAY,GACzB,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,GAC7C,MAAM,SAAS,YAAY,GAC3B,uBAAuB,CACrB,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACtB;QACE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,EAAE,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;KACnC,CACF,GACD,KAAK,GACP,KAAK;CACV,CAAC"}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"bundleSize":
|
|
3
|
-
"bundleOrigSize":
|
|
4
|
-
"bundleReduction":
|
|
2
|
+
"bundleSize": 23547,
|
|
3
|
+
"bundleOrigSize": 38462,
|
|
4
|
+
"bundleReduction": 38.78,
|
|
5
5
|
"modules": [
|
|
6
6
|
{
|
|
7
|
-
"id": "/src/
|
|
8
|
-
"size":
|
|
9
|
-
"origSize":
|
|
7
|
+
"id": "/src/ssrPrepass.ts",
|
|
8
|
+
"size": 5062,
|
|
9
|
+
"origSize": 5853,
|
|
10
10
|
"renderedExports": [
|
|
11
|
-
"
|
|
11
|
+
"ssrPrepass"
|
|
12
12
|
],
|
|
13
13
|
"removedExports": [],
|
|
14
|
-
"dependents": [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
],
|
|
18
|
-
"percent": 32.84,
|
|
19
|
-
"reduction": 18.16
|
|
14
|
+
"dependents": [],
|
|
15
|
+
"percent": 21.5,
|
|
16
|
+
"reduction": 13.51
|
|
20
17
|
},
|
|
21
18
|
{
|
|
22
19
|
"id": "/src/app-dir/server.ts",
|
|
23
|
-
"size":
|
|
24
|
-
"origSize":
|
|
20
|
+
"size": 4333,
|
|
21
|
+
"origSize": 6110,
|
|
25
22
|
"renderedExports": [
|
|
26
23
|
"experimental_createTRPCNextAppDirServer",
|
|
27
24
|
"experimental_createServerActionHandler",
|
|
@@ -29,13 +26,28 @@
|
|
|
29
26
|
],
|
|
30
27
|
"removedExports": [],
|
|
31
28
|
"dependents": [],
|
|
32
|
-
"percent":
|
|
33
|
-
"reduction":
|
|
29
|
+
"percent": 18.4,
|
|
30
|
+
"reduction": 29.08
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "/src/withTRPC.tsx",
|
|
34
|
+
"size": 3448,
|
|
35
|
+
"origSize": 6138,
|
|
36
|
+
"renderedExports": [
|
|
37
|
+
"withTRPC"
|
|
38
|
+
],
|
|
39
|
+
"removedExports": [],
|
|
40
|
+
"dependents": [
|
|
41
|
+
"/src/index.ts",
|
|
42
|
+
"/src/createTRPCNext.tsx"
|
|
43
|
+
],
|
|
44
|
+
"percent": 14.64,
|
|
45
|
+
"reduction": 43.83
|
|
34
46
|
},
|
|
35
47
|
{
|
|
36
48
|
"id": "/src/app-dir/create-action-hook.tsx",
|
|
37
|
-
"size":
|
|
38
|
-
"origSize":
|
|
49
|
+
"size": 3436,
|
|
50
|
+
"origSize": 6779,
|
|
39
51
|
"renderedExports": [
|
|
40
52
|
"experimental_serverActionLink",
|
|
41
53
|
"experimental_createActionHook"
|
|
@@ -44,49 +56,49 @@
|
|
|
44
56
|
"dependents": [
|
|
45
57
|
"/src/app-dir/client.ts"
|
|
46
58
|
],
|
|
47
|
-
"percent":
|
|
48
|
-
"reduction":
|
|
59
|
+
"percent": 14.59,
|
|
60
|
+
"reduction": 49.31
|
|
49
61
|
},
|
|
50
62
|
{
|
|
51
63
|
"id": "/src/app-dir/links/nextCache.ts",
|
|
52
|
-
"size":
|
|
53
|
-
"origSize":
|
|
64
|
+
"size": 2571,
|
|
65
|
+
"origSize": 3044,
|
|
54
66
|
"renderedExports": [
|
|
55
67
|
"experimental_nextCacheLink"
|
|
56
68
|
],
|
|
57
69
|
"removedExports": [],
|
|
58
70
|
"dependents": [],
|
|
59
|
-
"percent":
|
|
60
|
-
"reduction":
|
|
71
|
+
"percent": 10.92,
|
|
72
|
+
"reduction": 15.54
|
|
61
73
|
},
|
|
62
74
|
{
|
|
63
75
|
"id": "/src/app-dir/client.ts",
|
|
64
|
-
"size":
|
|
65
|
-
"origSize":
|
|
76
|
+
"size": 1279,
|
|
77
|
+
"origSize": 1894,
|
|
66
78
|
"renderedExports": [
|
|
67
79
|
"experimental_createTRPCNextAppDirClient"
|
|
68
80
|
],
|
|
69
81
|
"removedExports": [],
|
|
70
82
|
"dependents": [],
|
|
71
|
-
"percent":
|
|
72
|
-
"reduction":
|
|
83
|
+
"percent": 5.43,
|
|
84
|
+
"reduction": 32.47
|
|
73
85
|
},
|
|
74
86
|
{
|
|
75
87
|
"id": "/src/app-dir/links/nextHttp.ts",
|
|
76
|
-
"size":
|
|
77
|
-
"origSize":
|
|
88
|
+
"size": 1192,
|
|
89
|
+
"origSize": 1973,
|
|
78
90
|
"renderedExports": [
|
|
79
91
|
"experimental_nextHttpLink"
|
|
80
92
|
],
|
|
81
93
|
"removedExports": [],
|
|
82
94
|
"dependents": [],
|
|
83
|
-
"percent": 5.
|
|
84
|
-
"reduction":
|
|
95
|
+
"percent": 5.06,
|
|
96
|
+
"reduction": 39.58
|
|
85
97
|
},
|
|
86
98
|
{
|
|
87
99
|
"id": "/src/createTRPCNext.tsx",
|
|
88
|
-
"size":
|
|
89
|
-
"origSize":
|
|
100
|
+
"size": 1073,
|
|
101
|
+
"origSize": 2651,
|
|
90
102
|
"renderedExports": [
|
|
91
103
|
"createTRPCNext"
|
|
92
104
|
],
|
|
@@ -94,8 +106,8 @@
|
|
|
94
106
|
"dependents": [
|
|
95
107
|
"/src/index.ts"
|
|
96
108
|
],
|
|
97
|
-
"percent": 4.
|
|
98
|
-
"reduction": 59.
|
|
109
|
+
"percent": 4.56,
|
|
110
|
+
"reduction": 59.52
|
|
99
111
|
},
|
|
100
112
|
{
|
|
101
113
|
"id": "/src/app-dir/formDataToObject.ts",
|
|
@@ -108,13 +120,13 @@
|
|
|
108
120
|
"dependents": [
|
|
109
121
|
"/src/app-dir/server.ts"
|
|
110
122
|
],
|
|
111
|
-
"percent": 3.
|
|
123
|
+
"percent": 3.47,
|
|
112
124
|
"reduction": 0.97
|
|
113
125
|
},
|
|
114
126
|
{
|
|
115
127
|
"id": "/src/app-dir/shared.ts",
|
|
116
128
|
"size": 335,
|
|
117
|
-
"origSize":
|
|
129
|
+
"origSize": 3132,
|
|
118
130
|
"renderedExports": [
|
|
119
131
|
"generateCacheTag",
|
|
120
132
|
"isFormData"
|
|
@@ -124,12 +136,12 @@
|
|
|
124
136
|
],
|
|
125
137
|
"dependents": [
|
|
126
138
|
"/src/app-dir/server.ts",
|
|
127
|
-
"/src/app-dir/create-action-hook.tsx",
|
|
128
139
|
"/src/app-dir/links/nextCache.ts",
|
|
129
|
-
"/src/app-dir/links/nextHttp.ts"
|
|
140
|
+
"/src/app-dir/links/nextHttp.ts",
|
|
141
|
+
"/src/app-dir/create-action-hook.tsx"
|
|
130
142
|
],
|
|
131
|
-
"percent": 1.
|
|
132
|
-
"reduction":
|
|
143
|
+
"percent": 1.42,
|
|
144
|
+
"reduction": 89.3
|
|
133
145
|
},
|
|
134
146
|
{
|
|
135
147
|
"id": "/src/index.ts",
|
|
@@ -142,5 +154,5 @@
|
|
|
142
154
|
"reduction": 100
|
|
143
155
|
}
|
|
144
156
|
],
|
|
145
|
-
"moduleCount":
|
|
157
|
+
"moduleCount": 11
|
|
146
158
|
}
|
package/dist/createTRPCNext.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { CreateReactUtils,
|
|
2
|
-
import { AnyRouter, ProtectedIntersection } from '@trpc/server';
|
|
3
|
-
import { NextPageContext } from 'next/types';
|
|
4
|
-
import {
|
|
1
|
+
import type { CreateReactUtils, DecorateRouterRecord, TRPCUseQueries, TRPCUseSuspenseQueries } from '@trpc/react-query/shared';
|
|
2
|
+
import type { AnyRouter, ProtectedIntersection } from '@trpc/server/unstable-core-do-not-import';
|
|
3
|
+
import type { NextPageContext } from 'next/types';
|
|
4
|
+
import type { WithTRPCNoSSROptions, WithTRPCSSROptions } from './withTRPC';
|
|
5
|
+
import { withTRPC } from './withTRPC';
|
|
5
6
|
/**
|
|
6
7
|
* @internal
|
|
7
8
|
*/
|
|
@@ -9,19 +10,20 @@ export interface CreateTRPCNextBase<TRouter extends AnyRouter, TSSRContext exten
|
|
|
9
10
|
/**
|
|
10
11
|
* @deprecated renamed to `useUtils` and will be removed in a future tRPC version
|
|
11
12
|
*
|
|
12
|
-
* @
|
|
13
|
+
* @link https://trpc.io/docs/v11/client/react/useUtils
|
|
13
14
|
*/
|
|
14
15
|
useContext(): CreateReactUtils<TRouter, TSSRContext>;
|
|
15
16
|
/**
|
|
16
|
-
* @
|
|
17
|
+
* @link https://trpc.io/docs/v11/client/react/useUtils
|
|
17
18
|
*/
|
|
18
19
|
useUtils(): CreateReactUtils<TRouter, TSSRContext>;
|
|
19
20
|
withTRPC: ReturnType<typeof withTRPC<TRouter, TSSRContext>>;
|
|
20
21
|
useQueries: TRPCUseQueries<TRouter>;
|
|
22
|
+
useSuspenseQueries: TRPCUseSuspenseQueries<TRouter>;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* @internal
|
|
24
26
|
*/
|
|
25
|
-
export type CreateTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext
|
|
26
|
-
export declare function createTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext
|
|
27
|
+
export type CreateTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext> = ProtectedIntersection<CreateTRPCNextBase<TRouter, TSSRContext>, DecorateRouterRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>>;
|
|
28
|
+
export declare function createTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): CreateTRPCNext<TRouter, TSSRContext>;
|
|
27
29
|
//# sourceMappingURL=createTRPCNext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTRPCNext.d.ts","sourceRoot":"","sources":["../src/createTRPCNext.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"createTRPCNext.d.ts","sourceRoot":"","sources":["../src/createTRPCNext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACtB,MAAM,0CAA0C,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe;IAEnC;;;;OAIG;IACH,UAAU,IAAI,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD;;OAEG;IACH,QAAQ,IAAI,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5D,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,kBAAkB,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe,IACjC,qBAAqB,CACvB,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,EACxC,oBAAoB,CAClB,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EACpC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAC1B,CACF,CAAC;AAEF,wBAAgB,cAAc,CAC5B,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe,GAAG,eAAe,EAErD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAChE,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CA+BtC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var shared = require('@trpc/react-query/shared');
|
|
4
|
+
var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var withTRPC = require('./withTRPC.js');
|
|
7
|
+
|
|
8
|
+
/* istanbul ignore file -- @preserve */ // We're testing this through E2E-testing
|
|
9
|
+
function createTRPCNext(opts) {
|
|
10
|
+
const hooks = shared.createRootHooks(opts);
|
|
11
|
+
// TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`
|
|
12
|
+
const _withTRPC = withTRPC.withTRPC(opts);
|
|
13
|
+
return unstableCoreDoNotImport.createFlatProxy((key)=>{
|
|
14
|
+
if (key === 'useContext' || key === 'useUtils') {
|
|
15
|
+
return ()=>{
|
|
16
|
+
const context = hooks.useUtils();
|
|
17
|
+
// create a stable reference of the utils context
|
|
18
|
+
return React.useMemo(()=>{
|
|
19
|
+
return shared.createReactQueryUtils(context);
|
|
20
|
+
}, [
|
|
21
|
+
context
|
|
22
|
+
]);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (key === 'useQueries') {
|
|
26
|
+
return hooks.useQueries;
|
|
27
|
+
}
|
|
28
|
+
if (key === 'useSuspenseQueries') {
|
|
29
|
+
return hooks.useSuspenseQueries;
|
|
30
|
+
}
|
|
31
|
+
if (key === 'withTRPC') {
|
|
32
|
+
return _withTRPC;
|
|
33
|
+
}
|
|
34
|
+
return shared.createReactDecoration(key, hooks);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.createTRPCNext = createTRPCNext;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createRootHooks, createReactQueryUtils, createReactDecoration } from '@trpc/react-query/shared';
|
|
2
|
+
import { createFlatProxy } from '@trpc/server/unstable-core-do-not-import';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { withTRPC } from './withTRPC.mjs';
|
|
5
|
+
|
|
6
|
+
/* istanbul ignore file -- @preserve */ // We're testing this through E2E-testing
|
|
7
|
+
function createTRPCNext(opts) {
|
|
8
|
+
const hooks = createRootHooks(opts);
|
|
9
|
+
// TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`
|
|
10
|
+
const _withTRPC = withTRPC(opts);
|
|
11
|
+
return createFlatProxy((key)=>{
|
|
12
|
+
if (key === 'useContext' || key === 'useUtils') {
|
|
13
|
+
return ()=>{
|
|
14
|
+
const context = hooks.useUtils();
|
|
15
|
+
// create a stable reference of the utils context
|
|
16
|
+
return useMemo(()=>{
|
|
17
|
+
return createReactQueryUtils(context);
|
|
18
|
+
}, [
|
|
19
|
+
context
|
|
20
|
+
]);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (key === 'useQueries') {
|
|
24
|
+
return hooks.useQueries;
|
|
25
|
+
}
|
|
26
|
+
if (key === 'useSuspenseQueries') {
|
|
27
|
+
return hooks.useSuspenseQueries;
|
|
28
|
+
}
|
|
29
|
+
if (key === 'withTRPC') {
|
|
30
|
+
return _withTRPC;
|
|
31
|
+
}
|
|
32
|
+
return createReactDecoration(key, hooks);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { createTRPCNext };
|
package/dist/index.js
CHANGED
|
@@ -1,195 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var withTRPC = require('./withTRPC.js');
|
|
4
|
+
var createTRPCNext = require('./createTRPCNext.js');
|
|
4
5
|
|
|
5
|
-
var reactQuery = require('@tanstack/react-query');
|
|
6
|
-
var client = require('@trpc/client');
|
|
7
|
-
var shared = require('@trpc/react-query/shared');
|
|
8
|
-
var React = require('react');
|
|
9
|
-
var ssrPrepass = require('react-ssr-prepass');
|
|
10
|
-
var shared$1 = require('@trpc/server/shared');
|
|
11
6
|
|
|
12
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
function transformQueryOrMutationCacheErrors(result) {
|
|
18
|
-
const error = result.state.error;
|
|
19
|
-
if (error instanceof Error && error.name === 'TRPCClientError') {
|
|
20
|
-
const newError = {
|
|
21
|
-
message: error.message,
|
|
22
|
-
data: error.data,
|
|
23
|
-
shape: error.shape
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
...result,
|
|
27
|
-
state: {
|
|
28
|
-
...result.state,
|
|
29
|
-
error: newError
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
}
|
|
35
|
-
function withTRPC(opts) {
|
|
36
|
-
const { config: getClientConfig } = opts;
|
|
37
|
-
return (AppOrPage)=>{
|
|
38
|
-
const trpc = shared.createRootHooks(opts);
|
|
39
|
-
const WithTRPC = (props)=>{
|
|
40
|
-
const [prepassProps] = React.useState(()=>{
|
|
41
|
-
if (props.trpc) {
|
|
42
|
-
return props.trpc;
|
|
43
|
-
}
|
|
44
|
-
const config = getClientConfig({});
|
|
45
|
-
const queryClient = shared.getQueryClient(config);
|
|
46
|
-
const trpcClient = trpc.createClient(config);
|
|
47
|
-
return {
|
|
48
|
-
abortOnUnmount: config.abortOnUnmount,
|
|
49
|
-
queryClient,
|
|
50
|
-
trpcClient,
|
|
51
|
-
ssrState: opts.ssr ? 'mounting' : false,
|
|
52
|
-
ssrContext: null
|
|
53
|
-
};
|
|
54
|
-
});
|
|
55
|
-
const { queryClient , trpcClient , ssrState , ssrContext } = prepassProps;
|
|
56
|
-
// allow normal components to be wrapped, not just app/pages
|
|
57
|
-
const hydratedState = trpc.useDehydratedState(trpcClient, props.pageProps?.trpcState);
|
|
58
|
-
return /*#__PURE__*/ React__default["default"].createElement(trpc.Provider, {
|
|
59
|
-
abortOnUnmount: prepassProps.abortOnUnmount ?? false,
|
|
60
|
-
client: trpcClient,
|
|
61
|
-
queryClient: queryClient,
|
|
62
|
-
ssrState: ssrState,
|
|
63
|
-
ssrContext: ssrContext
|
|
64
|
-
}, /*#__PURE__*/ React__default["default"].createElement(reactQuery.QueryClientProvider, {
|
|
65
|
-
client: queryClient
|
|
66
|
-
}, /*#__PURE__*/ React__default["default"].createElement(reactQuery.HydrationBoundary, {
|
|
67
|
-
state: hydratedState
|
|
68
|
-
}, /*#__PURE__*/ React__default["default"].createElement(AppOrPage, Object.assign({}, props)))));
|
|
69
|
-
};
|
|
70
|
-
if (AppOrPage.getInitialProps ?? opts.ssr) {
|
|
71
|
-
WithTRPC.getInitialProps = async (appOrPageCtx)=>{
|
|
72
|
-
const AppTree = appOrPageCtx.AppTree;
|
|
73
|
-
// Determine if we are wrapping an App component or a Page component.
|
|
74
|
-
const isApp = !!appOrPageCtx.Component;
|
|
75
|
-
const ctx = isApp ? appOrPageCtx.ctx : appOrPageCtx;
|
|
76
|
-
// Run the wrapped component's getInitialProps function.
|
|
77
|
-
let pageProps = {};
|
|
78
|
-
if (AppOrPage.getInitialProps) {
|
|
79
|
-
const originalProps = await AppOrPage.getInitialProps(appOrPageCtx);
|
|
80
|
-
const originalPageProps = isApp ? originalProps.pageProps ?? {} : originalProps;
|
|
81
|
-
pageProps = {
|
|
82
|
-
...originalPageProps,
|
|
83
|
-
...pageProps
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
const getAppTreeProps = (props)=>isApp ? {
|
|
87
|
-
pageProps: props
|
|
88
|
-
} : props;
|
|
89
|
-
if (typeof window !== 'undefined' || !opts.ssr) {
|
|
90
|
-
return getAppTreeProps(pageProps);
|
|
91
|
-
}
|
|
92
|
-
const config = getClientConfig({
|
|
93
|
-
ctx
|
|
94
|
-
});
|
|
95
|
-
const trpcClient = client.createTRPCUntypedClient(config);
|
|
96
|
-
const queryClient = shared.getQueryClient(config);
|
|
97
|
-
const trpcProp = {
|
|
98
|
-
config,
|
|
99
|
-
trpcClient,
|
|
100
|
-
queryClient,
|
|
101
|
-
ssrState: 'prepass',
|
|
102
|
-
ssrContext: ctx
|
|
103
|
-
};
|
|
104
|
-
const prepassProps = {
|
|
105
|
-
pageProps,
|
|
106
|
-
trpc: trpcProp
|
|
107
|
-
};
|
|
108
|
-
// Run the prepass step on AppTree. This will run all trpc queries on the server.
|
|
109
|
-
// multiple prepass ensures that we can do batching on the server
|
|
110
|
-
while(true){
|
|
111
|
-
// render full tree
|
|
112
|
-
await ssrPrepass__default["default"](/*#__PURE__*/ React.createElement(AppTree, prepassProps));
|
|
113
|
-
if (!queryClient.isFetching()) {
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
// wait until the query cache has settled it's promises
|
|
117
|
-
await new Promise((resolve)=>{
|
|
118
|
-
const unsub = queryClient.getQueryCache().subscribe((event)=>{
|
|
119
|
-
if (event?.query.getObserversCount() === 0) {
|
|
120
|
-
resolve();
|
|
121
|
-
unsub();
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
const dehydratedCache = reactQuery.dehydrate(queryClient, {
|
|
127
|
-
shouldDehydrateQuery () {
|
|
128
|
-
// makes sure errors are also dehydrated
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
// since error instances can't be serialized, let's make them into `TRPCClientErrorLike`-objects
|
|
133
|
-
const dehydratedCacheWithErrors = {
|
|
134
|
-
...dehydratedCache,
|
|
135
|
-
queries: dehydratedCache.queries.map(transformQueryOrMutationCacheErrors),
|
|
136
|
-
mutations: dehydratedCache.mutations.map(transformQueryOrMutationCacheErrors)
|
|
137
|
-
};
|
|
138
|
-
// dehydrate query client's state and add it to the props
|
|
139
|
-
pageProps.trpcState = trpcClient.runtime.combinedTransformer.output.serialize(dehydratedCacheWithErrors);
|
|
140
|
-
const appTreeProps = getAppTreeProps(pageProps);
|
|
141
|
-
const meta = opts.responseMeta?.({
|
|
142
|
-
ctx,
|
|
143
|
-
clientErrors: [
|
|
144
|
-
...dehydratedCache.queries,
|
|
145
|
-
...dehydratedCache.mutations
|
|
146
|
-
].map((v)=>v.state.error).flatMap((err)=>err instanceof Error && err.name === 'TRPCClientError' ? [
|
|
147
|
-
err
|
|
148
|
-
] : [])
|
|
149
|
-
}) ?? {};
|
|
150
|
-
for (const [key, value] of Object.entries(meta.headers ?? {})){
|
|
151
|
-
if (typeof value === 'string') {
|
|
152
|
-
ctx.res?.setHeader(key, value);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (meta.status && ctx.res) {
|
|
156
|
-
ctx.res.statusCode = meta.status;
|
|
157
|
-
}
|
|
158
|
-
return appTreeProps;
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
const displayName = AppOrPage.displayName ?? AppOrPage.name ?? 'Component';
|
|
162
|
-
WithTRPC.displayName = `withTRPC(${displayName})`;
|
|
163
|
-
return WithTRPC;
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/* istanbul ignore file -- @preserve */ // We're testing this through E2E-testing
|
|
168
|
-
function createTRPCNext(opts) {
|
|
169
|
-
const hooks = shared.createRootHooks(opts);
|
|
170
|
-
// TODO: maybe set TSSRContext to `never` when using `WithTRPCNoSSROptions`
|
|
171
|
-
const _withTRPC = withTRPC(opts);
|
|
172
|
-
return shared$1.createFlatProxy((key)=>{
|
|
173
|
-
if (key === 'useContext' || key === 'useUtils') {
|
|
174
|
-
return ()=>{
|
|
175
|
-
const context = hooks.useUtils();
|
|
176
|
-
// create a stable reference of the utils context
|
|
177
|
-
return React.useMemo(()=>{
|
|
178
|
-
return shared.createReactQueryUtils(context);
|
|
179
|
-
}, [
|
|
180
|
-
context
|
|
181
|
-
]);
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
if (key === 'useQueries') {
|
|
185
|
-
return hooks.useQueries;
|
|
186
|
-
}
|
|
187
|
-
if (key === 'withTRPC') {
|
|
188
|
-
return _withTRPC;
|
|
189
|
-
}
|
|
190
|
-
return shared.createReactDecoration(key, hooks);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
exports.createTRPCNext = createTRPCNext;
|
|
195
|
-
exports.withTRPC = withTRPC;
|
|
8
|
+
exports.withTRPC = withTRPC.withTRPC;
|
|
9
|
+
exports.createTRPCNext = createTRPCNext.createTRPCNext;
|