@trpc/server 10.0.0-alpha.42 → 10.0.0-alpha.45
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.dev.js +4 -4
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +4 -4
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +4 -4
- package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +3 -3
- package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +3 -3
- package/adapters/express/dist/trpc-server-adapters-express.esm.js +3 -3
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +3 -3
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +3 -3
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +3 -3
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +4 -4
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +4 -4
- package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +4 -4
- package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +3 -3
- package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +3 -3
- package/adapters/next/dist/trpc-server-adapters-next.esm.js +3 -3
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +3 -3
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +3 -3
- package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +3 -3
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +3 -3
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +3 -3
- package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +3 -3
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +2 -2
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +2 -2
- package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +2 -2
- package/dist/adapters/aws-lambda/index.js +3 -3
- package/dist/adapters/aws-lambda/index.mjs +3 -3
- package/dist/adapters/express.js +3 -3
- package/dist/adapters/express.mjs +3 -3
- package/dist/adapters/fastify/index.js +2 -2
- package/dist/adapters/fastify/index.mjs +2 -2
- package/dist/adapters/fetch/index.js +2 -2
- package/dist/adapters/fetch/index.mjs +2 -2
- package/dist/adapters/next.js +3 -3
- package/dist/adapters/next.mjs +3 -3
- package/dist/adapters/node-http/index.js +3 -3
- package/dist/adapters/node-http/index.mjs +3 -3
- package/dist/adapters/standalone.js +3 -3
- package/dist/adapters/standalone.mjs +3 -3
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/initTRPC.d.ts +8 -0
- package/dist/core/initTRPC.d.ts.map +1 -1
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +20 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -1
- package/dist/core/router.d.ts +31 -23
- package/dist/core/router.d.ts.map +1 -1
- package/dist/deprecated/interop.d.ts +29 -2
- package/dist/deprecated/interop.d.ts.map +1 -1
- package/dist/deprecated/router.d.ts.map +1 -1
- package/dist/{envelopes-b6dd0367.js → envelopes-2ae27c9f.js} +1 -4
- package/dist/{envelopes-af8c2959.mjs → envelopes-b9f49d4d.mjs} +1 -4
- package/dist/index.js +3 -4
- package/dist/index.mjs +4 -5
- package/dist/internals/transformTRPCResponse.d.ts +2 -2
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-6b7c8622.js → nodeHTTPRequestHandler-bee7aacc.js} +1 -1
- package/dist/{nodeHTTPRequestHandler-65cf2218.mjs → nodeHTTPRequestHandler-f1656eba.mjs} +1 -1
- package/dist/{resolveHTTPResponse-95634936.mjs → resolveHTTPResponse-455f1e51.mjs} +1 -1
- package/dist/{resolveHTTPResponse-fcc8f644.js → resolveHTTPResponse-5d90abc5.js} +1 -1
- package/dist/{router-9d12560f.js → router-4e50a6ac.js} +5 -4
- package/dist/{router-6665b0ee.mjs → router-a3db8f3a.mjs} +5 -4
- package/dist/rpc/envelopes.d.ts +22 -21
- 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/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/core/index.ts +5 -1
- package/src/core/initTRPC.ts +0 -1
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +20 -0
- package/src/core/router.ts +29 -44
- package/src/deprecated/interop.ts +47 -4
- package/src/deprecated/router.ts +0 -2
- package/src/rpc/envelopes.ts +32 -25
- package/src/types.ts +0 -1
package/src/core/router.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
1
|
import { inferProcedureOutput } from '.';
|
|
3
|
-
import { Filter
|
|
2
|
+
import { Filter } from '..';
|
|
4
3
|
import { TRPCError } from '../error/TRPCError';
|
|
5
4
|
import {
|
|
6
5
|
DefaultErrorShape,
|
|
@@ -25,7 +24,8 @@ import {
|
|
|
25
24
|
} from './procedure';
|
|
26
25
|
import { ProcedureType, procedureTypes } from './types';
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
/** @internal **/
|
|
28
|
+
export type ProcedureRecord = Record<string, Procedure<any>>;
|
|
29
29
|
|
|
30
30
|
export type ProcedureRouterRecord = Record<string, Procedure<any> | AnyRouter>;
|
|
31
31
|
|
|
@@ -36,28 +36,6 @@ export interface ProcedureStructure {
|
|
|
36
36
|
procedures: ProcedureRecord;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
type ObjKeyof<T> = T extends object ? keyof T : never;
|
|
40
|
-
type KeyofKeyof<T> = ObjKeyof<T> | { [K in keyof T]: ObjKeyof<T[K]> }[keyof T];
|
|
41
|
-
type StripNever<T> = Pick<
|
|
42
|
-
T,
|
|
43
|
-
{ [K in keyof T]: [T[K]] extends [never] ? never : K }[keyof T]
|
|
44
|
-
>;
|
|
45
|
-
type Lookup<T, K> = T extends any ? (K extends keyof T ? T[K] : never) : never;
|
|
46
|
-
type SimpleFlatten<T> = T extends object
|
|
47
|
-
? StripNever<{
|
|
48
|
-
[K in KeyofKeyof<T>]:
|
|
49
|
-
| Exclude<K extends keyof T ? T[K] : never, object>
|
|
50
|
-
| { [P in keyof T]: Lookup<T[P], K> }[keyof T];
|
|
51
|
-
}>
|
|
52
|
-
: T;
|
|
53
|
-
|
|
54
|
-
type PrefixedProcedures<T extends ProcedureRouterRecord> = {
|
|
55
|
-
[K in keyof T]: T[K] extends AnyRouter
|
|
56
|
-
? T[K] extends Procedure<any>
|
|
57
|
-
? never
|
|
58
|
-
: Prefixer<T[K]['_def']['procedures'], `${K & string}.`>
|
|
59
|
-
: never;
|
|
60
|
-
};
|
|
61
39
|
export interface RouterDef<
|
|
62
40
|
// FIXME this should use RootConfig
|
|
63
41
|
TContext,
|
|
@@ -80,21 +58,32 @@ export interface RouterDef<
|
|
|
80
58
|
_meta: TMeta;
|
|
81
59
|
errorFormatter: ErrorFormatter<TContext, TErrorShape>;
|
|
82
60
|
transformer: CombinedDataTransformer;
|
|
83
|
-
// FIXME this is slow
|
|
84
|
-
|
|
85
|
-
|
|
61
|
+
// FIXME this is slow:
|
|
62
|
+
// - I think this has to go & be replaced by something by only using `TRecord` without `& SimpleFlatten...`
|
|
63
|
+
// - Potentially, we have a `legacyProcedures` record where we only register the old things that are availble by string path
|
|
64
|
+
procedures: TRecord;
|
|
65
|
+
/**
|
|
66
|
+
* V9 procedures
|
|
67
|
+
* @deprecated
|
|
68
|
+
*/
|
|
69
|
+
legacy: {};
|
|
86
70
|
routers: Filter<TRecord, Router<any>>;
|
|
87
71
|
record: TRecord;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
72
|
+
/**
|
|
73
|
+
* FIXME remove?
|
|
74
|
+
* @deprecated
|
|
75
|
+
*/
|
|
76
|
+
subscriptions: Filter<TRecord, SubscriptionProcedure<any> & { _old: true }>;
|
|
77
|
+
/**
|
|
78
|
+
* FIXME remove?
|
|
79
|
+
* @deprecated
|
|
80
|
+
*/
|
|
81
|
+
queries: Filter<TRecord, QueryProcedure<any> & { _old: true }>;
|
|
82
|
+
/**
|
|
83
|
+
* FIXME remove?
|
|
84
|
+
* @deprecated
|
|
85
|
+
*/
|
|
86
|
+
mutations: Filter<TRecord, MutationProcedure<any> & { _old: true }>;
|
|
98
87
|
}
|
|
99
88
|
|
|
100
89
|
export type AnyRouterDef<TContext = any> = RouterDef<TContext, any, any, any>;
|
|
@@ -156,12 +145,7 @@ type RouterCaller<TDef extends AnyRouterDef> = (ctx: TDef['_ctx']) => {
|
|
|
156
145
|
} & DecoratedProcedureRecord<TDef['record']>;
|
|
157
146
|
|
|
158
147
|
export interface Router<TDef extends AnyRouterDef> {
|
|
159
|
-
_def:
|
|
160
|
-
TDef['_ctx'],
|
|
161
|
-
TDef['_errorShape'],
|
|
162
|
-
TDef['_meta'],
|
|
163
|
-
TDef['record']
|
|
164
|
-
>;
|
|
148
|
+
_def: TDef;
|
|
165
149
|
/** @deprecated **/
|
|
166
150
|
errorFormatter: TDef['errorFormatter'];
|
|
167
151
|
/** @deprecated **/
|
|
@@ -259,6 +243,7 @@ export function createRouterFactory<TConfig extends RootConfig>(
|
|
|
259
243
|
|
|
260
244
|
const _def: AnyRouterDef<TConfig['ctx']> = {
|
|
261
245
|
router: true,
|
|
246
|
+
legacy: {},
|
|
262
247
|
procedures: {},
|
|
263
248
|
...emptyRouter,
|
|
264
249
|
...result,
|
|
@@ -53,16 +53,26 @@ type convertProcedureParams<
|
|
|
53
53
|
>
|
|
54
54
|
: never;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated
|
|
58
|
+
*/
|
|
59
|
+
export type OldProcedureTag = {
|
|
60
|
+
_old: true;
|
|
61
|
+
};
|
|
62
|
+
|
|
56
63
|
type MigrateProcedure<
|
|
57
64
|
TConfig extends RootConfig,
|
|
58
65
|
TProcedure extends AnyOldProcedure,
|
|
59
66
|
TType extends ProcedureType,
|
|
60
67
|
> = TType extends 'query'
|
|
61
|
-
? QueryProcedure<convertProcedureParams<TConfig, TProcedure>>
|
|
68
|
+
? QueryProcedure<convertProcedureParams<TConfig, TProcedure>> &
|
|
69
|
+
OldProcedureTag
|
|
62
70
|
: TType extends 'mutation'
|
|
63
|
-
? MutationProcedure<convertProcedureParams<TConfig, TProcedure>>
|
|
71
|
+
? MutationProcedure<convertProcedureParams<TConfig, TProcedure>> &
|
|
72
|
+
OldProcedureTag
|
|
64
73
|
: TType extends 'subscription'
|
|
65
|
-
? SubscriptionProcedure<convertProcedureParams<TConfig, TProcedure>>
|
|
74
|
+
? SubscriptionProcedure<convertProcedureParams<TConfig, TProcedure>> &
|
|
75
|
+
OldProcedureTag
|
|
66
76
|
: never;
|
|
67
77
|
|
|
68
78
|
export type MigrateProcedureRecord<
|
|
@@ -106,7 +116,40 @@ export type MigrateRouter<
|
|
|
106
116
|
>,
|
|
107
117
|
TErrorShape extends TRPCErrorShape<any>,
|
|
108
118
|
> = NewRouter<
|
|
109
|
-
|
|
119
|
+
{
|
|
120
|
+
legacy: {
|
|
121
|
+
queries: MigrateProcedureRecord<
|
|
122
|
+
CreateRootConfig<{
|
|
123
|
+
ctx: TInputContext;
|
|
124
|
+
errorShape: TErrorShape;
|
|
125
|
+
meta: TMeta;
|
|
126
|
+
transformer: CombinedDataTransformer;
|
|
127
|
+
}>,
|
|
128
|
+
TQueries,
|
|
129
|
+
'query'
|
|
130
|
+
>;
|
|
131
|
+
mutations: MigrateProcedureRecord<
|
|
132
|
+
CreateRootConfig<{
|
|
133
|
+
ctx: TInputContext;
|
|
134
|
+
errorShape: TErrorShape;
|
|
135
|
+
meta: TMeta;
|
|
136
|
+
transformer: CombinedDataTransformer;
|
|
137
|
+
}>,
|
|
138
|
+
TMutations,
|
|
139
|
+
'mutation'
|
|
140
|
+
>;
|
|
141
|
+
subscriptions: MigrateProcedureRecord<
|
|
142
|
+
CreateRootConfig<{
|
|
143
|
+
ctx: TInputContext;
|
|
144
|
+
errorShape: TErrorShape;
|
|
145
|
+
meta: TMeta;
|
|
146
|
+
transformer: CombinedDataTransformer;
|
|
147
|
+
}>,
|
|
148
|
+
TSubscriptions,
|
|
149
|
+
'subscription'
|
|
150
|
+
>;
|
|
151
|
+
};
|
|
152
|
+
} & RouterDef<
|
|
110
153
|
TInputContext,
|
|
111
154
|
TErrorShape,
|
|
112
155
|
TMeta,
|
package/src/deprecated/router.ts
CHANGED
package/src/rpc/envelopes.ts
CHANGED
|
@@ -48,28 +48,31 @@ export namespace JSONRPC2 {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
* TRPC HTTP Envelopes
|
|
53
|
-
*/
|
|
51
|
+
/////////////////////////// HTTP envelopes ///////////////////////
|
|
54
52
|
|
|
55
|
-
export
|
|
56
|
-
ProcedureType,
|
|
57
|
-
{ path: string; input: unknown }
|
|
58
|
-
>;
|
|
53
|
+
export interface TRPCRequest
|
|
54
|
+
extends JSONRPC2.Request<ProcedureType, { path: string; input: unknown }> {}
|
|
59
55
|
|
|
60
|
-
export
|
|
56
|
+
export interface TRPCResult<TData = unknown> {
|
|
57
|
+
data: TData;
|
|
58
|
+
}
|
|
61
59
|
|
|
62
|
-
export
|
|
63
|
-
JSONRPC2.
|
|
60
|
+
export interface TRPCSuccessResponse<TData>
|
|
61
|
+
extends JSONRPC2.ResultResponse<
|
|
62
|
+
TRPCResult<TData> & {
|
|
63
|
+
type?: 'data';
|
|
64
|
+
}
|
|
65
|
+
> {}
|
|
66
|
+
export interface TRPCErrorResponse<
|
|
67
|
+
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
68
|
+
> extends JSONRPC2.ErrorResponse<TError> {}
|
|
64
69
|
|
|
65
70
|
export type TRPCResponse<
|
|
66
|
-
|
|
71
|
+
TData = unknown,
|
|
67
72
|
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
68
|
-
> =
|
|
73
|
+
> = TRPCSuccessResponse<TData> | TRPCErrorResponse<TError>;
|
|
69
74
|
|
|
70
|
-
|
|
71
|
-
* HTTP WS Envelopes
|
|
72
|
-
*/
|
|
75
|
+
/////////////////////////// WebSocket envelopes ///////////////////////
|
|
73
76
|
|
|
74
77
|
export type TRPCRequestMessage = {
|
|
75
78
|
id: JSONRPC2.RequestId;
|
|
@@ -78,9 +81,10 @@ export type TRPCRequestMessage = {
|
|
|
78
81
|
/**
|
|
79
82
|
* The client asked the server to unsubscribe
|
|
80
83
|
*/
|
|
81
|
-
export
|
|
84
|
+
export interface TRPCSubscriptionStopNotification
|
|
85
|
+
extends JSONRPC2.BaseRequest<'subscription.stop'> {
|
|
82
86
|
id: null;
|
|
83
|
-
}
|
|
87
|
+
}
|
|
84
88
|
|
|
85
89
|
/**
|
|
86
90
|
* The client's outgoing request types
|
|
@@ -94,25 +98,28 @@ export type TRPCClientOutgoingMessage =
|
|
|
94
98
|
| TRPCRequestMessage
|
|
95
99
|
| ({ id: JSONRPC2.RequestId } & JSONRPC2.BaseRequest<'subscription.stop'>);
|
|
96
100
|
|
|
97
|
-
export
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
export interface TRPCResultMessage<TData>
|
|
102
|
+
extends JSONRPC2.ResultResponse<
|
|
103
|
+
| (TRPCResult<TData> & { type: 'data' })
|
|
104
|
+
| { type: 'started' }
|
|
105
|
+
| { type: 'stopped' }
|
|
106
|
+
> {}
|
|
101
107
|
|
|
102
108
|
export type TRPCResponseMessage<
|
|
103
|
-
|
|
109
|
+
TData = unknown,
|
|
104
110
|
TError extends TRPCErrorShape = TRPCErrorShape,
|
|
105
111
|
> = { id: JSONRPC2.RequestId } & (
|
|
106
|
-
|
|
|
112
|
+
| TRPCResultMessage<TData>
|
|
107
113
|
| TRPCErrorResponse<TError>
|
|
108
114
|
);
|
|
109
115
|
|
|
110
116
|
/**
|
|
111
117
|
* The server asked the client to reconnect - useful when restarting/redeploying service
|
|
112
118
|
*/
|
|
113
|
-
export
|
|
119
|
+
export interface TRPCReconnectNotification
|
|
120
|
+
extends JSONRPC2.BaseRequest<'reconnect'> {
|
|
114
121
|
id: JSONRPC2.RequestId;
|
|
115
|
-
}
|
|
122
|
+
}
|
|
116
123
|
|
|
117
124
|
/**
|
|
118
125
|
* The client's incoming request types
|
package/src/types.ts
CHANGED