@trpc/server 9.18.0 → 10.0.0-alpha.3
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/index.d.ts +1 -0
- package/adapters/express/index.js +1 -0
- package/adapters/next/index.d.ts +1 -0
- package/adapters/next/index.js +1 -0
- package/adapters/node-http/index.d.ts +1 -0
- package/adapters/node-http/index.js +1 -0
- package/adapters/standalone/index.d.ts +1 -0
- package/adapters/standalone/index.js +1 -0
- package/adapters/ws/index.d.ts +1 -0
- package/adapters/ws/index.js +1 -0
- package/dist/{declarations/src/TRPCError.d.ts → TRPCError.d.ts} +18 -18
- package/dist/TRPCError.d.ts.map +1 -0
- package/dist/{declarations/src/adapters → adapters}/express.d.ts +5 -5
- package/dist/adapters/express.d.ts.map +1 -0
- package/dist/adapters/express.js +22 -0
- package/dist/adapters/express.mjs +18 -0
- package/dist/adapters/express.ts.js +1 -0
- package/dist/{declarations/src/adapters → adapters}/next.d.ts +5 -5
- package/dist/adapters/next.d.ts.map +1 -0
- package/dist/adapters/next.js +55 -0
- package/dist/adapters/next.mjs +51 -0
- package/dist/adapters/next.ts.js +1 -0
- package/dist/{declarations/src/adapters → adapters}/node-http/index.d.ts +2 -2
- package/dist/adapters/node-http/index.d.ts.map +1 -0
- package/dist/adapters/node-http/index.js +12 -0
- package/dist/adapters/node-http/index.mjs +4 -0
- package/dist/adapters/node-http/index.ts.js +1 -0
- package/dist/{declarations/src/adapters → adapters}/node-http/internals/getPostBody.d.ts +12 -12
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -0
- package/dist/{declarations/src/adapters → adapters}/node-http/nodeHTTPRequestHandler.d.ts +9 -9
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -0
- package/dist/{declarations/src/adapters → adapters}/node-http/types.d.ts +32 -32
- package/dist/adapters/node-http/types.d.ts.map +1 -0
- package/dist/{declarations/src/adapters → adapters}/standalone.d.ts +13 -13
- package/dist/adapters/standalone.d.ts.map +1 -0
- package/dist/adapters/standalone.js +45 -0
- package/dist/adapters/standalone.mjs +35 -0
- package/dist/adapters/standalone.ts.js +1 -0
- package/dist/{declarations/src/adapters → adapters}/ws.d.ts +16 -16
- package/dist/adapters/ws.d.ts.map +1 -0
- package/dist/adapters/ws.js +346 -0
- package/dist/adapters/ws.mjs +342 -0
- package/dist/adapters/ws.ts.js +1 -0
- package/dist/{declarations/src/assertNotBrowser.d.ts → assertNotBrowser.d.ts} +1 -1
- package/dist/assertNotBrowser.d.ts.map +1 -0
- package/dist/{codes-fe07bf82.esm.js → codes-7a3d4f65.mjs} +0 -0
- package/dist/{codes-33cef953.cjs.dev.js → codes-7f46544e.js} +0 -0
- package/dist/{declarations/src/deprecated → deprecated}/LegacyRouter.d.ts +2 -2
- package/dist/deprecated/LegacyRouter.d.ts.map +1 -0
- package/dist/{declarations/src/deprecated → deprecated}/createHttpServer.d.ts +18 -18
- package/dist/deprecated/createHttpServer.d.ts.map +1 -0
- package/dist/{declarations/src/deprecated → deprecated}/requestHandler.d.ts +14 -14
- package/dist/deprecated/requestHandler.d.ts.map +1 -0
- package/dist/{declarations/src/http → http}/ResponseMeta.d.ts +4 -4
- package/dist/http/ResponseMeta.d.ts.map +1 -0
- package/dist/{declarations/src/http → http}/index.d.ts +2 -2
- package/dist/http/index.d.ts.map +1 -0
- package/dist/{declarations/src/http → http}/internals/getHTTPStatusCode.d.ts +20 -20
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -0
- package/dist/{declarations/src/http → http}/internals/types.d.ts +39 -39
- package/dist/http/internals/types.d.ts.map +1 -0
- package/dist/{declarations/src/http → http}/resolveHTTPResponse.d.ts +12 -12
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -0
- package/dist/{declarations/src/index.d.ts → index.d.ts} +9 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/{trpc-server.cjs.dev.js → index.js} +7 -7
- package/dist/{trpc-server.esm.js → index.mjs} +7 -7
- package/dist/index.ts.js +1 -0
- package/dist/{declarations/src/internals → internals}/BaseHandlerOptions.d.ts +12 -12
- package/dist/internals/BaseHandlerOptions.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/OnErrorFunction.d.ts +10 -10
- package/dist/internals/OnErrorFunction.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/callProcedure.d.ts +9 -9
- package/dist/internals/callProcedure.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/errors.d.ts +3 -3
- package/dist/internals/errors.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/invert.d.ts +8 -8
- package/dist/internals/invert.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/middlewares.d.ts +33 -33
- package/dist/internals/middlewares.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/procedure.d.ts +73 -73
- package/dist/internals/procedure.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/transformTRPCResponse.d.ts +6 -6
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -0
- package/dist/{declarations/src/internals → internals}/wrapCallSafe.d.ts +15 -15
- package/dist/internals/wrapCallSafe.d.ts.map +1 -0
- package/dist/{nodeHTTPRequestHandler-2e6cc2d7.esm.js → nodeHTTPRequestHandler-10e6d2f9.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-b7ff366e.cjs.dev.js → nodeHTTPRequestHandler-d7c307d3.js} +2 -2
- package/dist/{declarations/src/router.d.ts → router.d.ts} +175 -175
- package/dist/router.d.ts.map +1 -0
- package/dist/{declarations/src/rpc → rpc}/codes.d.ts +46 -46
- package/dist/rpc/codes.d.ts.map +1 -0
- package/dist/{declarations/src/rpc → rpc}/envelopes.d.ts +71 -71
- package/dist/rpc/envelopes.d.ts.map +1 -0
- package/dist/{declarations/src/rpc → rpc}/index.d.ts +2 -2
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +10 -0
- package/dist/rpc/index.mjs +1 -0
- package/dist/rpc/index.ts.js +1 -0
- package/dist/{subscription-b8831081.cjs.dev.js → subscription-5b7e1eba.js} +1 -1
- package/dist/{subscription-fbda2888.esm.js → subscription-e1d42e69.mjs} +1 -1
- package/dist/{declarations/src/subscription.d.ts → subscription.d.ts} +57 -57
- package/dist/subscription.d.ts.map +1 -0
- package/dist/{transformTRPCResponse-f73dc4a2.esm.js → transformTRPCResponse-76e0c91e.mjs} +0 -0
- package/dist/{transformTRPCResponse-8248515e.cjs.dev.js → transformTRPCResponse-bd24f548.js} +0 -0
- package/dist/{declarations/src/transformer.d.ts → transformer.d.ts} +29 -29
- package/dist/transformer.d.ts.map +1 -0
- package/dist/{declarations/src/types.d.ts → types.d.ts} +40 -40
- package/dist/types.d.ts.map +1 -0
- package/dist/{declarations/src/ws → ws}/index.d.ts +6 -6
- package/dist/ws/index.d.ts.map +1 -0
- package/dist/ws/index.js +15 -0
- package/dist/ws/index.mjs +11 -0
- package/dist/ws/index.ts.js +1 -0
- package/package.json +49 -18
- package/rpc/index.d.ts +1 -0
- package/rpc/index.js +1 -0
- package/ws/index.d.ts +1 -0
- package/ws/index.js +1 -0
- package/adapters/express/package.json +0 -4
- package/adapters/next/package.json +0 -4
- package/adapters/node-http/package.json +0 -4
- package/adapters/standalone/package.json +0 -4
- package/adapters/ws/package.json +0 -4
- package/dist/codes-e0df67c4.cjs.prod.js +0 -60
- package/dist/declarations/src/TRPCError.d.ts.map +0 -1
- package/dist/declarations/src/adapters/express.d.ts.map +0 -1
- package/dist/declarations/src/adapters/next.d.ts.map +0 -1
- package/dist/declarations/src/adapters/node-http/index.d.ts.map +0 -1
- package/dist/declarations/src/adapters/node-http/internals/getPostBody.d.ts.map +0 -1
- package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +0 -1
- package/dist/declarations/src/adapters/node-http/types.d.ts.map +0 -1
- package/dist/declarations/src/adapters/standalone.d.ts.map +0 -1
- package/dist/declarations/src/adapters/ws.d.ts.map +0 -1
- package/dist/declarations/src/assertNotBrowser.d.ts.map +0 -1
- package/dist/declarations/src/deprecated/LegacyRouter.d.ts.map +0 -1
- package/dist/declarations/src/deprecated/createHttpServer.d.ts.map +0 -1
- package/dist/declarations/src/deprecated/requestHandler.d.ts.map +0 -1
- package/dist/declarations/src/http/ResponseMeta.d.ts.map +0 -1
- package/dist/declarations/src/http/index.d.ts.map +0 -1
- package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts.map +0 -1
- package/dist/declarations/src/http/internals/types.d.ts.map +0 -1
- package/dist/declarations/src/http/resolveHTTPResponse.d.ts.map +0 -1
- package/dist/declarations/src/index.d.ts.map +0 -1
- package/dist/declarations/src/internals/BaseHandlerOptions.d.ts.map +0 -1
- package/dist/declarations/src/internals/OnErrorFunction.d.ts.map +0 -1
- package/dist/declarations/src/internals/callProcedure.d.ts.map +0 -1
- package/dist/declarations/src/internals/errors.d.ts.map +0 -1
- package/dist/declarations/src/internals/invert.d.ts.map +0 -1
- package/dist/declarations/src/internals/middlewares.d.ts.map +0 -1
- package/dist/declarations/src/internals/procedure.d.ts.map +0 -1
- package/dist/declarations/src/internals/transformTRPCResponse.d.ts.map +0 -1
- package/dist/declarations/src/internals/wrapCallSafe.d.ts.map +0 -1
- package/dist/declarations/src/router.d.ts.map +0 -1
- package/dist/declarations/src/rpc/codes.d.ts.map +0 -1
- package/dist/declarations/src/rpc/envelopes.d.ts.map +0 -1
- package/dist/declarations/src/rpc/index.d.ts.map +0 -1
- package/dist/declarations/src/subscription.d.ts.map +0 -1
- package/dist/declarations/src/transformer.d.ts.map +0 -1
- package/dist/declarations/src/types.d.ts.map +0 -1
- package/dist/declarations/src/ws/index.d.ts.map +0 -1
- package/dist/nodeHTTPRequestHandler-7325b53f.cjs.prod.js +0 -399
- package/dist/subscription-c2e0bfbc.cjs.prod.js +0 -136
- package/dist/transformTRPCResponse-dcbf66c5.cjs.prod.js +0 -114
- package/dist/trpc-server.cjs.d.ts +0 -1
- package/dist/trpc-server.cjs.js +0 -7
- package/dist/trpc-server.cjs.prod.js +0 -528
- package/rpc/package.json +0 -4
- package/ws/package.json +0 -4
|
@@ -1,528 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-7325b53f.cjs.prod.js');
|
|
6
|
-
var subscription = require('./subscription-c2e0bfbc.cjs.prod.js');
|
|
7
|
-
var transformTRPCResponse = require('./transformTRPCResponse-dcbf66c5.cjs.prod.js');
|
|
8
|
-
var adapters_standalone_dist_trpcServerAdaptersStandalone = require('../adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js');
|
|
9
|
-
var codes = require('./codes-e0df67c4.cjs.prod.js');
|
|
10
|
-
require('url');
|
|
11
|
-
require('events');
|
|
12
|
-
require('http');
|
|
13
|
-
|
|
14
|
-
nodeHTTPRequestHandler.assertNotBrowser();
|
|
15
|
-
|
|
16
|
-
// this has been moved to separate package
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @deprecated use `createHTTPServer` from `@trpc/server/adapters/standalone`
|
|
20
|
-
*/
|
|
21
|
-
const createHttpServer = adapters_standalone_dist_trpcServerAdaptersStandalone.createHTTPServer;
|
|
22
|
-
/**
|
|
23
|
-
* @deprecated use `createHTTPHandler` from `@trpc/server/adapters/standalone`
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
const createHttpHandler = adapters_standalone_dist_trpcServerAdaptersStandalone.createHTTPHandler;
|
|
27
|
-
/**
|
|
28
|
-
* @deprecated use `CreateHTTPHandlerOptions` from `@trpc/server/adapters/standalone`
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
|
|
33
|
-
*/
|
|
34
|
-
const requestHandler = nodeHTTPRequestHandler.nodeHTTPRequestHandler;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
const middlewareMarker = /*#__PURE__*/Symbol('middlewareMarker');
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Wrap a function in a safe wrapper that never throws
|
|
43
|
-
* Returns a discriminated union
|
|
44
|
-
*/
|
|
45
|
-
async function wrapCallSafe(fn) {
|
|
46
|
-
try {
|
|
47
|
-
const data = await fn();
|
|
48
|
-
return {
|
|
49
|
-
ok: true,
|
|
50
|
-
data
|
|
51
|
-
};
|
|
52
|
-
} catch (cause) {
|
|
53
|
-
return {
|
|
54
|
-
ok: false,
|
|
55
|
-
error: cause
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
61
|
-
nodeHTTPRequestHandler.assertNotBrowser();
|
|
62
|
-
|
|
63
|
-
function getParseFn(inputParser) {
|
|
64
|
-
const parser = inputParser;
|
|
65
|
-
|
|
66
|
-
if (typeof parser === 'function') {
|
|
67
|
-
// ProcedureInputParserCustomValidatorEsque
|
|
68
|
-
return parser;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (typeof parser.parseAsync === 'function') {
|
|
72
|
-
// ProcedureInputParserZodEsque
|
|
73
|
-
return parser.parseAsync.bind(parser);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (typeof parser.parse === 'function') {
|
|
77
|
-
// ProcedureInputParserZodEsque
|
|
78
|
-
return parser.parse.bind(parser);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (typeof parser.validateSync === 'function') {
|
|
82
|
-
// ProcedureInputParserYupEsque
|
|
83
|
-
return parser.validateSync.bind(parser);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (typeof parser.create === 'function') {
|
|
87
|
-
// ProcedureInputParserSuperstructEsque
|
|
88
|
-
return parser.create.bind(parser);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
throw new Error('Could not find a validator fn');
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* @internal
|
|
95
|
-
*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
class Procedure {
|
|
99
|
-
constructor(opts) {
|
|
100
|
-
this.middlewares = void 0;
|
|
101
|
-
this.resolver = void 0;
|
|
102
|
-
this.inputParser = void 0;
|
|
103
|
-
this.parse = void 0;
|
|
104
|
-
this.middlewares = opts.middlewares;
|
|
105
|
-
this.resolver = opts.resolver;
|
|
106
|
-
this.inputParser = opts.inputParser;
|
|
107
|
-
this.parse = getParseFn(this.inputParser);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
async parseInput(rawInput) {
|
|
111
|
-
try {
|
|
112
|
-
return await this.parse(rawInput);
|
|
113
|
-
} catch (cause) {
|
|
114
|
-
throw new transformTRPCResponse.TRPCError({
|
|
115
|
-
code: 'BAD_REQUEST',
|
|
116
|
-
cause
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Trigger middlewares in order, parse raw input & call resolver
|
|
122
|
-
* @internal
|
|
123
|
-
*/
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
async call(opts) {
|
|
127
|
-
// wrap the actual resolver and treat as the last "middleware"
|
|
128
|
-
const middlewaresWithResolver = this.middlewares.concat([async ({
|
|
129
|
-
ctx
|
|
130
|
-
}) => {
|
|
131
|
-
const input = await this.parseInput(opts.rawInput);
|
|
132
|
-
const data = await this.resolver({ ...opts,
|
|
133
|
-
ctx,
|
|
134
|
-
input
|
|
135
|
-
});
|
|
136
|
-
return {
|
|
137
|
-
marker: middlewareMarker,
|
|
138
|
-
ok: true,
|
|
139
|
-
data,
|
|
140
|
-
ctx
|
|
141
|
-
};
|
|
142
|
-
}]); // create `next()` calls in resolvers
|
|
143
|
-
|
|
144
|
-
const nextFns = middlewaresWithResolver.map((fn, index) => {
|
|
145
|
-
return async nextOpts => {
|
|
146
|
-
const res = await wrapCallSafe(() => fn({
|
|
147
|
-
ctx: nextOpts ? nextOpts.ctx : opts.ctx,
|
|
148
|
-
type: opts.type,
|
|
149
|
-
path: opts.path,
|
|
150
|
-
rawInput: opts.rawInput,
|
|
151
|
-
next: nextFns[index + 1]
|
|
152
|
-
}));
|
|
153
|
-
|
|
154
|
-
if (res.ok) {
|
|
155
|
-
return res.data;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
return {
|
|
159
|
-
ok: false,
|
|
160
|
-
error: transformTRPCResponse.getErrorFromUnknown(res.error)
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
}); // there's always at least one "next" since we wrap this.resolver in a middleware
|
|
164
|
-
|
|
165
|
-
const result = await nextFns[0]();
|
|
166
|
-
|
|
167
|
-
if (!result) {
|
|
168
|
-
throw new transformTRPCResponse.TRPCError({
|
|
169
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
170
|
-
message: 'No result from middlewares - did you forget to `return next()`?'
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
if (!result.ok) {
|
|
175
|
-
// re-throw original error
|
|
176
|
-
throw result.error;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return result.data;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Create new procedure with passed middlewares
|
|
183
|
-
* @param middlewares
|
|
184
|
-
*/
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
inheritMiddlewares(middlewares) {
|
|
188
|
-
const Constructor = this.constructor;
|
|
189
|
-
const instance = new Constructor({
|
|
190
|
-
middlewares: [...middlewares, ...this.middlewares],
|
|
191
|
-
resolver: this.resolver,
|
|
192
|
-
inputParser: this.inputParser
|
|
193
|
-
});
|
|
194
|
-
return instance;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
function createProcedure(opts) {
|
|
199
|
-
const inputParser = 'input' in opts ? opts.input : input => {
|
|
200
|
-
if (input != null) {
|
|
201
|
-
throw new transformTRPCResponse.TRPCError({
|
|
202
|
-
code: 'BAD_REQUEST',
|
|
203
|
-
message: 'No input expected'
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
return undefined;
|
|
208
|
-
};
|
|
209
|
-
return new Procedure({
|
|
210
|
-
inputParser: inputParser,
|
|
211
|
-
resolver: opts.resolve,
|
|
212
|
-
middlewares: []
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
217
|
-
nodeHTTPRequestHandler.assertNotBrowser();
|
|
218
|
-
/**
|
|
219
|
-
* @public
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
function getDataTransformer(transformer) {
|
|
223
|
-
if ('input' in transformer) {
|
|
224
|
-
return transformer;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
return {
|
|
228
|
-
input: transformer,
|
|
229
|
-
output: transformer
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* @internal
|
|
234
|
-
*/
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const PROCEDURE_DEFINITION_MAP = {
|
|
238
|
-
query: 'queries',
|
|
239
|
-
mutation: 'mutations',
|
|
240
|
-
subscription: 'subscriptions'
|
|
241
|
-
};
|
|
242
|
-
/**
|
|
243
|
-
* @internal
|
|
244
|
-
*/
|
|
245
|
-
|
|
246
|
-
function safeObject(...args) {
|
|
247
|
-
return Object.assign(Object.create(null), ...args);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
const defaultFormatter = ({
|
|
251
|
-
shape
|
|
252
|
-
}) => {
|
|
253
|
-
return shape;
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
const defaultTransformer = {
|
|
257
|
-
input: {
|
|
258
|
-
serialize: obj => obj,
|
|
259
|
-
deserialize: obj => obj
|
|
260
|
-
},
|
|
261
|
-
output: {
|
|
262
|
-
serialize: obj => obj,
|
|
263
|
-
deserialize: obj => obj
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* @internal The type signature of this class may change without warning.
|
|
269
|
-
*/
|
|
270
|
-
class Router {
|
|
271
|
-
constructor(def) {
|
|
272
|
-
var _def$queries, _def$mutations, _def$subscriptions, _def$middlewares, _def$errorFormatter, _def$transformer;
|
|
273
|
-
|
|
274
|
-
this._def = void 0;
|
|
275
|
-
this._def = {
|
|
276
|
-
queries: (_def$queries = def === null || def === void 0 ? void 0 : def.queries) !== null && _def$queries !== void 0 ? _def$queries : safeObject(),
|
|
277
|
-
mutations: (_def$mutations = def === null || def === void 0 ? void 0 : def.mutations) !== null && _def$mutations !== void 0 ? _def$mutations : safeObject(),
|
|
278
|
-
subscriptions: (_def$subscriptions = def === null || def === void 0 ? void 0 : def.subscriptions) !== null && _def$subscriptions !== void 0 ? _def$subscriptions : safeObject(),
|
|
279
|
-
middlewares: (_def$middlewares = def === null || def === void 0 ? void 0 : def.middlewares) !== null && _def$middlewares !== void 0 ? _def$middlewares : [],
|
|
280
|
-
errorFormatter: (_def$errorFormatter = def === null || def === void 0 ? void 0 : def.errorFormatter) !== null && _def$errorFormatter !== void 0 ? _def$errorFormatter : defaultFormatter,
|
|
281
|
-
transformer: (_def$transformer = def === null || def === void 0 ? void 0 : def.transformer) !== null && _def$transformer !== void 0 ? _def$transformer : defaultTransformer
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
static prefixProcedures(procedures, prefix) {
|
|
286
|
-
const eps = safeObject();
|
|
287
|
-
|
|
288
|
-
for (const key in procedures) {
|
|
289
|
-
eps[prefix + key] = procedures[key];
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
return eps;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
query(path, procedure) {
|
|
296
|
-
const router = new Router({
|
|
297
|
-
queries: safeObject({
|
|
298
|
-
[path]: createProcedure(procedure)
|
|
299
|
-
})
|
|
300
|
-
});
|
|
301
|
-
return this.merge(router);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
mutation(path, procedure) {
|
|
305
|
-
const router = new Router({
|
|
306
|
-
mutations: safeObject({
|
|
307
|
-
[path]: createProcedure(procedure)
|
|
308
|
-
})
|
|
309
|
-
});
|
|
310
|
-
return this.merge(router);
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* @beta Might change without a major version bump
|
|
314
|
-
*/
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
subscription(path, procedure) {
|
|
318
|
-
const router = new Router({
|
|
319
|
-
subscriptions: safeObject({
|
|
320
|
-
[path]: createProcedure(procedure)
|
|
321
|
-
})
|
|
322
|
-
});
|
|
323
|
-
return this.merge(router);
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Merge router with other router
|
|
327
|
-
* @param router
|
|
328
|
-
*/
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
merge(prefixOrRouter, maybeRouter) {
|
|
332
|
-
let prefix = '';
|
|
333
|
-
let childRouter;
|
|
334
|
-
|
|
335
|
-
if (typeof prefixOrRouter === 'string' && maybeRouter instanceof Router) {
|
|
336
|
-
prefix = prefixOrRouter;
|
|
337
|
-
childRouter = maybeRouter;
|
|
338
|
-
} else if (prefixOrRouter instanceof Router) {
|
|
339
|
-
childRouter = prefixOrRouter;
|
|
340
|
-
}
|
|
341
|
-
/* istanbul ignore next */
|
|
342
|
-
else {
|
|
343
|
-
throw new Error('Invalid args');
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
const duplicateQueries = Object.keys(childRouter._def.queries).filter(key => !!this._def['queries'][prefix + key]);
|
|
347
|
-
const duplicateMutations = Object.keys(childRouter._def.mutations).filter(key => !!this._def['mutations'][prefix + key]);
|
|
348
|
-
const duplicateSubscriptions = Object.keys(childRouter._def.subscriptions).filter(key => !!this._def['subscriptions'][prefix + key]);
|
|
349
|
-
const duplicates = [...duplicateQueries, ...duplicateMutations, ...duplicateSubscriptions];
|
|
350
|
-
|
|
351
|
-
if (duplicates.length) {
|
|
352
|
-
throw new Error(`Duplicate endpoint(s): ${duplicates.join(', ')}`);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
const mergeProcedures = defs => {
|
|
356
|
-
const newDefs = safeObject();
|
|
357
|
-
|
|
358
|
-
for (const key in defs) {
|
|
359
|
-
const procedure = defs[key];
|
|
360
|
-
const newProcedure = procedure.inheritMiddlewares(this._def.middlewares);
|
|
361
|
-
newDefs[key] = newProcedure;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
return Router.prefixProcedures(newDefs, prefix);
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
return new Router({ ...this._def,
|
|
368
|
-
queries: safeObject(this._def.queries, mergeProcedures(childRouter._def.queries)),
|
|
369
|
-
mutations: safeObject(this._def.mutations, mergeProcedures(childRouter._def.mutations)),
|
|
370
|
-
subscriptions: safeObject(this._def.subscriptions, mergeProcedures(childRouter._def.subscriptions))
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
/**
|
|
374
|
-
* Invoke procedure. Only for internal use within library.
|
|
375
|
-
*/
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
async call(opts) {
|
|
379
|
-
const {
|
|
380
|
-
type,
|
|
381
|
-
path
|
|
382
|
-
} = opts;
|
|
383
|
-
const defTarget = PROCEDURE_DEFINITION_MAP[type];
|
|
384
|
-
const defs = this._def[defTarget];
|
|
385
|
-
const procedure = defs[path];
|
|
386
|
-
|
|
387
|
-
if (!procedure) {
|
|
388
|
-
throw new transformTRPCResponse.TRPCError({
|
|
389
|
-
code: 'NOT_FOUND',
|
|
390
|
-
message: `No "${type}"-procedure on path "${path}"`
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
return procedure.call(opts);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
createCaller(ctx) {
|
|
398
|
-
return {
|
|
399
|
-
query: (path, ...args) => {
|
|
400
|
-
return this.call({
|
|
401
|
-
type: 'query',
|
|
402
|
-
ctx,
|
|
403
|
-
path,
|
|
404
|
-
rawInput: args[0]
|
|
405
|
-
});
|
|
406
|
-
},
|
|
407
|
-
mutation: (path, ...args) => {
|
|
408
|
-
return this.call({
|
|
409
|
-
type: 'mutation',
|
|
410
|
-
ctx,
|
|
411
|
-
path,
|
|
412
|
-
rawInput: args[0]
|
|
413
|
-
});
|
|
414
|
-
},
|
|
415
|
-
subscription: (path, ...args) => {
|
|
416
|
-
return this.call({
|
|
417
|
-
type: 'subscription',
|
|
418
|
-
ctx,
|
|
419
|
-
path,
|
|
420
|
-
rawInput: args[0]
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
};
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Function to be called before any procedure is invoked
|
|
427
|
-
* @link https://trpc.io/docs/middlewares
|
|
428
|
-
*/
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
middleware(middleware) {
|
|
432
|
-
return new Router({ ...this._def,
|
|
433
|
-
middlewares: [...this._def.middlewares, middleware]
|
|
434
|
-
});
|
|
435
|
-
}
|
|
436
|
-
/**
|
|
437
|
-
* Format errors
|
|
438
|
-
* @link https://trpc.io/docs/error-formatting
|
|
439
|
-
*/
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
formatError(errorFormatter) {
|
|
443
|
-
if (this._def.errorFormatter !== defaultFormatter) {
|
|
444
|
-
throw new Error('You seem to have double `formatError()`-calls in your router tree');
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
return new Router({ ...this._def,
|
|
448
|
-
errorFormatter: errorFormatter
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
getErrorShape(opts) {
|
|
453
|
-
const {
|
|
454
|
-
path,
|
|
455
|
-
error
|
|
456
|
-
} = opts;
|
|
457
|
-
const {
|
|
458
|
-
code
|
|
459
|
-
} = opts.error;
|
|
460
|
-
const shape = {
|
|
461
|
-
message: error.message,
|
|
462
|
-
code: codes.TRPC_ERROR_CODES_BY_KEY[code],
|
|
463
|
-
data: {
|
|
464
|
-
code,
|
|
465
|
-
httpStatus: nodeHTTPRequestHandler.getHTTPStatusCodeFromError(error)
|
|
466
|
-
}
|
|
467
|
-
};
|
|
468
|
-
|
|
469
|
-
if (typeof path === 'string') {
|
|
470
|
-
shape.data.path = path;
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
return this._def.errorFormatter({ ...opts,
|
|
474
|
-
shape
|
|
475
|
-
});
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Add data transformer to serialize/deserialize input args + output
|
|
479
|
-
* @link https://trpc.io/docs/data-transformers
|
|
480
|
-
*/
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
transformer(_transformer) {
|
|
484
|
-
const transformer = getDataTransformer(_transformer);
|
|
485
|
-
|
|
486
|
-
if (this._def.transformer !== defaultTransformer) {
|
|
487
|
-
throw new Error('You seem to have double `transformer()`-calls in your router tree');
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
return new Router({ ...this._def,
|
|
491
|
-
transformer
|
|
492
|
-
});
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Flattens the generics of TQueries/TMutations/TSubscriptions.
|
|
496
|
-
* ⚠️ Experimental - might disappear. ⚠️
|
|
497
|
-
*
|
|
498
|
-
* @alpha
|
|
499
|
-
*/
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
flat() {
|
|
503
|
-
return this;
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
}
|
|
507
|
-
/**
|
|
508
|
-
* Subclass of `VNextRouter` with `TInputContext` and `TContext` set to the same type, for backcompat.
|
|
509
|
-
*
|
|
510
|
-
* @deprecated
|
|
511
|
-
*/
|
|
512
|
-
|
|
513
|
-
class LegacyRouter extends Router {}
|
|
514
|
-
function router() {
|
|
515
|
-
return new Router();
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
exports.assertNotBrowser = nodeHTTPRequestHandler.assertNotBrowser;
|
|
519
|
-
exports.resolveHTTPResponse = nodeHTTPRequestHandler.resolveHTTPResponse;
|
|
520
|
-
exports.Subscription = subscription.Subscription;
|
|
521
|
-
exports.subscriptionPullFactory = subscription.subscriptionPullFactory;
|
|
522
|
-
exports.TRPCError = transformTRPCResponse.TRPCError;
|
|
523
|
-
exports.LegacyRouter = LegacyRouter;
|
|
524
|
-
exports.Router = LegacyRouter;
|
|
525
|
-
exports.createHttpHandler = createHttpHandler;
|
|
526
|
-
exports.createHttpServer = createHttpServer;
|
|
527
|
-
exports.requestHandler = requestHandler;
|
|
528
|
-
exports.router = router;
|
package/rpc/package.json
DELETED
package/ws/package.json
DELETED