@trpc/server 10.43.0 → 11.0.0-next.91
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/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +6 -4
- package/dist/adapters/aws-lambda/index.mjs +6 -4
- package/dist/adapters/aws-lambda/utils.d.ts +3 -1
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/express.js +4 -3
- package/dist/adapters/express.mjs +4 -3
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +8 -5
- package/dist/adapters/fastify/index.mjs +8 -5
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +6 -4
- package/dist/adapters/fetch/index.mjs +6 -4
- package/dist/adapters/fetch/types.d.ts +2 -1
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/next.js +4 -3
- package/dist/adapters/next.mjs +4 -3
- package/dist/adapters/node-http/index.js +4 -3
- package/dist/adapters/node-http/index.mjs +4 -3
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +2 -1
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +1 -6
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +8 -19
- package/dist/adapters/standalone.mjs +8 -19
- package/dist/adapters/ws.d.ts +25 -4
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +67 -14
- package/dist/adapters/ws.mjs +58 -6
- package/dist/bundle-analysis.json +910 -0
- package/dist/config-5de7eae5.js +10 -0
- package/dist/config-60fc2667.js +7 -0
- package/dist/config-ab4c1c6b.mjs +5 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/initTRPC.d.ts +1 -1
- package/dist/core/internals/builderTypes.d.ts +11 -0
- package/dist/core/internals/builderTypes.d.ts.map +1 -0
- package/dist/core/internals/getParseFn.d.ts +0 -5
- package/dist/core/internals/getParseFn.d.ts.map +1 -1
- package/dist/core/internals/mergeRouters.d.ts +0 -3
- package/dist/core/internals/mergeRouters.d.ts.map +1 -1
- package/dist/core/internals/procedureBuilder.d.ts +24 -27
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/core/internals/utils.d.ts +7 -8
- package/dist/core/internals/utils.d.ts.map +1 -1
- package/dist/core/middleware.d.ts +16 -15
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/core/procedure.d.ts +41 -42
- package/dist/core/procedure.d.ts.map +1 -1
- package/dist/core/router.d.ts +9 -56
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/types.d.ts +7 -12
- package/dist/core/types.d.ts.map +1 -1
- package/dist/http/index.js +3 -2
- package/dist/http/index.mjs +3 -2
- package/dist/http/resolveHTTPResponse.d.ts +3 -3
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/types.d.ts +22 -1
- package/dist/http/types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -811
- package/dist/index.mjs +15 -802
- package/dist/{nodeHTTPRequestHandler-cf01c646.mjs → nodeHTTPRequestHandler-0986c5a1.mjs} +8 -3
- package/dist/{nodeHTTPRequestHandler-b7d358fe.js → nodeHTTPRequestHandler-18f3370e.js} +8 -3
- package/dist/{nodeHTTPRequestHandler-9781faee.js → nodeHTTPRequestHandler-388f5fce.js} +8 -3
- package/dist/{resolveHTTPResponse-68c8befb.mjs → resolveHTTPResponse-55c648bd.mjs} +14 -12
- package/dist/{resolveHTTPResponse-79011e44.js → resolveHTTPResponse-5def1b0c.js} +15 -13
- package/dist/{resolveHTTPResponse-051b3a40.js → resolveHTTPResponse-8d474952.js} +12 -12
- package/dist/{config-3ab6b85e.js → router-3c22fe56.js} +9 -46
- package/dist/{config-4c0f8e88.mjs → router-5274e533.mjs} +10 -45
- package/dist/{config-f356f2fd.js → router-a1635eab.js} +9 -44
- package/dist/rpc/envelopes.d.ts +1 -5
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.d.ts +0 -1
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +0 -2
- package/dist/rpc/index.mjs +0 -1
- package/dist/shared/getErrorShape.d.ts +1 -1
- package/dist/shared/getErrorShape.d.ts.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/jsonify.d.ts +3 -2
- package/dist/shared/jsonify.d.ts.map +1 -1
- package/dist/shared/transformTRPCResponse.d.ts +1 -1
- package/dist/shared/transformTRPCResponse.d.ts.map +1 -1
- package/dist/shared/types.d.ts +6 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/unstableInternalsExport-10cc2bae.mjs +353 -0
- package/dist/unstableInternalsExport-a064a7dd.js +349 -0
- package/dist/unstableInternalsExport-bf8496ea.js +363 -0
- package/dist/unstableInternalsExport.d.ts +11 -0
- package/dist/unstableInternalsExport.d.ts.map +1 -0
- package/dist/unstableInternalsExport.js +16 -0
- package/dist/unstableInternalsExport.mjs +5 -0
- package/package.json +9 -3
- package/src/adapters/aws-lambda/index.ts +11 -7
- package/src/adapters/aws-lambda/utils.ts +3 -0
- package/src/adapters/fastify/fastifyRequestHandler.ts +9 -5
- package/src/adapters/fetch/fetchRequestHandler.ts +9 -3
- package/src/adapters/fetch/types.ts +2 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +15 -4
- package/src/adapters/node-http/types.ts +2 -1
- package/src/adapters/standalone.ts +4 -22
- package/src/adapters/ws.ts +110 -14
- package/src/core/index.ts +1 -0
- package/src/core/internals/builderTypes.ts +11 -0
- package/src/core/internals/getParseFn.ts +0 -13
- package/src/core/internals/mergeRouters.ts +0 -4
- package/src/core/internals/procedureBuilder.ts +50 -70
- package/src/core/internals/utils.ts +11 -8
- package/src/core/middleware.ts +37 -31
- package/src/core/procedure.ts +46 -54
- package/src/core/router.ts +19 -117
- package/src/core/types.ts +11 -20
- package/src/http/resolveHTTPResponse.ts +17 -14
- package/src/http/types.ts +24 -1
- package/src/index.ts +16 -2
- package/src/rpc/envelopes.ts +1 -6
- package/src/rpc/index.ts +0 -1
- package/src/shared/getErrorShape.ts +2 -1
- package/src/shared/index.ts +2 -0
- package/src/shared/jsonify.ts +9 -5
- package/src/shared/transformTRPCResponse.ts +1 -1
- package/src/shared/types.ts +9 -0
- package/src/types.ts +8 -0
- package/src/unstableInternalsExport.ts +10 -0
- package/unstableInternalsExport/index.d.ts +1 -0
- package/unstableInternalsExport/index.js +1 -0
- package/adapters/zodFileSchema/index.d.ts +0 -1
- package/adapters/zodFileSchema/index.js +0 -1
- package/dist/adapters/lambda/index.d.ts +0 -12
- package/dist/adapters/lambda/index.d.ts.map +0 -1
- package/dist/deprecated/internals/middlewares.d.ts +0 -52
- package/dist/deprecated/internals/middlewares.d.ts.map +0 -1
- package/dist/deprecated/internals/procedure.d.ts +0 -96
- package/dist/deprecated/internals/procedure.d.ts.map +0 -1
- package/dist/deprecated/interop.d.ts +0 -44
- package/dist/deprecated/interop.d.ts.map +0 -1
- package/dist/deprecated/router.d.ts +0 -204
- package/dist/deprecated/router.d.ts.map +0 -1
- package/dist/internals.d.ts +0 -10
- package/dist/internals.d.ts.map +0 -1
- package/dist/parseTRPCMessage-1377f305.js +0 -56
- package/dist/parseTRPCMessage-95955211.js +0 -63
- package/dist/parseTRPCMessage-a0f17853.mjs +0 -54
- package/dist/rpc/parseTRPCMessage.d.ts +0 -5
- package/dist/rpc/parseTRPCMessage.d.ts.map +0 -1
- package/dist/subscription.d.ts +0 -13
- package/dist/subscription.d.ts.map +0 -1
- package/dist/subscription.js +0 -38
- package/dist/subscription.mjs +0 -34
- package/src/adapters/lambda/index.ts +0 -18
- package/src/deprecated/internals/middlewares.ts +0 -61
- package/src/deprecated/internals/procedure.ts +0 -411
- package/src/deprecated/interop.ts +0 -232
- package/src/deprecated/router.ts +0 -945
- package/src/internals.ts +0 -12
- package/src/rpc/parseTRPCMessage.ts +0 -84
- package/src/subscription.ts +0 -43
package/src/core/router.ts
CHANGED
|
@@ -7,19 +7,8 @@ import { defaultTransformer } from '../transformer';
|
|
|
7
7
|
import { AnyRootConfig } from './internals/config';
|
|
8
8
|
import { omitPrototype } from './internals/omitPrototype';
|
|
9
9
|
import { ProcedureCallOptions } from './internals/procedureBuilder';
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
AnyProcedure,
|
|
13
|
-
AnyQueryProcedure,
|
|
14
|
-
AnySubscriptionProcedure,
|
|
15
|
-
ProcedureArgs,
|
|
16
|
-
} from './procedure';
|
|
17
|
-
import {
|
|
18
|
-
inferHandlerInput,
|
|
19
|
-
inferProcedureOutput,
|
|
20
|
-
ProcedureType,
|
|
21
|
-
procedureTypes,
|
|
22
|
-
} from './types';
|
|
10
|
+
import { AnyProcedure, ProcedureArgs } from './procedure';
|
|
11
|
+
import { ProcedureType } from './types';
|
|
23
12
|
|
|
24
13
|
/** @internal **/
|
|
25
14
|
export type ProcedureRecord = Record<string, AnyProcedure>;
|
|
@@ -28,66 +17,19 @@ export interface ProcedureRouterRecord {
|
|
|
28
17
|
[key: string]: AnyProcedure | AnyRouter;
|
|
29
18
|
}
|
|
30
19
|
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated
|
|
33
|
-
*/
|
|
34
|
-
interface DeprecatedProcedureRouterRecord {
|
|
35
|
-
queries: Record<string, AnyQueryProcedure>;
|
|
36
|
-
mutations: Record<string, AnyMutationProcedure>;
|
|
37
|
-
subscriptions: Record<string, AnySubscriptionProcedure>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
20
|
export interface RouterDef<
|
|
41
21
|
TConfig extends AnyRootConfig,
|
|
42
22
|
TRecord extends ProcedureRouterRecord,
|
|
43
|
-
/**
|
|
44
|
-
* @deprecated
|
|
45
|
-
*/
|
|
46
|
-
TOld extends DeprecatedProcedureRouterRecord = {
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
48
|
-
queries: {};
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
50
|
-
mutations: {};
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
52
|
-
subscriptions: {};
|
|
53
|
-
},
|
|
54
23
|
> {
|
|
55
24
|
_config: TConfig;
|
|
56
25
|
router: true;
|
|
26
|
+
procedure?: never;
|
|
57
27
|
procedures: TRecord;
|
|
58
28
|
record: TRecord;
|
|
59
|
-
/**
|
|
60
|
-
* V9 queries
|
|
61
|
-
* @deprecated
|
|
62
|
-
*/
|
|
63
|
-
queries: TOld['queries'];
|
|
64
|
-
/**
|
|
65
|
-
* V9 mutations
|
|
66
|
-
* @deprecated
|
|
67
|
-
*/
|
|
68
|
-
mutations: TOld['mutations'];
|
|
69
|
-
/**
|
|
70
|
-
* V9 subscriptions
|
|
71
|
-
* @deprecated
|
|
72
|
-
*/
|
|
73
|
-
subscriptions: TOld['subscriptions'];
|
|
74
29
|
}
|
|
75
30
|
|
|
76
|
-
export type AnyRouterDef<
|
|
77
|
-
TConfig
|
|
78
|
-
TOld extends DeprecatedProcedureRouterRecord = any,
|
|
79
|
-
> = RouterDef<TConfig, any, TOld>;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* @internal
|
|
83
|
-
*/
|
|
84
|
-
type inferHandlerFn<TProcedures extends ProcedureRecord> = <
|
|
85
|
-
TProcedure extends TProcedures[TPath],
|
|
86
|
-
TPath extends string & keyof TProcedures,
|
|
87
|
-
>(
|
|
88
|
-
path: TPath,
|
|
89
|
-
...args: inferHandlerInput<TProcedure>
|
|
90
|
-
) => Promise<inferProcedureOutput<TProcedure>>;
|
|
31
|
+
export type AnyRouterDef<TConfig extends AnyRootConfig = AnyRootConfig> =
|
|
32
|
+
RouterDef<TConfig, any>;
|
|
91
33
|
|
|
92
34
|
type DecorateProcedure<TProcedure extends AnyProcedure> = (
|
|
93
35
|
input: ProcedureArgs<TProcedure['_def']>[0],
|
|
@@ -109,20 +51,7 @@ type DecoratedProcedureRecord<TProcedures extends ProcedureRouterRecord> = {
|
|
|
109
51
|
*/
|
|
110
52
|
type RouterCaller<TDef extends AnyRouterDef> = (
|
|
111
53
|
ctx: TDef['_config']['$types']['ctx'],
|
|
112
|
-
) => DecoratedProcedureRecord<TDef['record']
|
|
113
|
-
/**
|
|
114
|
-
* @deprecated
|
|
115
|
-
*/
|
|
116
|
-
query: inferHandlerFn<TDef['queries']>;
|
|
117
|
-
/**
|
|
118
|
-
* @deprecated
|
|
119
|
-
*/
|
|
120
|
-
mutation: inferHandlerFn<TDef['mutations']>;
|
|
121
|
-
/**
|
|
122
|
-
* @deprecated
|
|
123
|
-
*/
|
|
124
|
-
subscription: inferHandlerFn<TDef['subscriptions']>;
|
|
125
|
-
};
|
|
54
|
+
) => DecoratedProcedureRecord<TDef['record']>;
|
|
126
55
|
|
|
127
56
|
export interface Router<TDef extends AnyRouterDef> {
|
|
128
57
|
_def: TDef;
|
|
@@ -179,9 +108,9 @@ export type CreateRouterInner<
|
|
|
179
108
|
TProcRouterRecord extends ProcedureRouterRecord,
|
|
180
109
|
> = Router<RouterDef<TConfig, TProcRouterRecord>> &
|
|
181
110
|
/**
|
|
182
|
-
* This
|
|
183
|
-
|
|
184
|
-
|
|
111
|
+
* This adds ability to call procedures directly but is primarily used for quick access in type inference
|
|
112
|
+
*/
|
|
113
|
+
TProcRouterRecord;
|
|
185
114
|
|
|
186
115
|
/**
|
|
187
116
|
* @internal
|
|
@@ -229,15 +158,6 @@ export function createRouterFactory<TConfig extends AnyRootConfig>(
|
|
|
229
158
|
procedures: routerProcedures,
|
|
230
159
|
...emptyRouter,
|
|
231
160
|
record: procedures,
|
|
232
|
-
queries: Object.entries(routerProcedures)
|
|
233
|
-
.filter((pair) => (pair[1] as any)._def.query)
|
|
234
|
-
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
235
|
-
mutations: Object.entries(routerProcedures)
|
|
236
|
-
.filter((pair) => (pair[1] as any)._def.mutation)
|
|
237
|
-
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
238
|
-
subscriptions: Object.entries(routerProcedures)
|
|
239
|
-
.filter((pair) => (pair[1] as any)._def.subscription)
|
|
240
|
-
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
241
161
|
};
|
|
242
162
|
|
|
243
163
|
const router: AnyRouter = {
|
|
@@ -245,35 +165,14 @@ export function createRouterFactory<TConfig extends AnyRootConfig>(
|
|
|
245
165
|
_def,
|
|
246
166
|
createCaller(ctx) {
|
|
247
167
|
const proxy = createRecursiveProxy(({ path, args }) => {
|
|
248
|
-
// interop mode
|
|
249
|
-
if (
|
|
250
|
-
path.length === 1 &&
|
|
251
|
-
procedureTypes.includes(path[0] as ProcedureType)
|
|
252
|
-
) {
|
|
253
|
-
return callProcedure({
|
|
254
|
-
procedures: _def.procedures,
|
|
255
|
-
path: args[0] as string,
|
|
256
|
-
rawInput: args[1],
|
|
257
|
-
ctx,
|
|
258
|
-
type: path[0] as ProcedureType,
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
|
|
262
168
|
const fullPath = path.join('.');
|
|
263
169
|
const procedure = _def.procedures[fullPath] as AnyProcedure;
|
|
264
170
|
|
|
265
|
-
let type: ProcedureType = 'query';
|
|
266
|
-
if (procedure._def.mutation) {
|
|
267
|
-
type = 'mutation';
|
|
268
|
-
} else if (procedure._def.subscription) {
|
|
269
|
-
type = 'subscription';
|
|
270
|
-
}
|
|
271
|
-
|
|
272
171
|
return procedure({
|
|
273
172
|
path: fullPath,
|
|
274
|
-
|
|
173
|
+
getRawInput: async () => args[0],
|
|
275
174
|
ctx,
|
|
276
|
-
type,
|
|
175
|
+
type: procedure._def.type,
|
|
277
176
|
});
|
|
278
177
|
});
|
|
279
178
|
|
|
@@ -303,6 +202,11 @@ export function createRouterFactory<TConfig extends AnyRootConfig>(
|
|
|
303
202
|
};
|
|
304
203
|
}
|
|
305
204
|
|
|
205
|
+
function isProcedure(
|
|
206
|
+
procedureOrRouter: AnyProcedure | AnyRouter,
|
|
207
|
+
): procedureOrRouter is AnyProcedure {
|
|
208
|
+
return !!procedureOrRouter._def.procedure;
|
|
209
|
+
}
|
|
306
210
|
/**
|
|
307
211
|
* @internal
|
|
308
212
|
*/
|
|
@@ -310,15 +214,13 @@ export function callProcedure(
|
|
|
310
214
|
opts: ProcedureCallOptions & { procedures: ProcedureRouterRecord },
|
|
311
215
|
) {
|
|
312
216
|
const { type, path } = opts;
|
|
313
|
-
|
|
314
|
-
if (!
|
|
217
|
+
const proc = opts.procedures[path];
|
|
218
|
+
if (!proc || !isProcedure(proc) || proc._def.type !== type) {
|
|
315
219
|
throw new TRPCError({
|
|
316
220
|
code: 'NOT_FOUND',
|
|
317
221
|
message: `No "${type}"-procedure on path "${path}"`,
|
|
318
222
|
});
|
|
319
223
|
}
|
|
320
224
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
return procedure(opts);
|
|
225
|
+
return proc(opts);
|
|
324
226
|
}
|
package/src/core/types.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { inferTransformedProcedureOutput } from '../shared/jsonify';
|
|
1
|
+
import { inferTransformedProcedureOutput } from '../shared';
|
|
3
2
|
import { AnyProcedure, ProcedureArgs } from './procedure';
|
|
4
3
|
import { AnyRouter, AnyRouterDef, Router } from './router';
|
|
5
4
|
|
|
@@ -11,12 +10,14 @@ export type inferRouterDef<TRouter extends AnyRouter> = TRouter extends Router<
|
|
|
11
10
|
: never
|
|
12
11
|
: never;
|
|
13
12
|
|
|
13
|
+
export type inferRouterConfig<TRouter extends AnyRouter> =
|
|
14
|
+
inferRouterDef<TRouter>['_config'];
|
|
14
15
|
export type inferRouterContext<TRouter extends AnyRouter> =
|
|
15
|
-
|
|
16
|
+
inferRouterConfig<TRouter>['$types']['ctx'];
|
|
16
17
|
export type inferRouterError<TRouter extends AnyRouter> =
|
|
17
|
-
|
|
18
|
+
inferRouterConfig<TRouter>['$types']['errorShape'];
|
|
18
19
|
export type inferRouterMeta<TRouter extends AnyRouter> =
|
|
19
|
-
|
|
20
|
+
inferRouterConfig<TRouter>['$types']['meta'];
|
|
20
21
|
|
|
21
22
|
export const procedureTypes = ['query', 'mutation', 'subscription'] as const;
|
|
22
23
|
/**
|
|
@@ -29,7 +30,7 @@ export type inferHandlerInput<TProcedure extends AnyProcedure> = ProcedureArgs<
|
|
|
29
30
|
>;
|
|
30
31
|
|
|
31
32
|
export type inferProcedureInput<TProcedure extends AnyProcedure> =
|
|
32
|
-
|
|
33
|
+
inferProcedureParams<TProcedure>['_input_in'];
|
|
33
34
|
|
|
34
35
|
export type inferProcedureParams<TProcedure> = TProcedure extends AnyProcedure
|
|
35
36
|
? TProcedure['_def']
|
|
@@ -37,19 +38,6 @@ export type inferProcedureParams<TProcedure> = TProcedure extends AnyProcedure
|
|
|
37
38
|
export type inferProcedureOutput<TProcedure> =
|
|
38
39
|
inferProcedureParams<TProcedure>['_output_out'];
|
|
39
40
|
|
|
40
|
-
/**
|
|
41
|
-
* @deprecated will be removed in next major as it's v9 stuff
|
|
42
|
-
*/
|
|
43
|
-
export type inferSubscriptionOutput<
|
|
44
|
-
TRouter extends AnyRouter,
|
|
45
|
-
TPath extends string & keyof TRouter['_def']['subscriptions'],
|
|
46
|
-
> = inferObservableValue<
|
|
47
|
-
inferProcedureOutput<TRouter['_def']['subscriptions'][TPath]>
|
|
48
|
-
>;
|
|
49
|
-
|
|
50
|
-
export type inferProcedureClientError<TProcedure extends AnyProcedure> =
|
|
51
|
-
inferProcedureParams<TProcedure>['_config']['errorShape'];
|
|
52
|
-
|
|
53
41
|
type GetInferenceHelpers<
|
|
54
42
|
TType extends 'input' | 'output',
|
|
55
43
|
TRouter extends AnyRouter,
|
|
@@ -60,7 +48,10 @@ type GetInferenceHelpers<
|
|
|
60
48
|
: TRouterOrProcedure extends AnyProcedure
|
|
61
49
|
? TType extends 'input'
|
|
62
50
|
? inferProcedureInput<TRouterOrProcedure>
|
|
63
|
-
: inferTransformedProcedureOutput<
|
|
51
|
+
: inferTransformedProcedureOutput<
|
|
52
|
+
TRouter['_def']['_config'],
|
|
53
|
+
TRouterOrProcedure
|
|
54
|
+
>
|
|
64
55
|
: never
|
|
65
56
|
: never;
|
|
66
57
|
};
|
|
@@ -16,7 +16,12 @@ import {
|
|
|
16
16
|
} from './contentType';
|
|
17
17
|
import { getHTTPStatusCode } from './getHTTPStatusCode';
|
|
18
18
|
import { HTTPHeaders, HTTPResponse, ResponseChunk } from './internals/types';
|
|
19
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
HTTPBaseHandlerOptions,
|
|
21
|
+
HTTPRequest,
|
|
22
|
+
ResolveHTTPRequestOptionsContextFn,
|
|
23
|
+
TRPCRequestInfo,
|
|
24
|
+
} from './types';
|
|
20
25
|
|
|
21
26
|
const HTTP_METHOD_PROCEDURE_TYPE_MAP: Record<
|
|
22
27
|
string,
|
|
@@ -40,7 +45,7 @@ interface ResolveHTTPRequestOptions<
|
|
|
40
45
|
TRouter extends AnyRouter,
|
|
41
46
|
TRequest extends HTTPRequest,
|
|
42
47
|
> extends HTTPBaseHandlerOptions<TRouter, TRequest> {
|
|
43
|
-
createContext:
|
|
48
|
+
createContext: ResolveHTTPRequestOptionsContextFn<TRouter>;
|
|
44
49
|
req: TRequest;
|
|
45
50
|
path: string;
|
|
46
51
|
error?: Maybe<TRPCError>;
|
|
@@ -145,7 +150,7 @@ async function inputToProcedureCall<
|
|
|
145
150
|
const data = await callProcedure({
|
|
146
151
|
procedures: opts.router._def.procedures,
|
|
147
152
|
path,
|
|
148
|
-
|
|
153
|
+
getRawInput: async () => input,
|
|
149
154
|
ctx,
|
|
150
155
|
type,
|
|
151
156
|
});
|
|
@@ -287,17 +292,6 @@ export async function resolveHTTPResponse<
|
|
|
287
292
|
req.headers['trpc-batch-mode'] === 'stream';
|
|
288
293
|
|
|
289
294
|
try {
|
|
290
|
-
// we create context first so that (unless `createContext()` throws)
|
|
291
|
-
// error handler may access context information
|
|
292
|
-
//
|
|
293
|
-
// this way even if the client sends malformed input that might cause an exception:
|
|
294
|
-
// - `opts.error` has value,
|
|
295
|
-
// - batching is not enabled,
|
|
296
|
-
// - `type` is unknown,
|
|
297
|
-
// - `getInputs` throws because of malformed JSON,
|
|
298
|
-
// context value is still available to the error handler
|
|
299
|
-
ctx = await opts.createContext();
|
|
300
|
-
|
|
301
295
|
if (opts.error) {
|
|
302
296
|
throw opts.error;
|
|
303
297
|
}
|
|
@@ -328,6 +322,15 @@ export async function resolveHTTPResponse<
|
|
|
328
322
|
paths = isBatchCall
|
|
329
323
|
? decodeURIComponent(opts.path).split(',')
|
|
330
324
|
: [opts.path];
|
|
325
|
+
const info: TRPCRequestInfo = {
|
|
326
|
+
isBatchCall,
|
|
327
|
+
calls: paths.map((path, idx) => ({
|
|
328
|
+
path,
|
|
329
|
+
type,
|
|
330
|
+
input: inputs[idx] ?? undefined,
|
|
331
|
+
})),
|
|
332
|
+
};
|
|
333
|
+
ctx = await opts.createContext({ info });
|
|
331
334
|
const promises = paths.map((path, index) =>
|
|
332
335
|
inputToProcedureCall({ opts, ctx, type, input: inputs[index], path }),
|
|
333
336
|
);
|
package/src/http/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyRouter } from '../core';
|
|
1
|
+
import { AnyRouter, inferRouterContext, ProcedureType } from '../core';
|
|
2
2
|
import { BaseHandlerOptions } from '../internals/types';
|
|
3
3
|
import { HTTPHeaders, ResponseMetaFn } from './internals/types';
|
|
4
4
|
|
|
@@ -26,3 +26,26 @@ export interface ResponseMeta {
|
|
|
26
26
|
status?: number;
|
|
27
27
|
headers?: Record<string, string>;
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
/** @internal */
|
|
31
|
+
export type ProcedureCall = {
|
|
32
|
+
type: ProcedureType;
|
|
33
|
+
input?: unknown;
|
|
34
|
+
path: string;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Information about the incoming request
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export type TRPCRequestInfo = {
|
|
42
|
+
isBatchCall: boolean;
|
|
43
|
+
calls: ProcedureCall[];
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Inner createContext function for `resolveHTTPResponse` used to forward `TRPCRequestInfo` to `createContext`
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
export type ResolveHTTPRequestOptionsContextFn<TRouter extends AnyRouter> =
|
|
51
|
+
(opts: { info: TRPCRequestInfo }) => Promise<inferRouterContext<TRouter>>;
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
|
+
// FIXME: this file should only export
|
|
2
|
+
// - `initTRPC`
|
|
3
|
+
// - `TRPCError`
|
|
4
|
+
// - (maybe something else?)
|
|
5
|
+
|
|
1
6
|
export * from './transformer';
|
|
2
7
|
export * from './error/TRPCError';
|
|
3
8
|
export * from './types';
|
|
4
|
-
export { router } from './deprecated/router';
|
|
5
9
|
export * from './core';
|
|
6
|
-
export
|
|
10
|
+
export { type DefaultErrorShape } from './error/formatter';
|
|
11
|
+
export type { RootConfig, AnyRootConfig } from './core/internals/config';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* ⚠️ ⚠️ ⚠️ Danger zone ⚠️ ⚠️ ⚠️
|
|
15
|
+
* @remark
|
|
16
|
+
* Do not use things from this export as they are subject to change without notice. They only exists to support `.d.ts`-files
|
|
17
|
+
* If you need something from here, please open an issue and we'll see if we can expose it in a stable way.
|
|
18
|
+
* @deprecated
|
|
19
|
+
*/
|
|
20
|
+
export * as unstableExternalsExport from './unstableInternalsExport';
|
package/src/rpc/envelopes.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-namespace */
|
|
2
|
-
import { ProcedureType } from '../
|
|
2
|
+
import { ProcedureType } from '../core';
|
|
3
3
|
import { TRPC_ERROR_CODE_NUMBER } from './codes';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -64,11 +64,6 @@ export interface TRPCSuccessResponse<TData>
|
|
|
64
64
|
}
|
|
65
65
|
> {}
|
|
66
66
|
|
|
67
|
-
/**
|
|
68
|
-
* @deprecated use `TRPCSuccessResponse` instead
|
|
69
|
-
*/
|
|
70
|
-
export type TRPCResultResponse<TData = unknown> = TRPCSuccessResponse<TData>;
|
|
71
|
-
|
|
72
67
|
export interface TRPCErrorResponse<
|
|
73
68
|
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
74
69
|
> extends JSONRPC2.ErrorResponse<TError> {}
|
package/src/rpc/index.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ProcedureType } from '../core';
|
|
2
|
+
import { AnyRootConfig } from '../core/internals/config';
|
|
3
|
+
import { DefaultErrorShape } from '../error/formatter';
|
|
2
4
|
import { TRPCError } from '../error/TRPCError';
|
|
3
5
|
import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';
|
|
4
|
-
import { AnyRootConfig, DefaultErrorShape } from '../internals';
|
|
5
6
|
import { TRPC_ERROR_CODES_BY_KEY } from '../rpc';
|
|
6
7
|
|
|
7
8
|
/**
|
package/src/shared/index.ts
CHANGED
package/src/shared/jsonify.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnyProcedure } from '../core';
|
|
2
|
+
import { AnyRootConfig } from '../core/internals/config';
|
|
2
3
|
import { inferObservableValue } from '../observable';
|
|
3
4
|
import { DefaultDataTransformer } from '../transformer';
|
|
4
5
|
import type { Serialize } from './internal/serialize';
|
|
@@ -6,13 +7,16 @@ import type { Serialize } from './internal/serialize';
|
|
|
6
7
|
/**
|
|
7
8
|
* @internal
|
|
8
9
|
*/
|
|
9
|
-
export type inferTransformedProcedureOutput<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
export type inferTransformedProcedureOutput<
|
|
11
|
+
TConfig extends AnyRootConfig,
|
|
12
|
+
TProcedure extends AnyProcedure,
|
|
13
|
+
> = TConfig['transformer'] extends DefaultDataTransformer
|
|
14
|
+
? Serialize<TProcedure['_def']['_output_out']>
|
|
15
|
+
: TProcedure['_def']['_output_out'];
|
|
13
16
|
|
|
14
17
|
export type inferTransformedSubscriptionOutput<
|
|
18
|
+
TConfig extends AnyRootConfig,
|
|
15
19
|
TProcedure extends AnyProcedure,
|
|
16
|
-
> =
|
|
20
|
+
> = TConfig['transformer'] extends DefaultDataTransformer
|
|
17
21
|
? Serialize<inferObservableValue<TProcedure['_def']['_output_out']>>
|
|
18
22
|
: inferObservableValue<TProcedure['_def']['_output_out']>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AnyRouter } from '../core';
|
|
2
|
+
import { AnyRootConfig } from '../core/internals/config';
|
|
3
|
+
|
|
4
|
+
export type TRPCInferrable = AnyRouter | AnyRootConfig;
|
|
5
|
+
export type inferConfig<TInferrable extends TRPCInferrable> =
|
|
6
|
+
TInferrable extends AnyRouter ? TInferrable['_def']['_config'] : TInferrable;
|
|
7
|
+
|
|
8
|
+
export type inferErrorShape<TInferrable extends TRPCInferrable> =
|
|
9
|
+
inferConfig<TInferrable>['$types']['errorShape'];
|
package/src/types.ts
CHANGED
|
@@ -115,3 +115,11 @@ export type DeepPartial<TObject> = TObject extends object
|
|
|
115
115
|
[P in keyof TObject]?: DeepPartial<TObject[P]>;
|
|
116
116
|
}
|
|
117
117
|
: TObject;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Omits the key without removing a potential union
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
export type DistributiveOmit<TObj, TKey extends keyof any> = TObj extends any
|
|
124
|
+
? Omit<TObj, TKey>
|
|
125
|
+
: never;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These types have to be exported so users can generate their own types definitions files
|
|
3
|
+
*
|
|
4
|
+
* @remark Do not `import` anything here as it will be unreliable between minor versions of tRPC
|
|
5
|
+
*/
|
|
6
|
+
export { mergeRouters } from './core/internals/mergeRouters';
|
|
7
|
+
export * from './core/internals/procedureBuilder';
|
|
8
|
+
export * from './core/internals/utils';
|
|
9
|
+
export type { MiddlewareFunction, MiddlewareBuilder } from './core/middleware';
|
|
10
|
+
export * from './core/procedure';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../dist/unstableInternalsExport';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../dist/unstableInternalsExport');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/adapters/zodFileSchema';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/adapters/zodFileSchema');
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { awsLambdaRequestHandler, CreateAWSLambdaContextOptions } from '../aws-lambda';
|
|
2
|
-
import { APIGatewayEvent } from '../aws-lambda/utils';
|
|
3
|
-
export * from '../aws-lambda';
|
|
4
|
-
/**
|
|
5
|
-
* @deprecated use `aws-lambda` instead
|
|
6
|
-
*/
|
|
7
|
-
export type CreateLambdaContextOptions<TEvent extends APIGatewayEvent> = CreateAWSLambdaContextOptions<TEvent>;
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated use `aws-lambda` instead
|
|
10
|
-
*/
|
|
11
|
-
export declare const lambdaRequestHandler: typeof awsLambdaRequestHandler;
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,cAAc,eAAe,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,eAAe,IACnE,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,gCAA0B,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { TRPCError } from '../../error/TRPCError';
|
|
2
|
-
import { ProcedureType } from '../router';
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated
|
|
5
|
-
*/
|
|
6
|
-
export declare const middlewareMarker: "middlewareMarker" & {
|
|
7
|
-
__brand: 'middlewareMarker';
|
|
8
|
-
};
|
|
9
|
-
interface MiddlewareResultBase<TContext> {
|
|
10
|
-
/**
|
|
11
|
-
* All middlewares should pass through their `next()`'s output.
|
|
12
|
-
* Requiring this marker makes sure that can't be forgotten at compile-time.
|
|
13
|
-
*/
|
|
14
|
-
readonly marker: typeof middlewareMarker;
|
|
15
|
-
ctx: TContext;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @deprecated
|
|
19
|
-
*/
|
|
20
|
-
interface MiddlewareOKResult<TContext> extends MiddlewareResultBase<TContext> {
|
|
21
|
-
ok: true;
|
|
22
|
-
data: unknown;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated
|
|
26
|
-
*/
|
|
27
|
-
interface MiddlewareErrorResult<TContext> extends MiddlewareResultBase<TContext> {
|
|
28
|
-
ok: false;
|
|
29
|
-
error: TRPCError;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated
|
|
33
|
-
*/
|
|
34
|
-
export type MiddlewareResult<TContext> = MiddlewareErrorResult<TContext> | MiddlewareOKResult<TContext>;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated
|
|
37
|
-
*/
|
|
38
|
-
export type MiddlewareFunction<TInputContext, TContext, TMeta> = (opts: {
|
|
39
|
-
ctx: TInputContext;
|
|
40
|
-
type: ProcedureType;
|
|
41
|
-
path: string;
|
|
42
|
-
rawInput: unknown;
|
|
43
|
-
meta?: TMeta;
|
|
44
|
-
next: {
|
|
45
|
-
(): Promise<MiddlewareResult<TInputContext>>;
|
|
46
|
-
<TNewContext>(opts: {
|
|
47
|
-
ctx: TNewContext;
|
|
48
|
-
}): Promise<MiddlewareResult<TNewContext>>;
|
|
49
|
-
};
|
|
50
|
-
}) => Promise<MiddlewareResult<TContext>>;
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=middlewares.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../src/deprecated/internals/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,gBAAgB;aAClB,kBAAkB;CAC5B,CAAC;AAEF,UAAU,oBAAoB,CAAC,QAAQ;IACrC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC;IACzC,GAAG,EAAE,QAAQ,CAAC;CACf;AAED;;GAEG;AACH,UAAU,kBAAkB,CAAC,QAAQ,CAAE,SAAQ,oBAAoB,CAAC,QAAQ,CAAC;IAC3E,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,OAAO,CAAC;CAEf;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,QAAQ,CACtC,SAAQ,oBAAoB,CAAC,QAAQ,CAAC;IACtC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;CAElB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,QAAQ,IACjC,qBAAqB,CAAC,QAAQ,CAAC,GAC/B,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;IACtE,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,EAAE;QACJ,IAAI,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7C,CAAC,WAAW,EAAE,IAAI,EAAE;YAAE,GAAG,EAAE,WAAW,CAAA;SAAE,GAAG,OAAO,CAChD,gBAAgB,CAAC,WAAW,CAAC,CAC9B,CAAC;KACH,CAAC;CACH,KAAK,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|