@trpc/server 9.20.2 → 9.22.0
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/express/dist/trpc-server-adapters-express.cjs.dev.js +5 -5
- package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +5 -5
- package/adapters/express/dist/trpc-server-adapters-express.esm.js +5 -5
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +16 -9
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +16 -9
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +16 -9
- 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 +4 -4
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +4 -4
- package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +4 -4
- package/dist/declarations/src/TRPCError.d.ts.map +1 -1
- package/dist/declarations/src/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
- package/dist/declarations/src/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/declarations/src/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/declarations/src/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/declarations/src/adapters/next.d.ts +1 -1
- package/dist/declarations/src/adapters/next.d.ts.map +1 -1
- package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/declarations/src/adapters/standalone.d.ts.map +1 -1
- package/dist/declarations/src/adapters/ws.d.ts.map +1 -1
- package/dist/declarations/src/deprecated/createHttpServer.d.ts +1 -1
- package/dist/declarations/src/deprecated/createHttpServer.d.ts.map +1 -1
- package/dist/declarations/src/deprecated/requestHandler.d.ts +1 -1
- package/dist/declarations/src/deprecated/requestHandler.d.ts.map +1 -1
- package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts +1 -1
- package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/declarations/src/http/internals/types.d.ts +1 -1
- package/dist/declarations/src/http/internals/types.d.ts.map +1 -1
- package/dist/declarations/src/http/resolveHTTPResponse.d.ts +2 -2
- package/dist/declarations/src/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/declarations/src/internals/BaseHandlerOptions.d.ts +1 -1
- package/dist/declarations/src/internals/BaseHandlerOptions.d.ts.map +1 -1
- package/dist/declarations/src/internals/OnErrorFunction.d.ts +1 -1
- package/dist/declarations/src/internals/OnErrorFunction.d.ts.map +1 -1
- package/dist/declarations/src/internals/middlewares.d.ts +3 -2
- package/dist/declarations/src/internals/middlewares.d.ts.map +1 -1
- package/dist/declarations/src/internals/procedure.d.ts +44 -32
- package/dist/declarations/src/internals/procedure.d.ts.map +1 -1
- package/dist/declarations/src/router.d.ts +34 -30
- package/dist/declarations/src/router.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-2cc444d8.cjs.dev.js → nodeHTTPRequestHandler-620da2b7.cjs.dev.js} +2 -2
- package/dist/{nodeHTTPRequestHandler-d00c1126.esm.js → nodeHTTPRequestHandler-87105aef.esm.js} +2 -2
- package/dist/{nodeHTTPRequestHandler-8ddacc19.cjs.prod.js → nodeHTTPRequestHandler-9cfa7523.cjs.prod.js} +2 -2
- package/dist/{resolveHTTPResponse-85f3f5df.esm.js → resolveHTTPResponse-12cc3012.esm.js} +1 -1
- package/dist/{resolveHTTPResponse-3867844c.cjs.dev.js → resolveHTTPResponse-780f5cab.cjs.dev.js} +1 -1
- package/dist/{resolveHTTPResponse-562c3d62.cjs.prod.js → resolveHTTPResponse-d1d2695d.cjs.prod.js} +1 -1
- package/dist/{subscription-fbda2888.esm.js → subscription-2ea469a3.esm.js} +2 -2
- package/dist/{subscription-c2e0bfbc.cjs.prod.js → subscription-7de48383.cjs.dev.js} +2 -2
- package/dist/{subscription-b8831081.cjs.dev.js → subscription-f03bec71.cjs.prod.js} +2 -2
- package/dist/{transformTRPCResponse-8248515e.cjs.dev.js → transformTRPCResponse-1e125b28.cjs.prod.js} +38 -38
- package/dist/{transformTRPCResponse-f73dc4a2.esm.js → transformTRPCResponse-45c225c3.esm.js} +38 -38
- package/dist/{transformTRPCResponse-dcbf66c5.cjs.prod.js → transformTRPCResponse-c654ea92.cjs.dev.js} +38 -38
- package/dist/trpc-server.cjs.dev.js +44 -18
- package/dist/trpc-server.cjs.prod.js +44 -18
- package/dist/trpc-server.esm.js +46 -20
- package/package.json +2 -5
- package/src/TRPCError.ts +1 -1
- package/src/adapters/express.ts +2 -2
- package/src/adapters/fastify/fastifyRequestHandler.ts +7 -8
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +14 -6
- package/src/adapters/next.ts +6 -2
- package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +5 -5
- package/src/adapters/standalone.ts +1 -0
- package/src/adapters/ws.ts +4 -4
- package/src/deprecated/createHttpServer.ts +2 -2
- package/src/deprecated/requestHandler.ts +2 -2
- package/src/http/internals/getHTTPStatusCode.ts +1 -1
- package/src/http/internals/types.ts +2 -2
- package/src/http/resolveHTTPResponse.ts +3 -3
- package/src/internals/BaseHandlerOptions.ts +1 -1
- package/src/internals/OnErrorFunction.ts +1 -1
- package/src/internals/middlewares.ts +3 -2
- package/src/internals/procedure.ts +173 -66
- package/src/router.ts +172 -52
- package/src/subscription.ts +1 -1
- package/ws/dist/trpc-server-ws.cjs.dev.js +2 -2
- package/ws/dist/trpc-server-ws.cjs.prod.js +2 -2
- package/ws/dist/trpc-server-ws.esm.js +2 -2
package/dist/trpc-server.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-
|
|
2
|
-
export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-
|
|
3
|
-
export { S as Subscription, s as subscriptionPullFactory } from './subscription-
|
|
4
|
-
import { T as TRPCError, g as getErrorFromUnknown } from './transformTRPCResponse-
|
|
5
|
-
export { T as TRPCError } from './transformTRPCResponse-
|
|
1
|
+
import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-12cc3012.esm.js';
|
|
2
|
+
export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-12cc3012.esm.js';
|
|
3
|
+
export { S as Subscription, s as subscriptionPullFactory } from './subscription-2ea469a3.esm.js';
|
|
4
|
+
import { T as TRPCError, g as getErrorFromUnknown } from './transformTRPCResponse-45c225c3.esm.js';
|
|
5
|
+
export { T as TRPCError } from './transformTRPCResponse-45c225c3.esm.js';
|
|
6
6
|
import { createHTTPServer, createHTTPHandler } from '../adapters/standalone/dist/trpc-server-adapters-standalone.esm.js';
|
|
7
|
-
import { n as nodeHTTPRequestHandler } from './nodeHTTPRequestHandler-
|
|
7
|
+
import { n as nodeHTTPRequestHandler } from './nodeHTTPRequestHandler-87105aef.esm.js';
|
|
8
8
|
import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-fe07bf82.esm.js';
|
|
9
9
|
import 'events';
|
|
10
10
|
import 'http';
|
|
@@ -30,6 +30,7 @@ const createHttpHandler = createHTTPHandler;
|
|
|
30
30
|
/**
|
|
31
31
|
* @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
|
|
32
32
|
*/
|
|
33
|
+
|
|
33
34
|
const requestHandler = nodeHTTPRequestHandler;
|
|
34
35
|
/**
|
|
35
36
|
* @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
|
|
@@ -59,31 +60,31 @@ async function wrapCallSafe(fn) {
|
|
|
59
60
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
60
61
|
assertNotBrowser();
|
|
61
62
|
|
|
62
|
-
function getParseFn(
|
|
63
|
-
const parser =
|
|
63
|
+
function getParseFn(procedureParser) {
|
|
64
|
+
const parser = procedureParser;
|
|
64
65
|
|
|
65
66
|
if (typeof parser === 'function') {
|
|
66
|
-
//
|
|
67
|
+
// ProcedureParserCustomValidatorEsque
|
|
67
68
|
return parser;
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
if (typeof parser.parseAsync === 'function') {
|
|
71
|
-
//
|
|
72
|
+
// ProcedureParserZodEsque
|
|
72
73
|
return parser.parseAsync.bind(parser);
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
if (typeof parser.parse === 'function') {
|
|
76
|
-
//
|
|
77
|
+
// ProcedureParserZodEsque
|
|
77
78
|
return parser.parse.bind(parser);
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
if (typeof parser.validateSync === 'function') {
|
|
81
|
-
//
|
|
82
|
+
// ProcedureParserYupEsque
|
|
82
83
|
return parser.validateSync.bind(parser);
|
|
83
84
|
}
|
|
84
85
|
|
|
85
86
|
if (typeof parser.create === 'function') {
|
|
86
|
-
//
|
|
87
|
+
// ProcedureParserSuperstructEsque
|
|
87
88
|
return parser.create.bind(parser);
|
|
88
89
|
}
|
|
89
90
|
|
|
@@ -99,16 +100,22 @@ class Procedure {
|
|
|
99
100
|
this.middlewares = void 0;
|
|
100
101
|
this.resolver = void 0;
|
|
101
102
|
this.inputParser = void 0;
|
|
102
|
-
this.
|
|
103
|
+
this.parseInputFn = void 0;
|
|
104
|
+
this.outputParser = void 0;
|
|
105
|
+
this.parseOutputFn = void 0;
|
|
106
|
+
this.meta = void 0;
|
|
103
107
|
this.middlewares = opts.middlewares;
|
|
104
108
|
this.resolver = opts.resolver;
|
|
105
109
|
this.inputParser = opts.inputParser;
|
|
106
|
-
this.
|
|
110
|
+
this.parseInputFn = getParseFn(this.inputParser);
|
|
111
|
+
this.outputParser = opts.outputParser;
|
|
112
|
+
this.parseOutputFn = getParseFn(this.outputParser);
|
|
113
|
+
this.meta = opts.meta;
|
|
107
114
|
}
|
|
108
115
|
|
|
109
116
|
async parseInput(rawInput) {
|
|
110
117
|
try {
|
|
111
|
-
return await this.
|
|
118
|
+
return await this.parseInputFn(rawInput);
|
|
112
119
|
} catch (cause) {
|
|
113
120
|
throw new TRPCError({
|
|
114
121
|
code: 'BAD_REQUEST',
|
|
@@ -116,8 +123,20 @@ class Procedure {
|
|
|
116
123
|
});
|
|
117
124
|
}
|
|
118
125
|
}
|
|
126
|
+
|
|
127
|
+
async parseOutput(rawOutput) {
|
|
128
|
+
try {
|
|
129
|
+
return await this.parseOutputFn(rawOutput);
|
|
130
|
+
} catch (cause) {
|
|
131
|
+
throw new TRPCError({
|
|
132
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
133
|
+
cause,
|
|
134
|
+
message: 'Output validation failed'
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
119
138
|
/**
|
|
120
|
-
* Trigger middlewares in order, parse raw input &
|
|
139
|
+
* Trigger middlewares in order, parse raw input, call resolver & parse raw output
|
|
121
140
|
* @internal
|
|
122
141
|
*/
|
|
123
142
|
|
|
@@ -128,10 +147,11 @@ class Procedure {
|
|
|
128
147
|
ctx
|
|
129
148
|
}) => {
|
|
130
149
|
const input = await this.parseInput(opts.rawInput);
|
|
131
|
-
const
|
|
150
|
+
const rawOutput = await this.resolver({ ...opts,
|
|
132
151
|
ctx,
|
|
133
152
|
input
|
|
134
153
|
});
|
|
154
|
+
const data = await this.parseOutput(rawOutput);
|
|
135
155
|
return {
|
|
136
156
|
marker: middlewareMarker,
|
|
137
157
|
ok: true,
|
|
@@ -147,6 +167,7 @@ class Procedure {
|
|
|
147
167
|
type: opts.type,
|
|
148
168
|
path: opts.path,
|
|
149
169
|
rawInput: opts.rawInput,
|
|
170
|
+
meta: this.meta,
|
|
150
171
|
next: nextFns[index + 1]
|
|
151
172
|
}));
|
|
152
173
|
|
|
@@ -188,7 +209,9 @@ class Procedure {
|
|
|
188
209
|
const instance = new Constructor({
|
|
189
210
|
middlewares: [...middlewares, ...this.middlewares],
|
|
190
211
|
resolver: this.resolver,
|
|
191
|
-
inputParser: this.inputParser
|
|
212
|
+
inputParser: this.inputParser,
|
|
213
|
+
outputParser: this.outputParser,
|
|
214
|
+
meta: this.meta
|
|
192
215
|
});
|
|
193
216
|
return instance;
|
|
194
217
|
}
|
|
@@ -205,10 +228,13 @@ function createProcedure(opts) {
|
|
|
205
228
|
|
|
206
229
|
return undefined;
|
|
207
230
|
};
|
|
231
|
+
const outputParser = 'output' in opts && opts.output ? opts.output : output => output;
|
|
208
232
|
return new Procedure({
|
|
209
233
|
inputParser: inputParser,
|
|
210
234
|
resolver: opts.resolve,
|
|
211
|
-
middlewares: []
|
|
235
|
+
middlewares: [],
|
|
236
|
+
outputParser: outputParser,
|
|
237
|
+
meta: opts.meta
|
|
212
238
|
});
|
|
213
239
|
}
|
|
214
240
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/server",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.22.0",
|
|
4
4
|
"description": "tRPC Server",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -70,8 +70,5 @@
|
|
|
70
70
|
"yup": "^0.32.8",
|
|
71
71
|
"zod": "^3.0.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
74
|
-
"dependencies": {
|
|
75
|
-
"tslib": "^2.1.0"
|
|
76
|
-
}
|
|
73
|
+
"gitHead": "471a69c2d6997b8d5dfa1887fd62b24ada31a4d3"
|
|
77
74
|
}
|
package/src/TRPCError.ts
CHANGED
package/src/adapters/express.ts
CHANGED
|
@@ -15,10 +15,10 @@ export type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<
|
|
|
15
15
|
export function createExpressMiddleware<TRouter extends AnyRouter>(
|
|
16
16
|
opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>,
|
|
17
17
|
): express.Handler {
|
|
18
|
-
return (req, res) => {
|
|
18
|
+
return async (req, res) => {
|
|
19
19
|
const endpoint = req.path.slice(1);
|
|
20
20
|
|
|
21
|
-
nodeHTTPRequestHandler({
|
|
21
|
+
await nodeHTTPRequestHandler({
|
|
22
22
|
...opts,
|
|
23
23
|
req,
|
|
24
24
|
res,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { URLSearchParams } from 'url';
|
|
2
1
|
import { FastifyReply, FastifyRequest } from 'fastify';
|
|
2
|
+
import { URLSearchParams } from 'url';
|
|
3
3
|
import { assertNotBrowser } from '../../assertNotBrowser';
|
|
4
|
-
import { NodeHTTPCreateContextOption } from '../node-http';
|
|
5
|
-
import { AnyRouter, inferRouterContext } from '../../router';
|
|
6
|
-
import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
|
|
7
4
|
import {
|
|
8
5
|
HTTPBaseHandlerOptions,
|
|
9
6
|
HTTPRequest,
|
|
10
7
|
} from '../../http/internals/types';
|
|
8
|
+
import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
|
|
9
|
+
import { AnyRouter, inferRouterContext } from '../../router';
|
|
10
|
+
import { NodeHTTPCreateContextOption } from '../node-http';
|
|
11
11
|
|
|
12
12
|
assertNotBrowser();
|
|
13
13
|
|
|
@@ -67,13 +67,12 @@ export async function fastifyRequestHandler<
|
|
|
67
67
|
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
68
68
|
res.statusCode = result.status;
|
|
69
69
|
}
|
|
70
|
-
|
|
71
70
|
for (const [key, value] of Object.entries(result.headers ?? {})) {
|
|
72
71
|
if (typeof value === 'undefined') {
|
|
73
72
|
continue;
|
|
74
73
|
}
|
|
75
|
-
res.header(key, value);
|
|
76
|
-
}
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
void res.header(key, value);
|
|
76
|
+
}
|
|
77
|
+
await res.send(result.body);
|
|
79
78
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/// <reference types="fastify-websocket" />
|
|
2
2
|
import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
|
3
|
-
import { fastifyRequestHandler } from './fastifyRequestHandler';
|
|
4
|
-
import { NodeHTTPCreateContextFnOptions } from '../node-http';
|
|
5
|
-
import { applyWSSHandler, WSSHandlerOptions } from '../ws';
|
|
6
3
|
import { FastifyHandlerOptions } from '.';
|
|
7
4
|
import { AnyRouter } from '../..';
|
|
5
|
+
import { NodeHTTPCreateContextFnOptions } from '../node-http';
|
|
6
|
+
import { WSSHandlerOptions, applyWSSHandler } from '../ws';
|
|
7
|
+
import { fastifyRequestHandler } from './fastifyRequestHandler';
|
|
8
8
|
|
|
9
9
|
export interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {
|
|
10
10
|
prefix?: string;
|
|
@@ -30,9 +30,17 @@ export function fastifyTRPCPlugin<TRouter extends AnyRouter>(
|
|
|
30
30
|
},
|
|
31
31
|
);
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
let prefix = opts.prefix ?? '';
|
|
34
|
+
|
|
35
|
+
// https://github.com/fastify/fastify-plugin/blob/fe079bef6557a83794bf437e14b9b9edb8a74104/plugin.js#L11
|
|
36
|
+
// @ts-expect-error property 'default' does not exists on type ...
|
|
37
|
+
if (typeof fastifyTRPCPlugin.default !== 'function') {
|
|
38
|
+
prefix = ''; // handled by fastify internally
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fastify.all(`${prefix}/:path`, async (req, res) => {
|
|
34
42
|
const path = (req.params as any).path;
|
|
35
|
-
fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });
|
|
43
|
+
await fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });
|
|
36
44
|
});
|
|
37
45
|
|
|
38
46
|
if (opts.useWSS) {
|
|
@@ -41,7 +49,7 @@ export function fastifyTRPCPlugin<TRouter extends AnyRouter>(
|
|
|
41
49
|
wss: fastify.websocketServer,
|
|
42
50
|
});
|
|
43
51
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
44
|
-
fastify.get(
|
|
52
|
+
fastify.get(prefix ?? '/', { websocket: true }, () => {});
|
|
45
53
|
}
|
|
46
54
|
|
|
47
55
|
done();
|
package/src/adapters/next.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3
|
-
import type {
|
|
3
|
+
import type {
|
|
4
|
+
NextApiHandler,
|
|
5
|
+
NextApiRequest,
|
|
6
|
+
NextApiResponse,
|
|
7
|
+
} from 'next/types';
|
|
8
|
+
import { TRPCError } from '../TRPCError';
|
|
4
9
|
import { AnyRouter } from '../router';
|
|
5
10
|
import { TRPCErrorResponse } from '../rpc';
|
|
6
|
-
import { TRPCError } from '../TRPCError';
|
|
7
11
|
import { nodeHTTPRequestHandler } from './node-http';
|
|
8
12
|
import {
|
|
9
13
|
NodeHTTPCreateContextFnOptions,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
2
|
import { URLSearchParams } from 'url';
|
|
3
3
|
import { assertNotBrowser } from '../../assertNotBrowser';
|
|
4
|
+
import { HTTPRequest } from '../../http/internals/types';
|
|
5
|
+
import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
|
|
6
|
+
import { AnyRouter, inferRouterContext } from '../../router';
|
|
7
|
+
import { getPostBody } from './internals/getPostBody';
|
|
4
8
|
import {
|
|
9
|
+
NodeHTTPHandlerOptions,
|
|
5
10
|
NodeHTTPRequest,
|
|
6
11
|
NodeHTTPResponse,
|
|
7
|
-
NodeHTTPHandlerOptions,
|
|
8
12
|
} from './types';
|
|
9
|
-
import { AnyRouter, inferRouterContext } from '../../router';
|
|
10
|
-
import { getPostBody } from './internals/getPostBody';
|
|
11
|
-
import { HTTPRequest } from '../../http/internals/types';
|
|
12
|
-
import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
|
|
13
13
|
|
|
14
14
|
assertNotBrowser();
|
|
15
15
|
|
package/src/adapters/ws.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
2
|
import ws from 'ws';
|
|
3
|
+
import { TRPCError } from '../TRPCError';
|
|
3
4
|
import { BaseHandlerOptions } from '../internals/BaseHandlerOptions';
|
|
4
5
|
import { callProcedure } from '../internals/callProcedure';
|
|
5
6
|
import { getErrorFromUnknown } from '../internals/errors';
|
|
6
7
|
import { transformTRPCResponse } from '../internals/transformTRPCResponse';
|
|
7
|
-
import { AnyRouter,
|
|
8
|
+
import { AnyRouter, ProcedureType, inferRouterContext } from '../router';
|
|
8
9
|
import {
|
|
9
10
|
TRPCErrorResponse,
|
|
10
11
|
TRPCReconnectNotification,
|
|
@@ -13,7 +14,6 @@ import {
|
|
|
13
14
|
} from '../rpc';
|
|
14
15
|
import { Subscription } from '../subscription';
|
|
15
16
|
import { CombinedDataTransformer } from '../transformer';
|
|
16
|
-
import { TRPCError } from '../TRPCError';
|
|
17
17
|
import { NodeHTTPCreateContextOption } from './node-http';
|
|
18
18
|
|
|
19
19
|
/* istanbul ignore next */
|
|
@@ -96,7 +96,7 @@ export function applyWSSHandler<TRouter extends AnyRouter>(
|
|
|
96
96
|
const { wss, createContext, router } = opts;
|
|
97
97
|
|
|
98
98
|
const { transformer } = router._def;
|
|
99
|
-
wss.on('connection', (client, req) => {
|
|
99
|
+
wss.on('connection', async (client, req) => {
|
|
100
100
|
const clientSubscriptions = new Map<
|
|
101
101
|
number | string,
|
|
102
102
|
Subscription<TRouter>
|
|
@@ -285,7 +285,7 @@ export function applyWSSHandler<TRouter extends AnyRouter>(
|
|
|
285
285
|
});
|
|
286
286
|
}
|
|
287
287
|
}
|
|
288
|
-
createContextAsync();
|
|
288
|
+
await createContextAsync();
|
|
289
289
|
});
|
|
290
290
|
|
|
291
291
|
return {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// this has been moved to separate package
|
|
2
2
|
import {
|
|
3
|
-
|
|
3
|
+
CreateHTTPContextOptions,
|
|
4
4
|
CreateHTTPHandlerOptions,
|
|
5
|
+
createHTTPHandler,
|
|
5
6
|
createHTTPServer,
|
|
6
|
-
CreateHTTPContextOptions,
|
|
7
7
|
} from '../adapters/standalone';
|
|
8
8
|
import { AnyRouter } from '../router';
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import type { AnyRouter } from '../';
|
|
1
2
|
import {
|
|
2
|
-
nodeHTTPRequestHandler as requestHandlerInner,
|
|
3
3
|
NodeHTTPCreateContextFn,
|
|
4
4
|
NodeHTTPCreateContextFnOptions,
|
|
5
|
+
nodeHTTPRequestHandler as requestHandlerInner,
|
|
5
6
|
} from '../adapters/node-http';
|
|
6
|
-
import type { AnyRouter } from '../';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TRPCResponse, TRPC_ERROR_CODES_BY_KEY } from '../../rpc';
|
|
2
1
|
import { TRPCError } from '../../TRPCError';
|
|
3
2
|
import { invert } from '../../internals/invert';
|
|
3
|
+
import { TRPCResponse, TRPC_ERROR_CODES_BY_KEY } from '../../rpc';
|
|
4
4
|
|
|
5
5
|
export const TRPC_ERROR_CODES_BY_NUMBER = invert(TRPC_ERROR_CODES_BY_KEY);
|
|
6
6
|
type ValueOf<T> = T[keyof T];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AnyRouter,
|
|
3
3
|
Dict,
|
|
4
|
-
inferRouterContext,
|
|
5
|
-
inferRouterError,
|
|
6
4
|
ProcedureType,
|
|
7
5
|
ResponseMeta,
|
|
8
6
|
TRPCError,
|
|
7
|
+
inferRouterContext,
|
|
8
|
+
inferRouterError,
|
|
9
9
|
} from '@trpc/server';
|
|
10
10
|
import { URLSearchParams } from 'url';
|
|
11
11
|
import { BaseHandlerOptions } from '../../internals/BaseHandlerOptions';
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
2
|
import { Maybe } from '@trpc/server';
|
|
3
|
+
import { TRPCError } from '../TRPCError';
|
|
3
4
|
import { callProcedure } from '../internals/callProcedure';
|
|
4
5
|
import { getErrorFromUnknown } from '../internals/errors';
|
|
5
6
|
import { transformTRPCResponse } from '../internals/transformTRPCResponse';
|
|
6
7
|
import {
|
|
7
8
|
AnyRouter,
|
|
9
|
+
ProcedureType,
|
|
8
10
|
inferRouterContext,
|
|
9
11
|
inferRouterError,
|
|
10
|
-
ProcedureType,
|
|
11
12
|
} from '../router';
|
|
12
13
|
import { TRPCErrorResponse, TRPCResponse, TRPCResultResponse } from '../rpc';
|
|
13
|
-
import { TRPCError } from '../TRPCError';
|
|
14
14
|
import { getHTTPStatusCode } from './internals/getHTTPStatusCode';
|
|
15
15
|
import {
|
|
16
|
+
HTTPBaseHandlerOptions,
|
|
16
17
|
HTTPHeaders,
|
|
17
18
|
HTTPRequest,
|
|
18
19
|
HTTPResponse,
|
|
19
|
-
HTTPBaseHandlerOptions,
|
|
20
20
|
} from './internals/types';
|
|
21
21
|
|
|
22
22
|
const HTTP_METHOD_PROCEDURE_TYPE_MAP: Record<
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyRouter, inferRouterContext, ProcedureType } from '../router';
|
|
2
1
|
import { TRPCError } from '../TRPCError';
|
|
2
|
+
import { AnyRouter, ProcedureType, inferRouterContext } from '../router';
|
|
3
3
|
|
|
4
4
|
export type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
|
|
5
5
|
error: TRPCError;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ProcedureType } from '../router';
|
|
2
1
|
import { TRPCError } from '../TRPCError';
|
|
2
|
+
import { ProcedureType } from '../router';
|
|
3
3
|
|
|
4
4
|
export const middlewareMarker = Symbol('middlewareMarker');
|
|
5
5
|
interface MiddlewareResultBase<TContext> {
|
|
@@ -27,11 +27,12 @@ export type MiddlewareResult<TContext> =
|
|
|
27
27
|
| MiddlewareOKResult<TContext>
|
|
28
28
|
| MiddlewareErrorResult<TContext>;
|
|
29
29
|
|
|
30
|
-
export type MiddlewareFunction<TInputContext, TContext> = (opts: {
|
|
30
|
+
export type MiddlewareFunction<TInputContext, TContext, TMeta> = (opts: {
|
|
31
31
|
ctx: TInputContext;
|
|
32
32
|
type: ProcedureType;
|
|
33
33
|
path: string;
|
|
34
34
|
rawInput: unknown;
|
|
35
|
+
meta?: TMeta;
|
|
35
36
|
next: {
|
|
36
37
|
(): Promise<MiddlewareResult<TInputContext>>;
|
|
37
38
|
<T>(opts: { ctx: T }): Promise<MiddlewareResult<T>>;
|