@trpc/server 10.0.0-alpha.21 → 10.0.0-alpha.22
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 +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 +2 -2
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +2 -2
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +2 -2
- package/adapters/fastify/index.js +1 -1
- package/adapters/fetch/index.d.ts +1 -0
- package/adapters/fetch/index.js +1 -0
- 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/dist/{transformTRPCResponse-9fdeecca.mjs → TRPCError-7971540a.mjs} +1 -53
- package/dist/{transformTRPCResponse-a57d3226.js → TRPCError-ddec3395.js} +0 -54
- package/dist/adapters/express.js +5 -4
- package/dist/adapters/express.mjs +5 -4
- package/dist/adapters/fastify/index.js +5 -5
- package/dist/adapters/fastify/index.mjs +5 -5
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
- package/dist/adapters/fetch/index.d.ts +3 -0
- package/dist/adapters/fetch/index.d.ts.map +1 -0
- package/dist/adapters/fetch/index.js +69 -0
- package/dist/adapters/fetch/index.mjs +65 -0
- package/dist/adapters/fetch/index.ts.js +1 -0
- package/dist/adapters/fetch/types.d.ts +21 -0
- package/dist/adapters/fetch/types.d.ts.map +1 -0
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +9 -9
- package/dist/adapters/next.mjs +8 -8
- package/dist/adapters/node-http/index.js +5 -4
- package/dist/adapters/node-http/index.mjs +5 -4
- package/dist/adapters/node-http/types.d.ts +1 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -4
- package/dist/adapters/standalone.mjs +5 -4
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +117 -80
- package/dist/adapters/ws.mjs +111 -74
- package/dist/{codes-6c13cf43.mjs → envelopes-1deb2fa7.mjs} +17 -1
- package/dist/{codes-4e4d55a9.js → envelopes-a953b930.js} +16 -0
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -51
- package/dist/index.mjs +30 -42
- package/dist/internals/callProcedure.d.ts +2 -2
- package/dist/internals/callProcedure.d.ts.map +1 -1
- package/dist/internals/procedure.d.ts +4 -3
- package/dist/internals/procedure.d.ts.map +1 -1
- package/dist/internals/transformTRPCResponse.d.ts +4 -2
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-13c4bded.mjs → nodeHTTPRequestHandler-1cdb6383.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-745e43e5.js → nodeHTTPRequestHandler-848f07b5.js} +3 -3
- package/dist/observable/index.d.ts +5 -0
- package/dist/observable/index.d.ts.map +1 -0
- package/dist/observable/index.js +204 -0
- package/dist/observable/index.mjs +195 -0
- package/dist/observable/index.ts.js +1 -0
- package/dist/observable/internals/identity.d.ts +2 -0
- package/dist/observable/internals/identity.d.ts.map +1 -0
- package/dist/observable/internals/observableToPromise.d.ts +10 -0
- package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
- package/dist/observable/internals/pipe.d.ts +4 -0
- package/dist/observable/internals/pipe.d.ts.map +1 -0
- package/dist/observable/observable.d.ts +5 -0
- package/dist/observable/observable.d.ts.map +1 -0
- package/dist/observable/operators/index.d.ts +4 -0
- package/dist/observable/operators/index.d.ts.map +1 -0
- package/dist/observable/operators/map.d.ts +3 -0
- package/dist/observable/operators/map.d.ts.map +1 -0
- package/dist/observable/operators/share.d.ts +6 -0
- package/dist/observable/operators/share.d.ts.map +1 -0
- package/dist/observable/operators/tap.d.ts +3 -0
- package/dist/observable/operators/tap.d.ts.map +1 -0
- package/dist/observable/types.d.ts +29 -0
- package/dist/observable/types.d.ts.map +1 -0
- package/dist/observable-137ea1bd.mjs +105 -0
- package/dist/observable-3aa4d911.js +108 -0
- package/dist/{resolveHTTPResponse-de40fda7.mjs → resolveHTTPResponse-54a79e6c.mjs} +14 -20
- package/dist/{resolveHTTPResponse-b1167b6a.js → resolveHTTPResponse-ec3dccaa.js} +21 -27
- package/dist/router.d.ts +6 -6
- package/dist/router.d.ts.map +1 -1
- package/dist/rpc/envelopes.d.ts +61 -39
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.js +7 -3
- package/dist/rpc/index.mjs +1 -1
- package/dist/subscription.d.ts +3 -52
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +44 -0
- package/dist/subscription.mjs +40 -0
- package/dist/subscription.ts.js +1 -0
- package/dist/transformTRPCResponse-333bed6c.js +56 -0
- package/dist/transformTRPCResponse-e0cba527.mjs +53 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/observable/index.d.ts +1 -0
- package/observable/index.js +1 -0
- package/package.json +24 -7
- package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
- package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
- package/rpc/dist/trpc-server-rpc.esm.js +1 -1
- package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
- package/src/adapters/fetch/index.ts +2 -0
- package/src/adapters/fetch/types.ts +28 -0
- package/src/adapters/next.ts +3 -5
- package/src/adapters/node-http/types.ts +1 -2
- package/src/adapters/ws.ts +109 -71
- package/src/http/resolveHTTPResponse.ts +16 -20
- package/src/index.ts +0 -1
- package/src/internals/callProcedure.ts +6 -3
- package/src/internals/procedure.ts +40 -27
- package/src/internals/transformTRPCResponse.ts +20 -15
- package/src/observable/index.ts +4 -0
- package/src/observable/internals/identity.ts +3 -0
- package/src/observable/internals/observableToPromise.ts +49 -0
- package/src/observable/internals/pipe.ts +22 -0
- package/src/observable/observable.test.ts +101 -0
- package/src/observable/observable.ts +75 -0
- package/src/observable/operators/index.ts +3 -0
- package/src/observable/operators/map.test.ts +92 -0
- package/src/observable/operators/map.ts +25 -0
- package/src/observable/operators/share.test.ts +60 -0
- package/src/observable/operators/share.ts +67 -0
- package/src/observable/operators/tap.ts +26 -0
- package/src/observable/types.ts +69 -0
- package/src/router.ts +7 -9
- package/src/rpc/envelopes.ts +87 -68
- package/src/subscription.ts +5 -123
- package/src/types.ts +7 -0
- package/dist/internals/wrapCallSafe.d.ts +0 -16
- package/dist/internals/wrapCallSafe.d.ts.map +0 -1
- package/dist/subscription-4b936ba3.js +0 -136
- package/dist/subscription-8a85f253.mjs +0 -133
- package/src/internals/wrapCallSafe.ts +0 -19
- package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
- package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
- package/ws/dist/trpc-server-ws.cjs.js +0 -7
- package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
- package/ws/dist/trpc-server-ws.esm.js +0 -11
- package/ws/index.d.ts +0 -1
- package/ws/index.js +0 -1
package/dist/adapters/ws.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as TRPCError, g as getCauseFromUnknown,
|
|
2
|
-
import {
|
|
3
|
-
import '
|
|
1
|
+
import { T as TRPCError, g as getCauseFromUnknown, a as getErrorFromUnknown } from '../TRPCError-7971540a.mjs';
|
|
2
|
+
import { t as transformTRPCResponse, c as callProcedure } from '../transformTRPCResponse-e0cba527.mjs';
|
|
3
|
+
import { i as isObservable } from '../observable-137ea1bd.mjs';
|
|
4
4
|
|
|
5
5
|
/* istanbul ignore next */
|
|
6
6
|
function assertIsObject(obj) {
|
|
@@ -55,8 +55,8 @@ function parseMessage(obj, transformer) {
|
|
|
55
55
|
if (method === 'subscription.stop') {
|
|
56
56
|
return {
|
|
57
57
|
id,
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
jsonrpc,
|
|
59
|
+
method
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -69,8 +69,8 @@ function parseMessage(obj, transformer) {
|
|
|
69
69
|
assertIsString(path);
|
|
70
70
|
const input = transformer.input.deserialize(rawInput);
|
|
71
71
|
return {
|
|
72
|
-
jsonrpc,
|
|
73
72
|
id,
|
|
73
|
+
jsonrpc,
|
|
74
74
|
method,
|
|
75
75
|
params: {
|
|
76
76
|
input,
|
|
@@ -99,6 +99,20 @@ function applyWSSHandler(opts) {
|
|
|
99
99
|
client.send(JSON.stringify(transformTRPCResponse(router, untransformedJSON)));
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
function stopSubscription(subscription, {
|
|
103
|
+
id,
|
|
104
|
+
jsonrpc
|
|
105
|
+
}) {
|
|
106
|
+
subscription.unsubscribe();
|
|
107
|
+
respond({
|
|
108
|
+
id,
|
|
109
|
+
jsonrpc,
|
|
110
|
+
result: {
|
|
111
|
+
type: 'stopped'
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
102
116
|
const ctxPromise = createContext === null || createContext === void 0 ? void 0 : createContext({
|
|
103
117
|
req,
|
|
104
118
|
res: client
|
|
@@ -107,7 +121,8 @@ function applyWSSHandler(opts) {
|
|
|
107
121
|
|
|
108
122
|
async function handleRequest(msg) {
|
|
109
123
|
const {
|
|
110
|
-
id
|
|
124
|
+
id,
|
|
125
|
+
jsonrpc
|
|
111
126
|
} = msg;
|
|
112
127
|
/* istanbul ignore next */
|
|
113
128
|
|
|
@@ -122,7 +137,10 @@ function applyWSSHandler(opts) {
|
|
|
122
137
|
const sub = clientSubscriptions.get(id);
|
|
123
138
|
|
|
124
139
|
if (sub) {
|
|
125
|
-
sub
|
|
140
|
+
stopSubscription(sub, {
|
|
141
|
+
id,
|
|
142
|
+
jsonrpc
|
|
143
|
+
});
|
|
126
144
|
}
|
|
127
145
|
|
|
128
146
|
clientSubscriptions.delete(id);
|
|
@@ -146,9 +164,18 @@ function applyWSSHandler(opts) {
|
|
|
146
164
|
ctx
|
|
147
165
|
});
|
|
148
166
|
|
|
149
|
-
if (
|
|
167
|
+
if (type === 'subscription') {
|
|
168
|
+
if (!isObservable(result)) {
|
|
169
|
+
throw new TRPCError({
|
|
170
|
+
message: `Subscription ${path} did not return an observable`,
|
|
171
|
+
code: 'INTERNAL_SERVER_ERROR'
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
} else {
|
|
175
|
+
// send the value as data if the method is not a subscription
|
|
150
176
|
respond({
|
|
151
177
|
id,
|
|
178
|
+
jsonrpc,
|
|
152
179
|
result: {
|
|
153
180
|
type: 'data',
|
|
154
181
|
data: result
|
|
@@ -157,12 +184,61 @@ function applyWSSHandler(opts) {
|
|
|
157
184
|
return;
|
|
158
185
|
}
|
|
159
186
|
|
|
160
|
-
const
|
|
187
|
+
const observable = result;
|
|
188
|
+
const sub = observable.subscribe({
|
|
189
|
+
next(data) {
|
|
190
|
+
respond({
|
|
191
|
+
id,
|
|
192
|
+
jsonrpc,
|
|
193
|
+
result: {
|
|
194
|
+
type: 'data',
|
|
195
|
+
data
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
},
|
|
199
|
+
|
|
200
|
+
error(err) {
|
|
201
|
+
var _opts$onError;
|
|
202
|
+
|
|
203
|
+
const error = getErrorFromUnknown(err);
|
|
204
|
+
(_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
|
|
205
|
+
error,
|
|
206
|
+
path,
|
|
207
|
+
type,
|
|
208
|
+
ctx,
|
|
209
|
+
req,
|
|
210
|
+
input
|
|
211
|
+
});
|
|
212
|
+
respond({
|
|
213
|
+
id,
|
|
214
|
+
jsonrpc,
|
|
215
|
+
error: router.getErrorShape({
|
|
216
|
+
error,
|
|
217
|
+
type,
|
|
218
|
+
path,
|
|
219
|
+
input,
|
|
220
|
+
ctx
|
|
221
|
+
})
|
|
222
|
+
});
|
|
223
|
+
},
|
|
224
|
+
|
|
225
|
+
complete() {
|
|
226
|
+
respond({
|
|
227
|
+
id,
|
|
228
|
+
jsonrpc,
|
|
229
|
+
result: {
|
|
230
|
+
type: 'stopped'
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
});
|
|
161
236
|
/* istanbul ignore next */
|
|
162
237
|
|
|
163
238
|
if (client.readyState !== client.OPEN) {
|
|
164
239
|
// if the client got disconnected whilst initializing the subscription
|
|
165
|
-
|
|
240
|
+
// no need to send stopped message if the client is disconnected
|
|
241
|
+
sub.unsubscribe();
|
|
166
242
|
return;
|
|
167
243
|
}
|
|
168
244
|
/* istanbul ignore next */
|
|
@@ -170,7 +246,10 @@ function applyWSSHandler(opts) {
|
|
|
170
246
|
|
|
171
247
|
if (clientSubscriptions.has(id)) {
|
|
172
248
|
// duplicate request ids for client
|
|
173
|
-
sub
|
|
249
|
+
stopSubscription(sub, {
|
|
250
|
+
id,
|
|
251
|
+
jsonrpc
|
|
252
|
+
});
|
|
174
253
|
throw new TRPCError({
|
|
175
254
|
message: `Duplicate id ${id}`,
|
|
176
255
|
code: 'BAD_REQUEST'
|
|
@@ -178,54 +257,13 @@ function applyWSSHandler(opts) {
|
|
|
178
257
|
}
|
|
179
258
|
|
|
180
259
|
clientSubscriptions.set(id, sub);
|
|
181
|
-
sub.on('data', data => {
|
|
182
|
-
respond({
|
|
183
|
-
id,
|
|
184
|
-
result: {
|
|
185
|
-
type: 'data',
|
|
186
|
-
data
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
sub.on('error', _error => {
|
|
191
|
-
var _opts$onError;
|
|
192
|
-
|
|
193
|
-
const error = getErrorFromUnknown(_error);
|
|
194
|
-
const json = {
|
|
195
|
-
id,
|
|
196
|
-
error: router.getErrorShape({
|
|
197
|
-
error,
|
|
198
|
-
type,
|
|
199
|
-
path,
|
|
200
|
-
input,
|
|
201
|
-
ctx
|
|
202
|
-
})
|
|
203
|
-
};
|
|
204
|
-
(_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
|
|
205
|
-
error,
|
|
206
|
-
path,
|
|
207
|
-
type,
|
|
208
|
-
ctx,
|
|
209
|
-
req,
|
|
210
|
-
input
|
|
211
|
-
});
|
|
212
|
-
respond(json);
|
|
213
|
-
});
|
|
214
|
-
sub.on('destroy', () => {
|
|
215
|
-
respond({
|
|
216
|
-
id,
|
|
217
|
-
result: {
|
|
218
|
-
type: 'stopped'
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
260
|
respond({
|
|
223
261
|
id,
|
|
262
|
+
jsonrpc,
|
|
224
263
|
result: {
|
|
225
264
|
type: 'started'
|
|
226
265
|
}
|
|
227
266
|
});
|
|
228
|
-
await sub.start();
|
|
229
267
|
} catch (cause)
|
|
230
268
|
/* istanbul ignore next */
|
|
231
269
|
{
|
|
@@ -233,13 +271,6 @@ function applyWSSHandler(opts) {
|
|
|
233
271
|
|
|
234
272
|
// procedure threw an error
|
|
235
273
|
const error = getErrorFromUnknown(cause);
|
|
236
|
-
const json = router.getErrorShape({
|
|
237
|
-
error,
|
|
238
|
-
type,
|
|
239
|
-
path,
|
|
240
|
-
input,
|
|
241
|
-
ctx
|
|
242
|
-
});
|
|
243
274
|
(_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, {
|
|
244
275
|
error,
|
|
245
276
|
path,
|
|
@@ -250,7 +281,14 @@ function applyWSSHandler(opts) {
|
|
|
250
281
|
});
|
|
251
282
|
respond({
|
|
252
283
|
id,
|
|
253
|
-
|
|
284
|
+
jsonrpc,
|
|
285
|
+
error: router.getErrorShape({
|
|
286
|
+
error,
|
|
287
|
+
type,
|
|
288
|
+
path,
|
|
289
|
+
input,
|
|
290
|
+
ctx
|
|
291
|
+
})
|
|
254
292
|
});
|
|
255
293
|
}
|
|
256
294
|
}
|
|
@@ -280,7 +318,7 @@ function applyWSSHandler(opts) {
|
|
|
280
318
|
});
|
|
281
319
|
client.once('close', () => {
|
|
282
320
|
for (const sub of clientSubscriptions.values()) {
|
|
283
|
-
sub.
|
|
321
|
+
sub.unsubscribe();
|
|
284
322
|
}
|
|
285
323
|
|
|
286
324
|
clientSubscriptions.clear();
|
|
@@ -293,16 +331,6 @@ function applyWSSHandler(opts) {
|
|
|
293
331
|
var _opts$onError3, _global$setImmediate;
|
|
294
332
|
|
|
295
333
|
const error = getErrorFromUnknown(cause);
|
|
296
|
-
const json = {
|
|
297
|
-
id: null,
|
|
298
|
-
error: router.getErrorShape({
|
|
299
|
-
error,
|
|
300
|
-
type: 'unknown',
|
|
301
|
-
path: undefined,
|
|
302
|
-
input: undefined,
|
|
303
|
-
ctx
|
|
304
|
-
})
|
|
305
|
-
};
|
|
306
334
|
(_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
|
|
307
335
|
error,
|
|
308
336
|
path: undefined,
|
|
@@ -311,7 +339,16 @@ function applyWSSHandler(opts) {
|
|
|
311
339
|
req,
|
|
312
340
|
input: undefined
|
|
313
341
|
});
|
|
314
|
-
respond(
|
|
342
|
+
respond({
|
|
343
|
+
id: null,
|
|
344
|
+
error: router.getErrorShape({
|
|
345
|
+
error,
|
|
346
|
+
type: 'unknown',
|
|
347
|
+
path: undefined,
|
|
348
|
+
input: undefined,
|
|
349
|
+
ctx
|
|
350
|
+
})
|
|
351
|
+
}); // close in next tick
|
|
315
352
|
|
|
316
353
|
((_global$setImmediate = global.setImmediate) !== null && _global$setImmediate !== void 0 ? _global$setImmediate : global.setTimeout)(() => {
|
|
317
354
|
client.close();
|
|
@@ -55,4 +55,20 @@ const TRPC_ERROR_CODES_BY_KEY = {
|
|
|
55
55
|
};
|
|
56
56
|
const TRPC_ERROR_CODES_BY_NUMBER = /*#__PURE__*/invert(TRPC_ERROR_CODES_BY_KEY);
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
/* eslint-disable @typescript-eslint/no-namespace */
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Error response
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* JSON-RPC 2.0 Specification
|
|
66
|
+
*/
|
|
67
|
+
let JSONRPC2;
|
|
68
|
+
/**
|
|
69
|
+
* TRPC HTTP Envelopes
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
(function (_JSONRPC) {})(JSONRPC2 || (JSONRPC2 = {}));
|
|
73
|
+
|
|
74
|
+
export { JSONRPC2 as J, TRPC_ERROR_CODES_BY_KEY as T, TRPC_ERROR_CODES_BY_NUMBER as a, invert as i };
|
|
@@ -57,6 +57,22 @@ const TRPC_ERROR_CODES_BY_KEY = {
|
|
|
57
57
|
};
|
|
58
58
|
const TRPC_ERROR_CODES_BY_NUMBER = /*#__PURE__*/invert(TRPC_ERROR_CODES_BY_KEY);
|
|
59
59
|
|
|
60
|
+
/* eslint-disable @typescript-eslint/no-namespace */
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Error response
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* JSON-RPC 2.0 Specification
|
|
68
|
+
*/
|
|
69
|
+
exports.JSONRPC2 = void 0;
|
|
70
|
+
/**
|
|
71
|
+
* TRPC HTTP Envelopes
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
(function (_JSONRPC) {})(exports.JSONRPC2 || (exports.JSONRPC2 = {}));
|
|
75
|
+
|
|
60
76
|
exports.TRPC_ERROR_CODES_BY_KEY = TRPC_ERROR_CODES_BY_KEY;
|
|
61
77
|
exports.TRPC_ERROR_CODES_BY_NUMBER = TRPC_ERROR_CODES_BY_NUMBER;
|
|
62
78
|
exports.invert = invert;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveHTTPResponse.d.ts","sourceRoot":"","sources":["../../src/http/resolveHTTPResponse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EACL,SAAS,EAET,kBAAkB,EAEnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EACL,sBAAsB,EAEtB,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AA4B3B,UAAU,yBAAyB,CACjC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,CAC5B,SAAQ,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACjD,aAAa,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,EAC5B,IAAI,EAAE,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"resolveHTTPResponse.d.ts","sourceRoot":"","sources":["../../src/http/resolveHTTPResponse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EACL,SAAS,EAET,kBAAkB,EAEnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EACL,sBAAsB,EAEtB,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AA4B3B,UAAU,yBAAyB,CACjC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,CAC5B,SAAQ,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACjD,aAAa,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,WAAW,EAC5B,IAAI,EAAE,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CA+L3E"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,35 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var resolveHTTPResponse = require('./resolveHTTPResponse-
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
require('events');
|
|
5
|
+
var resolveHTTPResponse = require('./resolveHTTPResponse-ec3dccaa.js');
|
|
6
|
+
var envelopes = require('./envelopes-a953b930.js');
|
|
7
|
+
var TRPCError = require('./TRPCError-ddec3395.js');
|
|
8
|
+
require('./transformTRPCResponse-333bed6c.js');
|
|
10
9
|
|
|
11
10
|
resolveHTTPResponse.assertNotBrowser();
|
|
12
11
|
|
|
13
12
|
const middlewareMarker = /*#__PURE__*/Symbol('middlewareMarker');
|
|
14
13
|
|
|
15
|
-
/**
|
|
16
|
-
* Wrap a function in a safe wrapper that never throws
|
|
17
|
-
* Returns a discriminated union
|
|
18
|
-
*/
|
|
19
|
-
async function wrapCallSafe(fn) {
|
|
20
|
-
try {
|
|
21
|
-
const data = await fn();
|
|
22
|
-
return {
|
|
23
|
-
ok: true,
|
|
24
|
-
data
|
|
25
|
-
};
|
|
26
|
-
} catch (cause) {
|
|
27
|
-
return {
|
|
28
|
-
ok: false,
|
|
29
|
-
error: cause
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
14
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
35
15
|
resolveHTTPResponse.assertNotBrowser();
|
|
36
16
|
|
|
@@ -91,9 +71,9 @@ class Procedure {
|
|
|
91
71
|
try {
|
|
92
72
|
return await this.parseInputFn(rawInput);
|
|
93
73
|
} catch (cause) {
|
|
94
|
-
throw new
|
|
74
|
+
throw new TRPCError.TRPCError({
|
|
95
75
|
code: 'BAD_REQUEST',
|
|
96
|
-
cause:
|
|
76
|
+
cause: TRPCError.getCauseFromUnknown(cause)
|
|
97
77
|
});
|
|
98
78
|
}
|
|
99
79
|
}
|
|
@@ -102,9 +82,9 @@ class Procedure {
|
|
|
102
82
|
try {
|
|
103
83
|
return await this.parseOutputFn(rawOutput);
|
|
104
84
|
} catch (cause) {
|
|
105
|
-
throw new
|
|
85
|
+
throw new TRPCError.TRPCError({
|
|
106
86
|
code: 'INTERNAL_SERVER_ERROR',
|
|
107
|
-
cause:
|
|
87
|
+
cause: TRPCError.getCauseFromUnknown(cause),
|
|
108
88
|
message: 'Output validation failed'
|
|
109
89
|
});
|
|
110
90
|
}
|
|
@@ -132,34 +112,42 @@ class Procedure {
|
|
|
132
112
|
data,
|
|
133
113
|
ctx
|
|
134
114
|
};
|
|
135
|
-
}]); //
|
|
115
|
+
}]); // run the middlewares recursively with the resolver as the last one
|
|
136
116
|
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
117
|
+
const callRecursive = async (callOpts = {
|
|
118
|
+
index: 0,
|
|
119
|
+
ctx: opts.ctx
|
|
120
|
+
}) => {
|
|
121
|
+
try {
|
|
122
|
+
const result = await middlewaresWithResolver[callOpts.index]({
|
|
123
|
+
ctx: callOpts.ctx,
|
|
141
124
|
type: opts.type,
|
|
142
125
|
path: opts.path,
|
|
143
126
|
rawInput: opts.rawInput,
|
|
144
127
|
meta: this.meta,
|
|
145
|
-
next:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
128
|
+
next: async nextOpts => {
|
|
129
|
+
return await callRecursive({
|
|
130
|
+
index: callOpts.index + 1,
|
|
131
|
+
ctx: nextOpts ? nextOpts.ctx : callOpts.ctx
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return result;
|
|
136
|
+
} catch (cause) {
|
|
152
137
|
return {
|
|
138
|
+
ctx: callOpts.ctx,
|
|
153
139
|
ok: false,
|
|
154
|
-
error:
|
|
140
|
+
error: TRPCError.getErrorFromUnknown(cause),
|
|
141
|
+
marker: middlewareMarker
|
|
155
142
|
};
|
|
156
|
-
}
|
|
157
|
-
}
|
|
143
|
+
}
|
|
144
|
+
}; // there's always at least one "next" since we wrap this.resolver in a middleware
|
|
145
|
+
|
|
158
146
|
|
|
159
|
-
const result = await
|
|
147
|
+
const result = await callRecursive();
|
|
160
148
|
|
|
161
149
|
if (!result) {
|
|
162
|
-
throw new
|
|
150
|
+
throw new TRPCError.TRPCError({
|
|
163
151
|
code: 'INTERNAL_SERVER_ERROR',
|
|
164
152
|
message: 'No result from middlewares - did you forget to `return next()`?'
|
|
165
153
|
});
|
|
@@ -194,7 +182,7 @@ class Procedure {
|
|
|
194
182
|
function createProcedure(opts) {
|
|
195
183
|
const inputParser = 'input' in opts ? opts.input : input => {
|
|
196
184
|
if (input != null) {
|
|
197
|
-
throw new
|
|
185
|
+
throw new TRPCError.TRPCError({
|
|
198
186
|
code: 'BAD_REQUEST',
|
|
199
187
|
message: 'No input expected'
|
|
200
188
|
});
|
|
@@ -384,7 +372,7 @@ class Router {
|
|
|
384
372
|
const procedure = defs[path];
|
|
385
373
|
|
|
386
374
|
if (!procedure) {
|
|
387
|
-
throw new
|
|
375
|
+
throw new TRPCError.TRPCError({
|
|
388
376
|
code: 'NOT_FOUND',
|
|
389
377
|
message: `No "${type}"-procedure on path "${path}"`
|
|
390
378
|
});
|
|
@@ -458,7 +446,7 @@ class Router {
|
|
|
458
446
|
} = opts.error;
|
|
459
447
|
const shape = {
|
|
460
448
|
message: error.message,
|
|
461
|
-
code:
|
|
449
|
+
code: envelopes.TRPC_ERROR_CODES_BY_KEY[code],
|
|
462
450
|
data: {
|
|
463
451
|
code,
|
|
464
452
|
httpStatus: resolveHTTPResponse.getHTTPStatusCodeFromError(error)
|
|
@@ -513,8 +501,6 @@ function router() {
|
|
|
513
501
|
|
|
514
502
|
exports.assertNotBrowser = resolveHTTPResponse.assertNotBrowser;
|
|
515
503
|
exports.resolveHTTPResponse = resolveHTTPResponse.resolveHTTPResponse;
|
|
516
|
-
exports.
|
|
517
|
-
exports.subscriptionPullFactory = subscription.subscriptionPullFactory;
|
|
518
|
-
exports.TRPCError = transformTRPCResponse.TRPCError;
|
|
504
|
+
exports.TRPCError = TRPCError.TRPCError;
|
|
519
505
|
exports.Router = Router;
|
|
520
506
|
exports.router = router;
|
package/dist/index.mjs
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
|
-
import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-
|
|
2
|
-
export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-
|
|
3
|
-
|
|
4
|
-
import { T as TRPCError, g as getCauseFromUnknown, a as getErrorFromUnknown } from './
|
|
5
|
-
export { T as TRPCError } from './
|
|
6
|
-
import
|
|
7
|
-
import 'events';
|
|
1
|
+
import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-54a79e6c.mjs';
|
|
2
|
+
export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-54a79e6c.mjs';
|
|
3
|
+
import { T as TRPC_ERROR_CODES_BY_KEY } from './envelopes-1deb2fa7.mjs';
|
|
4
|
+
import { T as TRPCError, g as getCauseFromUnknown, a as getErrorFromUnknown } from './TRPCError-7971540a.mjs';
|
|
5
|
+
export { T as TRPCError } from './TRPCError-7971540a.mjs';
|
|
6
|
+
import './transformTRPCResponse-e0cba527.mjs';
|
|
8
7
|
|
|
9
8
|
assertNotBrowser();
|
|
10
9
|
|
|
11
10
|
const middlewareMarker = /*#__PURE__*/Symbol('middlewareMarker');
|
|
12
11
|
|
|
13
|
-
/**
|
|
14
|
-
* Wrap a function in a safe wrapper that never throws
|
|
15
|
-
* Returns a discriminated union
|
|
16
|
-
*/
|
|
17
|
-
async function wrapCallSafe(fn) {
|
|
18
|
-
try {
|
|
19
|
-
const data = await fn();
|
|
20
|
-
return {
|
|
21
|
-
ok: true,
|
|
22
|
-
data
|
|
23
|
-
};
|
|
24
|
-
} catch (cause) {
|
|
25
|
-
return {
|
|
26
|
-
ok: false,
|
|
27
|
-
error: cause
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
12
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
33
13
|
assertNotBrowser();
|
|
34
14
|
|
|
@@ -130,31 +110,39 @@ class Procedure {
|
|
|
130
110
|
data,
|
|
131
111
|
ctx
|
|
132
112
|
};
|
|
133
|
-
}]); //
|
|
113
|
+
}]); // run the middlewares recursively with the resolver as the last one
|
|
134
114
|
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
115
|
+
const callRecursive = async (callOpts = {
|
|
116
|
+
index: 0,
|
|
117
|
+
ctx: opts.ctx
|
|
118
|
+
}) => {
|
|
119
|
+
try {
|
|
120
|
+
const result = await middlewaresWithResolver[callOpts.index]({
|
|
121
|
+
ctx: callOpts.ctx,
|
|
139
122
|
type: opts.type,
|
|
140
123
|
path: opts.path,
|
|
141
124
|
rawInput: opts.rawInput,
|
|
142
125
|
meta: this.meta,
|
|
143
|
-
next:
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
126
|
+
next: async nextOpts => {
|
|
127
|
+
return await callRecursive({
|
|
128
|
+
index: callOpts.index + 1,
|
|
129
|
+
ctx: nextOpts ? nextOpts.ctx : callOpts.ctx
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
return result;
|
|
134
|
+
} catch (cause) {
|
|
150
135
|
return {
|
|
136
|
+
ctx: callOpts.ctx,
|
|
151
137
|
ok: false,
|
|
152
|
-
error: getErrorFromUnknown(
|
|
138
|
+
error: getErrorFromUnknown(cause),
|
|
139
|
+
marker: middlewareMarker
|
|
153
140
|
};
|
|
154
|
-
}
|
|
155
|
-
}
|
|
141
|
+
}
|
|
142
|
+
}; // there's always at least one "next" since we wrap this.resolver in a middleware
|
|
143
|
+
|
|
156
144
|
|
|
157
|
-
const result = await
|
|
145
|
+
const result = await callRecursive();
|
|
158
146
|
|
|
159
147
|
if (!result) {
|
|
160
148
|
throw new TRPCError({
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { Observable } from '../observable';
|
|
1
2
|
import { AnyRouter, ProcedureType } from '../router';
|
|
2
|
-
import { Subscription } from '../subscription';
|
|
3
3
|
export declare function callProcedure<TRouter extends AnyRouter<TContext>, TContext>(opts: {
|
|
4
4
|
path: string;
|
|
5
5
|
input: unknown;
|
|
6
6
|
router: TRouter;
|
|
7
7
|
ctx: TContext;
|
|
8
8
|
type: ProcedureType;
|
|
9
|
-
}): Promise<unknown |
|
|
9
|
+
}): Promise<unknown | Observable<TRouter, any>>;
|
|
10
10
|
//# sourceMappingURL=callProcedure.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callProcedure.d.ts","sourceRoot":"","sources":["../../src/internals/callProcedure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"callProcedure.d.ts","sourceRoot":"","sources":["../../src/internals/callProcedure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAErD,wBAAsB,aAAa,CACjC,OAAO,SAAS,SAAS,CAAC,QAAQ,CAAC,EACnC,QAAQ,EACR,IAAI,EAAE;IACN,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;CACrB,GAAG,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAmB9C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ProcedureType } from '../router';
|
|
2
|
+
import { InferLast } from '../types';
|
|
2
3
|
import { MiddlewareFunction } from './middlewares';
|
|
3
4
|
export declare type ProcedureParserZodEsque<TInput, TOutput> = {
|
|
4
5
|
_input: TInput;
|
|
@@ -66,18 +67,18 @@ export declare type CreateProcedureWithInput<TContext, TMeta, TInput, TOutput> =
|
|
|
66
67
|
input: ProcedureParser<TInput>;
|
|
67
68
|
output?: ProcedureParser<TOutput>;
|
|
68
69
|
meta?: TMeta;
|
|
69
|
-
resolve: ProcedureResolver<TContext, TInput, TOutput
|
|
70
|
+
resolve: ProcedureResolver<TContext, TInput, InferLast<TOutput>>;
|
|
70
71
|
};
|
|
71
72
|
export declare type CreateProcedureWithInputOutputParser<TContext, TMeta, TInput, TParsedInput, TOutput, TParsedOutput> = {
|
|
72
73
|
input: ProcedureParserWithInputOutput<TInput, TParsedInput>;
|
|
73
74
|
output?: ProcedureParserWithInputOutput<TOutput, TParsedOutput>;
|
|
74
75
|
meta?: TMeta;
|
|
75
|
-
resolve: ProcedureResolver<TContext, TParsedInput, TOutput
|
|
76
|
+
resolve: ProcedureResolver<TContext, TParsedInput, InferLast<TOutput>>;
|
|
76
77
|
};
|
|
77
78
|
export declare type CreateProcedureWithoutInput<TContext, TMeta, TOutput, TParsedOutput> = {
|
|
78
79
|
output?: ProcedureParserWithInputOutput<TOutput, TParsedOutput> | ProcedureParser<TOutput>;
|
|
79
80
|
meta?: TMeta;
|
|
80
|
-
resolve: ProcedureResolver<TContext, undefined, TOutput
|
|
81
|
+
resolve: ProcedureResolver<TContext, undefined, InferLast<TOutput>>;
|
|
81
82
|
};
|
|
82
83
|
export declare type CreateProcedureOptions<TContext, TMeta = undefined, TInput = undefined, TParsedInput = undefined, TOutput = undefined, TParsedOutput = undefined> = CreateProcedureWithInputOutputParser<TContext, TMeta, TInput, TParsedInput, TOutput, TParsedOutput> | CreateProcedureWithInput<TContext, TMeta, TInput, TOutput> | CreateProcedureWithoutInput<TContext, TMeta, TOutput, TParsedOutput>;
|
|
83
84
|
export declare function createProcedure<TContext, TMeta, TInput, TParsedInput, TOutput, TParsedOutput>(opts: CreateProcedureOptions<TContext, TMeta, TInput, TParsedInput, TOutput, TParsedOutput>): Procedure<unknown, TContext, TMeta, TInput, TParsedInput, TOutput, TParsedOutput>;
|