@trpc/server 10.0.0-alpha.25 → 10.0.0-alpha.28
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/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +99 -19
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
- package/dist/{TRPCError-ddec3395.js → TRPCError-9050a68d.js} +0 -0
- package/dist/{TRPCError-7971540a.mjs → TRPCError-b7fa0c31.mjs} +0 -0
- package/dist/adapters/aws-lambda/index.d.ts +14 -0
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/utils.d.ts +34 -0
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +5 -5
- package/dist/adapters/express.mjs +5 -5
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/fastify/index.mjs +4 -4
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +4 -4
- package/dist/adapters/fetch/index.mjs +4 -4
- package/dist/adapters/fetch/types.d.ts +1 -1
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/lambda/index.d.ts +12 -0
- package/dist/adapters/lambda/index.d.ts.map +1 -0
- package/dist/adapters/next.d.ts +1 -1
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +5 -5
- package/dist/adapters/next.mjs +5 -5
- package/dist/adapters/node-http/index.js +5 -5
- package/dist/adapters/node-http/index.mjs +5 -5
- package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +3 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +2 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -5
- package/dist/adapters/standalone.mjs +5 -5
- package/dist/adapters/ws.d.ts +5 -3
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +4 -9
- package/dist/adapters/ws.mjs +4 -9
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/initTRPC.d.ts +82 -0
- package/dist/core/initTRPC.d.ts.map +1 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +262 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/config.d.ts +38 -0
- package/dist/core/internals/config.d.ts.map +1 -0
- package/dist/core/internals/getParseFn.d.ts +9 -0
- package/dist/core/internals/getParseFn.d.ts.map +1 -0
- package/dist/core/internals/internalProcedure.d.ts +61 -0
- package/dist/core/internals/internalProcedure.d.ts.map +1 -0
- package/dist/core/internals/mergeRouters.d.ts +3 -0
- package/dist/core/internals/mergeRouters.d.ts.map +1 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts +21 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
- package/dist/core/internals/omitPrototype.d.ts +6 -0
- package/dist/core/internals/omitPrototype.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +72 -0
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
- package/dist/core/internals/utils.d.ts +44 -0
- package/dist/core/internals/utils.d.ts.map +1 -0
- package/dist/core/middleware.d.ts +78 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/parser.d.ts +25 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/procedure.d.ts +57 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/router.d.ts +122 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/types.d.ts +17 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/callProcedure.d.ts +4 -1
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/middlewares.d.ts +16 -1
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/procedure.d.ts +10 -1
- package/dist/deprecated/internals/procedure.d.ts.map +1 -0
- package/dist/deprecated/interop.d.ts +34 -0
- package/dist/deprecated/interop.d.ts.map +1 -0
- package/dist/{router.d.ts → deprecated/router.d.ts} +26 -5
- package/dist/deprecated/router.d.ts.map +1 -0
- package/dist/{envelopes-1deb2fa7.mjs → envelopes-af8c2959.mjs} +12 -1
- package/dist/{envelopes-a953b930.js → envelopes-b6dd0367.js} +11 -1
- package/dist/{TRPCError.d.ts → error/TRPCError.d.ts} +2 -2
- package/dist/error/TRPCError.d.ts.map +1 -0
- package/dist/error/formatter.d.ts +33 -0
- package/dist/error/formatter.d.ts.map +1 -0
- package/dist/{internals/errors.d.ts → error/utils.d.ts} +2 -2
- package/dist/error/utils.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +10 -8
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +2 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/{responseMeta.d.ts → types.d.ts} +1 -1
- package/dist/http/types.d.ts.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +713 -28
- package/dist/index.mjs +713 -30
- package/dist/internals/transformTRPCResponse.d.ts +1 -1
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/internals/types.d.ts +23 -0
- package/dist/internals/types.d.ts.map +1 -0
- package/dist/{nodeHTTPRequestHandler-1cdb6383.mjs → nodeHTTPRequestHandler-174459c5.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-848f07b5.js → nodeHTTPRequestHandler-6b7c8622.js} +2 -2
- package/dist/{resolveHTTPResponse-54a79e6c.mjs → resolveHTTPResponse-8657b8de.mjs} +16 -10
- package/dist/{resolveHTTPResponse-ec3dccaa.js → resolveHTTPResponse-fcc8f644.js} +17 -11
- package/dist/rpc/envelopes.d.ts +1 -1
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -1
- package/dist/rpc/index.mjs +1 -1
- package/dist/rpc/internals/invert.d.ts +18 -0
- package/dist/rpc/internals/invert.d.ts.map +1 -0
- package/dist/subscription.js +1 -1
- package/dist/subscription.mjs +1 -1
- package/dist/{transformTRPCResponse-333bed6c.js → transformTRPCResponse-0c261655.js} +0 -27
- package/dist/{transformTRPCResponse-e0cba527.mjs → transformTRPCResponse-747b9a68.mjs} +1 -27
- package/dist/transformer.d.ts +14 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/adapters/aws-lambda/index.ts +156 -0
- package/src/adapters/aws-lambda/utils.ts +91 -0
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -2
- package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
- package/src/adapters/fetch/types.ts +1 -1
- package/src/adapters/lambda/index.ts +18 -0
- package/src/adapters/next.ts +2 -2
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +3 -2
- package/src/adapters/node-http/types.ts +5 -2
- package/src/adapters/standalone.ts +1 -1
- package/src/adapters/ws.ts +16 -13
- package/src/core/index.ts +5 -0
- package/src/core/initTRPC.ts +90 -0
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +366 -0
- package/src/core/internals/config.ts +44 -0
- package/src/core/internals/getParseFn.ts +47 -0
- package/src/core/internals/internalProcedure.ts +265 -0
- package/src/core/internals/mergeRouters.ts +57 -0
- package/src/core/internals/mergeRoutersGeneric.ts +35 -0
- package/src/core/internals/mergeWithoutOverrides.ts +19 -0
- package/src/core/internals/omitPrototype.ts +9 -0
- package/src/core/internals/procedureBuilder.ts +101 -0
- package/src/core/internals/utils.ts +64 -0
- package/src/core/middleware.ts +93 -0
- package/src/core/parser.ts +45 -0
- package/src/core/procedure.ts +72 -0
- package/src/core/router.ts +358 -0
- package/src/core/types.ts +37 -0
- package/src/{internals → deprecated/internals}/callProcedure.ts +4 -1
- package/src/{internals → deprecated/internals}/middlewares.ts +17 -1
- package/src/{internals → deprecated/internals}/procedure.ts +16 -4
- package/src/deprecated/interop.ts +169 -0
- package/src/{router.ts → deprecated/router.ts} +49 -24
- package/src/{TRPCError.ts → error/TRPCError.ts} +3 -3
- package/src/error/formatter.ts +51 -0
- package/src/{internals/errors.ts → error/utils.ts} +1 -1
- package/src/http/index.ts +1 -1
- package/src/http/internals/getHTTPStatusCode.ts +1 -1
- package/src/http/internals/types.ts +10 -12
- package/src/http/resolveHTTPResponse.ts +7 -12
- package/src/http/{responseMeta.ts → types.ts} +0 -0
- package/src/index.ts +3 -2
- package/src/internals/transformTRPCResponse.ts +1 -1
- package/src/internals/types.ts +24 -0
- package/src/rpc/codes.ts +1 -1
- package/src/rpc/envelopes.ts +1 -1
- package/src/rpc/internals/invert.ts +27 -0
- package/src/subscription.ts +1 -1
- package/src/transformer.ts +28 -0
- package/src/types.ts +12 -0
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/http/responseMeta.d.ts.map +0 -1
- package/dist/internals/baseHandlerOptions.d.ts +0 -13
- package/dist/internals/baseHandlerOptions.d.ts.map +0 -1
- package/dist/internals/callProcedure.d.ts.map +0 -1
- package/dist/internals/errors.d.ts.map +0 -1
- package/dist/internals/middlewares.d.ts.map +0 -1
- package/dist/internals/onErrorFunction.d.ts +0 -11
- package/dist/internals/onErrorFunction.d.ts.map +0 -1
- package/dist/internals/procedure.d.ts.map +0 -1
- package/dist/router.d.ts.map +0 -1
- package/src/internals/baseHandlerOptions.ts +0 -13
- package/src/internals/onErrorFunction.ts +0 -11
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { getParseFnOrPassThrough } from '../core/internals/getParseFn';
|
|
2
|
+
import {
|
|
3
|
+
createInputMiddleware,
|
|
4
|
+
createInternalBuilder,
|
|
5
|
+
createOutputMiddleware,
|
|
6
|
+
} from '../core/internals/internalProcedure';
|
|
7
|
+
import { Procedure as NewProcedure } from '../core/procedure';
|
|
8
|
+
import { Router as NewRouter, createRouterFactory } from '../core/router';
|
|
9
|
+
import {
|
|
10
|
+
AnyRouter as AnyOldRouter,
|
|
11
|
+
Router as OldRouter,
|
|
12
|
+
} from '../deprecated/router';
|
|
13
|
+
import { TRPCErrorShape } from '../rpc';
|
|
14
|
+
import { CombinedDataTransformer } from '../transformer';
|
|
15
|
+
import { Procedure as OldProcedure } from './internals/procedure';
|
|
16
|
+
import { ProcedureRecord } from './router';
|
|
17
|
+
|
|
18
|
+
type AnyOldProcedure = OldProcedure<any, any, any, any, any, any, any, any>;
|
|
19
|
+
type MigrateProcedure<TProcedure extends AnyOldProcedure> =
|
|
20
|
+
TProcedure extends OldProcedure<
|
|
21
|
+
infer TInputContext,
|
|
22
|
+
infer TContext,
|
|
23
|
+
infer TMeta,
|
|
24
|
+
infer TInput,
|
|
25
|
+
infer TParsedInput,
|
|
26
|
+
infer TOutput,
|
|
27
|
+
infer _TParsedOutput,
|
|
28
|
+
infer TFinalInput
|
|
29
|
+
>
|
|
30
|
+
? NewProcedure<{
|
|
31
|
+
_ctx_in: TInputContext;
|
|
32
|
+
_ctx_out: TContext;
|
|
33
|
+
_meta: TMeta;
|
|
34
|
+
_input_in: TInput;
|
|
35
|
+
_input_out: TParsedInput;
|
|
36
|
+
_output_in: TOutput;
|
|
37
|
+
_output_out: TFinalInput;
|
|
38
|
+
}>
|
|
39
|
+
: never;
|
|
40
|
+
|
|
41
|
+
export type MigrateProcedureRecord<T extends ProcedureRecord<any>> = {
|
|
42
|
+
[K in keyof T]: MigrateProcedure<T[K]>;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export type MigrateRouter<
|
|
46
|
+
TInputContext,
|
|
47
|
+
TContext,
|
|
48
|
+
TMeta extends Record<string, any>,
|
|
49
|
+
TQueries extends ProcedureRecord<
|
|
50
|
+
TInputContext,
|
|
51
|
+
TContext,
|
|
52
|
+
any,
|
|
53
|
+
any,
|
|
54
|
+
any,
|
|
55
|
+
any,
|
|
56
|
+
any
|
|
57
|
+
>,
|
|
58
|
+
TMutations extends ProcedureRecord<
|
|
59
|
+
TInputContext,
|
|
60
|
+
TContext,
|
|
61
|
+
any,
|
|
62
|
+
any,
|
|
63
|
+
any,
|
|
64
|
+
any,
|
|
65
|
+
any
|
|
66
|
+
>,
|
|
67
|
+
TSubscriptions extends ProcedureRecord<
|
|
68
|
+
TInputContext,
|
|
69
|
+
TContext,
|
|
70
|
+
unknown,
|
|
71
|
+
unknown,
|
|
72
|
+
any,
|
|
73
|
+
unknown,
|
|
74
|
+
unknown
|
|
75
|
+
>,
|
|
76
|
+
TErrorShape extends TRPCErrorShape<number>,
|
|
77
|
+
> = NewRouter<{
|
|
78
|
+
_ctx: TInputContext;
|
|
79
|
+
_errorShape: TErrorShape;
|
|
80
|
+
_meta: TMeta;
|
|
81
|
+
errorFormatter: never;
|
|
82
|
+
mutations: MigrateProcedureRecord<TMutations>;
|
|
83
|
+
queries: MigrateProcedureRecord<TQueries>;
|
|
84
|
+
subscriptions: MigrateProcedureRecord<TSubscriptions>;
|
|
85
|
+
transformer: CombinedDataTransformer;
|
|
86
|
+
}>;
|
|
87
|
+
|
|
88
|
+
export type MigrateOldRouter<TRouter extends AnyOldRouter> =
|
|
89
|
+
TRouter extends OldRouter<
|
|
90
|
+
infer TInputContext,
|
|
91
|
+
infer TContext,
|
|
92
|
+
infer TMeta,
|
|
93
|
+
infer TQueries,
|
|
94
|
+
infer TMutations,
|
|
95
|
+
infer TSubscriptions,
|
|
96
|
+
infer TErrorShape
|
|
97
|
+
>
|
|
98
|
+
? MigrateRouter<
|
|
99
|
+
TInputContext,
|
|
100
|
+
TContext,
|
|
101
|
+
TMeta,
|
|
102
|
+
TQueries,
|
|
103
|
+
TMutations,
|
|
104
|
+
TSubscriptions,
|
|
105
|
+
TErrorShape
|
|
106
|
+
>
|
|
107
|
+
: never;
|
|
108
|
+
|
|
109
|
+
function migrateProcedure<TProcedure extends AnyOldProcedure>(
|
|
110
|
+
oldProc: TProcedure,
|
|
111
|
+
): MigrateProcedure<TProcedure> {
|
|
112
|
+
const def = oldProc._def();
|
|
113
|
+
|
|
114
|
+
const inputParser = getParseFnOrPassThrough(def.inputParser);
|
|
115
|
+
const outputParser = getParseFnOrPassThrough(def.outputParser);
|
|
116
|
+
|
|
117
|
+
const inputMiddleware = createInputMiddleware(inputParser);
|
|
118
|
+
|
|
119
|
+
const builder = createInternalBuilder({
|
|
120
|
+
input: def.inputParser,
|
|
121
|
+
middlewares: [
|
|
122
|
+
...(def.middlewares as any),
|
|
123
|
+
inputMiddleware,
|
|
124
|
+
createOutputMiddleware(outputParser),
|
|
125
|
+
],
|
|
126
|
+
meta: def.meta,
|
|
127
|
+
output: def.outputParser,
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
const proc = builder.resolve((opts) => def.resolver(opts as any));
|
|
131
|
+
|
|
132
|
+
return proc as any;
|
|
133
|
+
}
|
|
134
|
+
export function migrateRouter<TOldRouter extends AnyOldRouter>(
|
|
135
|
+
oldRouter: TOldRouter,
|
|
136
|
+
): MigrateOldRouter<TOldRouter> {
|
|
137
|
+
const errorFormatter = oldRouter._def.errorFormatter;
|
|
138
|
+
const transformer = oldRouter._def.transformer;
|
|
139
|
+
|
|
140
|
+
type ProcRecord = Record<string, NewProcedure<any>>;
|
|
141
|
+
|
|
142
|
+
const queries: ProcRecord = {};
|
|
143
|
+
const mutations: ProcRecord = {};
|
|
144
|
+
const subscriptions: ProcRecord = {};
|
|
145
|
+
for (const [name, procedure] of Object.entries(oldRouter._def.queries)) {
|
|
146
|
+
queries[name] = migrateProcedure(procedure as any);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
for (const [name, procedure] of Object.entries(oldRouter._def.mutations)) {
|
|
150
|
+
mutations[name] = migrateProcedure(procedure as any);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
for (const [name, procedure] of Object.entries(
|
|
154
|
+
oldRouter._def.subscriptions,
|
|
155
|
+
)) {
|
|
156
|
+
subscriptions[name] = migrateProcedure(procedure as any);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const newRouter = createRouterFactory<any>({
|
|
160
|
+
transformer,
|
|
161
|
+
errorFormatter,
|
|
162
|
+
})({
|
|
163
|
+
mutations,
|
|
164
|
+
queries,
|
|
165
|
+
subscriptions,
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
return newRouter as any;
|
|
169
|
+
}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
2
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { assertNotBrowser } from '../assertNotBrowser';
|
|
5
|
+
import { TRPCError } from '../error/TRPCError';
|
|
6
|
+
import { defaultFormatter } from '../error/formatter';
|
|
7
|
+
import { getHTTPStatusCodeFromError } from '../http/internals/getHTTPStatusCode';
|
|
8
|
+
import { Observable, inferObservableValue } from '../observable';
|
|
9
|
+
import {
|
|
10
|
+
TRPCErrorShape,
|
|
11
|
+
TRPC_ERROR_CODES_BY_KEY,
|
|
12
|
+
TRPC_ERROR_CODE_KEY,
|
|
13
|
+
TRPC_ERROR_CODE_NUMBER,
|
|
14
|
+
} from '../rpc';
|
|
15
|
+
import {
|
|
16
|
+
CombinedDataTransformer,
|
|
17
|
+
DataTransformerOptions,
|
|
18
|
+
defaultTransformer,
|
|
19
|
+
} from '../transformer';
|
|
20
|
+
import { Prefixer, ThenArg, flatten } from '../types';
|
|
7
21
|
import { MiddlewareFunction } from './internals/middlewares';
|
|
8
22
|
import {
|
|
9
23
|
CreateProcedureOptions,
|
|
@@ -15,15 +29,7 @@ import {
|
|
|
15
29
|
createProcedure,
|
|
16
30
|
inferProcedureFromOptions,
|
|
17
31
|
} from './internals/procedure';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
TRPCErrorShape,
|
|
21
|
-
TRPC_ERROR_CODES_BY_KEY,
|
|
22
|
-
TRPC_ERROR_CODE_KEY,
|
|
23
|
-
TRPC_ERROR_CODE_NUMBER,
|
|
24
|
-
} from './rpc';
|
|
25
|
-
import { CombinedDataTransformer, DataTransformerOptions } from './transformer';
|
|
26
|
-
import { Prefixer, ThenArg, flatten } from './types';
|
|
32
|
+
import { MigrateRouter, migrateRouter } from './interop';
|
|
27
33
|
|
|
28
34
|
assertNotBrowser();
|
|
29
35
|
|
|
@@ -31,11 +37,13 @@ export type { Procedure } from './internals/procedure';
|
|
|
31
37
|
|
|
32
38
|
/**
|
|
33
39
|
* @public
|
|
40
|
+
* @deprecated
|
|
34
41
|
*/
|
|
35
42
|
export type ProcedureType = 'query' | 'mutation' | 'subscription';
|
|
36
43
|
|
|
37
44
|
/**
|
|
38
45
|
* @internal
|
|
46
|
+
* @deprecated
|
|
39
47
|
*/
|
|
40
48
|
export type ProcedureRecord<
|
|
41
49
|
TInputContext = any,
|
|
@@ -60,6 +68,7 @@ export type ProcedureRecord<
|
|
|
60
68
|
|
|
61
69
|
/**
|
|
62
70
|
* @public
|
|
71
|
+
* @deprecated
|
|
63
72
|
*/
|
|
64
73
|
export type inferProcedureInput<
|
|
65
74
|
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
@@ -71,12 +80,14 @@ export type inferProcedureInput<
|
|
|
71
80
|
|
|
72
81
|
/**
|
|
73
82
|
* @public
|
|
83
|
+
* @deprecated
|
|
74
84
|
*/
|
|
75
85
|
export type inferAsyncReturnType<TFunction extends (...args: any) => any> =
|
|
76
86
|
ThenArg<ReturnType<TFunction>>;
|
|
77
87
|
|
|
78
88
|
/**
|
|
79
89
|
* @public
|
|
90
|
+
* @deprecated
|
|
80
91
|
*/
|
|
81
92
|
export type inferProcedureOutput<
|
|
82
93
|
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
@@ -85,6 +96,7 @@ export type inferProcedureOutput<
|
|
|
85
96
|
/**
|
|
86
97
|
* @public
|
|
87
98
|
* @beta
|
|
99
|
+
* @deprecated
|
|
88
100
|
*/
|
|
89
101
|
export type inferSubscriptionOutput<
|
|
90
102
|
TRouter extends AnyRouter,
|
|
@@ -103,6 +115,7 @@ function getDataTransformer(
|
|
|
103
115
|
}
|
|
104
116
|
/**
|
|
105
117
|
* @internal
|
|
118
|
+
* @deprecated
|
|
106
119
|
*/
|
|
107
120
|
export type inferHandlerInput<
|
|
108
121
|
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
@@ -124,6 +137,7 @@ type inferHandlerFn<TProcedures extends ProcedureRecord> = <
|
|
|
124
137
|
|
|
125
138
|
/**
|
|
126
139
|
* @internal
|
|
140
|
+
* @deprecated
|
|
127
141
|
*/
|
|
128
142
|
export type inferRouterContext<TRouter extends AnyRouter> = Parameters<
|
|
129
143
|
TRouter['createCaller']
|
|
@@ -146,6 +160,7 @@ export type inferRouterMeta<TRouter extends AnyRouter> = TRouter extends Router<
|
|
|
146
160
|
|
|
147
161
|
/**
|
|
148
162
|
* @public
|
|
163
|
+
* @deprecated
|
|
149
164
|
*/
|
|
150
165
|
export type AnyRouter<TContext = any> = Router<
|
|
151
166
|
any,
|
|
@@ -159,6 +174,7 @@ export type AnyRouter<TContext = any> = Router<
|
|
|
159
174
|
|
|
160
175
|
/**
|
|
161
176
|
* @internal
|
|
177
|
+
* @deprecated
|
|
162
178
|
*/
|
|
163
179
|
export type inferRouterError<TRouter extends AnyRouter> = ReturnType<
|
|
164
180
|
TRouter['getErrorShape']
|
|
@@ -174,6 +190,7 @@ const PROCEDURE_DEFINITION_MAP: Record<
|
|
|
174
190
|
|
|
175
191
|
/**
|
|
176
192
|
* @internal
|
|
193
|
+
* @deprecated
|
|
177
194
|
*/
|
|
178
195
|
export type ErrorFormatter<TContext, TShape extends TRPCErrorShape<number>> = ({
|
|
179
196
|
error,
|
|
@@ -195,6 +212,7 @@ type DefaultErrorData = {
|
|
|
195
212
|
|
|
196
213
|
/**
|
|
197
214
|
* @internal
|
|
215
|
+
* @deprecated
|
|
198
216
|
*/
|
|
199
217
|
export interface DefaultErrorShape
|
|
200
218
|
extends TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, DefaultErrorData> {
|
|
@@ -219,18 +237,6 @@ function safeObject<TObj1, TObj2>(obj1: TObj1, obj2: TObj2): TObj1 & TObj2;
|
|
|
219
237
|
function safeObject(...args: unknown[]) {
|
|
220
238
|
return Object.assign(Object.create(null), ...args);
|
|
221
239
|
}
|
|
222
|
-
const defaultFormatter: ErrorFormatter<any, any> = ({
|
|
223
|
-
shape,
|
|
224
|
-
}: {
|
|
225
|
-
shape: DefaultErrorShape;
|
|
226
|
-
}) => {
|
|
227
|
-
return shape;
|
|
228
|
-
};
|
|
229
|
-
const defaultTransformer: CombinedDataTransformer = {
|
|
230
|
-
input: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
231
|
-
output: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
232
|
-
};
|
|
233
|
-
|
|
234
240
|
type SwapProcedureContext<
|
|
235
241
|
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
236
242
|
TNewContext,
|
|
@@ -264,6 +270,7 @@ type SwapContext<
|
|
|
264
270
|
|
|
265
271
|
/**
|
|
266
272
|
* @internal The type signature of this class may change without warning.
|
|
273
|
+
* @deprecated
|
|
267
274
|
*/
|
|
268
275
|
export class Router<
|
|
269
276
|
TInputContext,
|
|
@@ -854,8 +861,26 @@ export class Router<
|
|
|
854
861
|
> {
|
|
855
862
|
return this as any;
|
|
856
863
|
}
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* Interop mode for v9.x -> v10.x
|
|
867
|
+
*/
|
|
868
|
+
public interop(): MigrateRouter<
|
|
869
|
+
TInputContext,
|
|
870
|
+
TContext,
|
|
871
|
+
TMeta,
|
|
872
|
+
TQueries,
|
|
873
|
+
TMutations,
|
|
874
|
+
TSubscriptions,
|
|
875
|
+
TErrorShape
|
|
876
|
+
> {
|
|
877
|
+
return migrateRouter(this);
|
|
878
|
+
}
|
|
857
879
|
}
|
|
858
880
|
|
|
881
|
+
/**
|
|
882
|
+
* @deprecated
|
|
883
|
+
*/
|
|
859
884
|
export function router<TContext, TMeta extends Record<string, any> = {}>() {
|
|
860
885
|
return new Router<TContext, TContext, TMeta, {}, {}, {}, DefaultErrorShape>();
|
|
861
886
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getMessageFromUnkownError } from '
|
|
2
|
-
import { TRPC_ERROR_CODE_KEY } from '
|
|
1
|
+
import { getMessageFromUnkownError } from '../error/utils';
|
|
2
|
+
import { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
|
|
3
3
|
|
|
4
4
|
export class TRPCError extends Error {
|
|
5
|
-
public readonly cause
|
|
5
|
+
public readonly cause?;
|
|
6
6
|
public readonly code;
|
|
7
7
|
|
|
8
8
|
constructor(opts: {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ProcedureType } from '../core';
|
|
2
|
+
import {
|
|
3
|
+
TRPCErrorShape,
|
|
4
|
+
TRPC_ERROR_CODE_KEY,
|
|
5
|
+
TRPC_ERROR_CODE_NUMBER,
|
|
6
|
+
} from '../rpc';
|
|
7
|
+
import { TRPCError } from './TRPCError';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export type ErrorFormatter<TContext, TShape extends TRPCErrorShape<number>> = ({
|
|
13
|
+
error,
|
|
14
|
+
}: {
|
|
15
|
+
error: TRPCError;
|
|
16
|
+
type: ProcedureType | 'unknown';
|
|
17
|
+
path: string | undefined;
|
|
18
|
+
input: unknown;
|
|
19
|
+
ctx: undefined | TContext;
|
|
20
|
+
shape: DefaultErrorShape;
|
|
21
|
+
}) => TShape;
|
|
22
|
+
|
|
23
|
+
export type ErrorFormatterShape<T> = T extends ErrorFormatter<any, infer TShape>
|
|
24
|
+
? TShape
|
|
25
|
+
: DefaultErrorShape;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export type DefaultErrorData = {
|
|
30
|
+
code: TRPC_ERROR_CODE_KEY;
|
|
31
|
+
httpStatus: number;
|
|
32
|
+
path?: string;
|
|
33
|
+
stack?: string;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export interface DefaultErrorShape
|
|
40
|
+
extends TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, DefaultErrorData> {
|
|
41
|
+
message: string;
|
|
42
|
+
code: TRPC_ERROR_CODE_NUMBER;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const defaultFormatter: ErrorFormatter<any, any> = ({
|
|
46
|
+
shape,
|
|
47
|
+
}: {
|
|
48
|
+
shape: DefaultErrorShape;
|
|
49
|
+
}) => {
|
|
50
|
+
return shape;
|
|
51
|
+
};
|
package/src/http/index.ts
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
AnyRouter,
|
|
5
|
-
ProcedureType,
|
|
6
|
-
inferRouterContext,
|
|
7
|
-
inferRouterError,
|
|
8
|
-
} from '../../router';
|
|
1
|
+
import { AnyRouter, ProcedureType, inferRouterParams } from '../../core';
|
|
2
|
+
import { TRPCError } from '../../error/TRPCError';
|
|
3
|
+
import { BaseHandlerOptions } from '../../internals/types';
|
|
9
4
|
import { TRPCResponse } from '../../rpc';
|
|
10
5
|
import { Dict } from '../../types';
|
|
11
|
-
import { ResponseMeta } from '../
|
|
6
|
+
import { ResponseMeta } from '../types';
|
|
12
7
|
|
|
13
8
|
export type HTTPHeaders = Dict<string | string[]>;
|
|
14
9
|
|
|
@@ -25,9 +20,12 @@ export interface HTTPRequest {
|
|
|
25
20
|
body: unknown;
|
|
26
21
|
}
|
|
27
22
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export type ResponseMetaFn<TRouter extends AnyRouter> = (opts: {
|
|
27
|
+
data: TRPCResponse<unknown, inferRouterParams<TRouter>['_error']>[];
|
|
28
|
+
ctx?: inferRouterParams<TRouter>['_ctx'];
|
|
31
29
|
/**
|
|
32
30
|
* The different tRPC paths requested
|
|
33
31
|
**/
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
import { TRPCError } from '../TRPCError';
|
|
3
|
-
import { callProcedure } from '../internals/callProcedure';
|
|
4
|
-
import { getCauseFromUnknown, getErrorFromUnknown } from '../internals/errors';
|
|
5
|
-
import { transformTRPCResponse } from '../internals/transformTRPCResponse';
|
|
6
2
|
import {
|
|
7
3
|
AnyRouter,
|
|
8
4
|
ProcedureType,
|
|
9
5
|
inferRouterContext,
|
|
10
6
|
inferRouterError,
|
|
11
|
-
} from '../
|
|
7
|
+
} from '../core';
|
|
8
|
+
import { TRPCError } from '../error/TRPCError';
|
|
9
|
+
import { getCauseFromUnknown, getErrorFromUnknown } from '../error/utils';
|
|
10
|
+
import { transformTRPCResponse } from '../internals/transformTRPCResponse';
|
|
12
11
|
import { TRPCResponse } from '../rpc';
|
|
13
12
|
import { Maybe } from '../types';
|
|
14
13
|
import { getHTTPStatusCode } from './internals/getHTTPStatusCode';
|
|
@@ -170,14 +169,10 @@ export async function resolveHTTPResponse<
|
|
|
170
169
|
const rawResults = await Promise.all(
|
|
171
170
|
paths.map(async (path, index) => {
|
|
172
171
|
const input = inputs[index];
|
|
172
|
+
|
|
173
173
|
try {
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
router,
|
|
177
|
-
path,
|
|
178
|
-
input,
|
|
179
|
-
type,
|
|
180
|
-
});
|
|
174
|
+
const caller = router.createCaller(ctx);
|
|
175
|
+
const output = await caller[type](path, input as any);
|
|
181
176
|
return {
|
|
182
177
|
input,
|
|
183
178
|
path,
|
|
File without changes
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './assertNotBrowser';
|
|
2
2
|
export * from './http';
|
|
3
3
|
export * from './transformer';
|
|
4
|
-
export * from './TRPCError';
|
|
4
|
+
export * from './error/TRPCError';
|
|
5
5
|
export * from './types';
|
|
6
|
-
export
|
|
6
|
+
export { router } from './deprecated/router';
|
|
7
|
+
export * from './core';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { inferRouterParams } from '../core';
|
|
2
|
+
import { ProcedureType } from '../core';
|
|
3
|
+
import { AnyRouter } from '../core/router';
|
|
4
|
+
import { TRPCError } from '../error/TRPCError';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Base interface for any response handler
|
|
8
|
+
*/
|
|
9
|
+
export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
|
|
10
|
+
onError?: OnErrorFunction<TRouter, TRequest>;
|
|
11
|
+
batching?: {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
};
|
|
14
|
+
router: TRouter;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
|
|
18
|
+
error: TRPCError;
|
|
19
|
+
type: ProcedureType | 'unknown';
|
|
20
|
+
path: string | undefined;
|
|
21
|
+
req: TRequest;
|
|
22
|
+
input: unknown;
|
|
23
|
+
ctx: undefined | inferRouterParams<TRouter>['_ctx'];
|
|
24
|
+
}) => void;
|
package/src/rpc/codes.ts
CHANGED
package/src/rpc/envelopes.ts
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
type KeyFromValue<V, T extends Record<PropertyKey, PropertyKey>> = {
|
|
5
|
+
[K in keyof T]: V extends T[K] ? K : never;
|
|
6
|
+
}[keyof T];
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
type Invert<T extends Record<PropertyKey, PropertyKey>> = {
|
|
12
|
+
[V in T[keyof T]]: KeyFromValue<V, T>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export function invert<T extends Record<PropertyKey, PropertyKey>>(
|
|
19
|
+
obj: T,
|
|
20
|
+
): Invert<T> {
|
|
21
|
+
const newObj = Object.create(null) as any;
|
|
22
|
+
for (const key in obj) {
|
|
23
|
+
const v = obj[key];
|
|
24
|
+
newObj[v] = key;
|
|
25
|
+
}
|
|
26
|
+
return newObj;
|
|
27
|
+
}
|
package/src/subscription.ts
CHANGED
package/src/transformer.ts
CHANGED
|
@@ -35,3 +35,31 @@ export type DataTransformerOptions = DataTransformer | CombinedDataTransformer;
|
|
|
35
35
|
export type ClientDataTransformerOptions =
|
|
36
36
|
| DataTransformer
|
|
37
37
|
| CombinedDataTransformerClient;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export function getDataTransformer(
|
|
43
|
+
transformer: DataTransformerOptions,
|
|
44
|
+
): CombinedDataTransformer {
|
|
45
|
+
if ('input' in transformer) {
|
|
46
|
+
return transformer;
|
|
47
|
+
}
|
|
48
|
+
return { input: transformer, output: transformer };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export type DefaultDataTransformer = CombinedDataTransformer & {
|
|
55
|
+
_default: true;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
export const defaultTransformer: DefaultDataTransformer = {
|
|
62
|
+
_default: true,
|
|
63
|
+
input: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
64
|
+
output: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
65
|
+
};
|
package/src/types.ts
CHANGED
|
@@ -47,9 +47,21 @@ export type ThenArg<T> = T extends PromiseLike<infer U> ? ThenArg<U> : T;
|
|
|
47
47
|
*/
|
|
48
48
|
export type Dict<T> = Record<string, T | undefined>;
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
54
|
+
|
|
50
55
|
/**
|
|
51
56
|
* @internal
|
|
57
|
+
*
|
|
52
58
|
* Creates a "lower-priority" type inference.
|
|
53
59
|
* https://github.com/microsoft/TypeScript/issues/14829#issuecomment-322267089
|
|
54
60
|
*/
|
|
55
61
|
export type InferLast<T> = T & { [K in keyof T]: T[K] };
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
export type inferAsyncReturnType<TFunction extends (...args: any) => any> =
|
|
67
|
+
ThenArg<ReturnType<TFunction>>;
|
package/dist/TRPCError.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TRPCError.d.ts","sourceRoot":"","sources":["../src/TRPCError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1C,SAAgB,IAAI,iOAAC;gBAET,IAAI,EAAE;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;CAeF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responseMeta.d.ts","sourceRoot":"","sources":["../../src/http/responseMeta.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AnyRouter } from '../router';
|
|
2
|
-
import { OnErrorFunction } from './onErrorFunction';
|
|
3
|
-
/**
|
|
4
|
-
* Base interface for any response handler
|
|
5
|
-
*/
|
|
6
|
-
export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
|
|
7
|
-
onError?: OnErrorFunction<TRouter, TRequest>;
|
|
8
|
-
batching?: {
|
|
9
|
-
enabled: boolean;
|
|
10
|
-
};
|
|
11
|
-
router: TRouter;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=baseHandlerOptions.d.ts.map
|