@trpc/server 10.0.0-alpha.21 → 10.0.0-alpha.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +90 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +90 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +86 -0
- 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/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 +6 -6
- package/dist/adapters/fastify/index.mjs +6 -6
- 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 +6 -5
- 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 +1 -1
- 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/index.d.ts +1 -1
- package/dist/http/internals/types.d.ts +2 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/{ResponseMeta.d.ts → responseMeta.d.ts} +1 -1
- package/dist/http/responseMeta.d.ts.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -52
- package/dist/index.mjs +31 -43
- package/dist/internals/{BaseHandlerOptions.d.ts → baseHandlerOptions.d.ts} +2 -2
- package/dist/internals/{BaseHandlerOptions.d.ts.map → baseHandlerOptions.d.ts.map} +1 -1
- package/dist/internals/callProcedure.d.ts +2 -2
- package/dist/internals/callProcedure.d.ts.map +1 -1
- package/dist/internals/middlewares.d.ts +3 -1
- package/dist/internals/middlewares.d.ts.map +1 -1
- package/dist/internals/{OnErrorFunction.d.ts → onErrorFunction.d.ts} +1 -1
- package/dist/internals/{OnErrorFunction.d.ts.map → onErrorFunction.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 +25 -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/fastify/fastifyTRPCPlugin.ts +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 +6 -5
- package/src/adapters/ws.ts +110 -72
- package/src/http/index.ts +1 -1
- package/src/http/internals/types.ts +2 -2
- package/src/http/resolveHTTPResponse.ts +16 -20
- package/src/http/{ResponseMeta.ts → responseMeta.ts} +0 -0
- package/src/index.ts +0 -1
- package/src/internals/{BaseHandlerOptions.ts → baseHandlerOptions.ts} +1 -1
- package/src/internals/callProcedure.ts +6 -3
- package/src/internals/middlewares.ts +4 -1
- package/src/internals/{OnErrorFunction.ts → onErrorFunction.ts} +0 -0
- 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/http/ResponseMeta.d.ts.map +0 -1
- 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.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
require('
|
|
5
|
+
var TRPCError = require('../TRPCError-ddec3395.js');
|
|
6
|
+
var transformTRPCResponse = require('../transformTRPCResponse-333bed6c.js');
|
|
7
|
+
var observable = require('../observable-3aa4d911.js');
|
|
8
8
|
|
|
9
9
|
/* istanbul ignore next */
|
|
10
10
|
function assertIsObject(obj) {
|
|
@@ -59,8 +59,8 @@ function parseMessage(obj, transformer) {
|
|
|
59
59
|
if (method === 'subscription.stop') {
|
|
60
60
|
return {
|
|
61
61
|
id,
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
jsonrpc,
|
|
63
|
+
method
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -73,8 +73,8 @@ function parseMessage(obj, transformer) {
|
|
|
73
73
|
assertIsString(path);
|
|
74
74
|
const input = transformer.input.deserialize(rawInput);
|
|
75
75
|
return {
|
|
76
|
-
jsonrpc,
|
|
77
76
|
id,
|
|
77
|
+
jsonrpc,
|
|
78
78
|
method,
|
|
79
79
|
params: {
|
|
80
80
|
input,
|
|
@@ -103,6 +103,20 @@ function applyWSSHandler(opts) {
|
|
|
103
103
|
client.send(JSON.stringify(transformTRPCResponse.transformTRPCResponse(router, untransformedJSON)));
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
function stopSubscription(subscription, {
|
|
107
|
+
id,
|
|
108
|
+
jsonrpc
|
|
109
|
+
}) {
|
|
110
|
+
subscription.unsubscribe();
|
|
111
|
+
respond({
|
|
112
|
+
id,
|
|
113
|
+
jsonrpc,
|
|
114
|
+
result: {
|
|
115
|
+
type: 'stopped'
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
106
120
|
const ctxPromise = createContext === null || createContext === void 0 ? void 0 : createContext({
|
|
107
121
|
req,
|
|
108
122
|
res: client
|
|
@@ -111,12 +125,13 @@ function applyWSSHandler(opts) {
|
|
|
111
125
|
|
|
112
126
|
async function handleRequest(msg) {
|
|
113
127
|
const {
|
|
114
|
-
id
|
|
128
|
+
id,
|
|
129
|
+
jsonrpc
|
|
115
130
|
} = msg;
|
|
116
131
|
/* istanbul ignore next */
|
|
117
132
|
|
|
118
133
|
if (id === null) {
|
|
119
|
-
throw new
|
|
134
|
+
throw new TRPCError.TRPCError({
|
|
120
135
|
code: 'BAD_REQUEST',
|
|
121
136
|
message: '`id` is required'
|
|
122
137
|
});
|
|
@@ -126,7 +141,10 @@ function applyWSSHandler(opts) {
|
|
|
126
141
|
const sub = clientSubscriptions.get(id);
|
|
127
142
|
|
|
128
143
|
if (sub) {
|
|
129
|
-
sub
|
|
144
|
+
stopSubscription(sub, {
|
|
145
|
+
id,
|
|
146
|
+
jsonrpc
|
|
147
|
+
});
|
|
130
148
|
}
|
|
131
149
|
|
|
132
150
|
clientSubscriptions.delete(id);
|
|
@@ -150,9 +168,18 @@ function applyWSSHandler(opts) {
|
|
|
150
168
|
ctx
|
|
151
169
|
});
|
|
152
170
|
|
|
153
|
-
if (
|
|
171
|
+
if (type === 'subscription') {
|
|
172
|
+
if (!observable.isObservable(result)) {
|
|
173
|
+
throw new TRPCError.TRPCError({
|
|
174
|
+
message: `Subscription ${path} did not return an observable`,
|
|
175
|
+
code: 'INTERNAL_SERVER_ERROR'
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
} else {
|
|
179
|
+
// send the value as data if the method is not a subscription
|
|
154
180
|
respond({
|
|
155
181
|
id,
|
|
182
|
+
jsonrpc,
|
|
156
183
|
result: {
|
|
157
184
|
type: 'data',
|
|
158
185
|
data: result
|
|
@@ -161,12 +188,61 @@ function applyWSSHandler(opts) {
|
|
|
161
188
|
return;
|
|
162
189
|
}
|
|
163
190
|
|
|
164
|
-
const
|
|
191
|
+
const observable$1 = result;
|
|
192
|
+
const sub = observable$1.subscribe({
|
|
193
|
+
next(data) {
|
|
194
|
+
respond({
|
|
195
|
+
id,
|
|
196
|
+
jsonrpc,
|
|
197
|
+
result: {
|
|
198
|
+
type: 'data',
|
|
199
|
+
data
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
error(err) {
|
|
205
|
+
var _opts$onError;
|
|
206
|
+
|
|
207
|
+
const error = TRPCError.getErrorFromUnknown(err);
|
|
208
|
+
(_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
|
|
209
|
+
error,
|
|
210
|
+
path,
|
|
211
|
+
type,
|
|
212
|
+
ctx,
|
|
213
|
+
req,
|
|
214
|
+
input
|
|
215
|
+
});
|
|
216
|
+
respond({
|
|
217
|
+
id,
|
|
218
|
+
jsonrpc,
|
|
219
|
+
error: router.getErrorShape({
|
|
220
|
+
error,
|
|
221
|
+
type,
|
|
222
|
+
path,
|
|
223
|
+
input,
|
|
224
|
+
ctx
|
|
225
|
+
})
|
|
226
|
+
});
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
complete() {
|
|
230
|
+
respond({
|
|
231
|
+
id,
|
|
232
|
+
jsonrpc,
|
|
233
|
+
result: {
|
|
234
|
+
type: 'stopped'
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
});
|
|
165
240
|
/* istanbul ignore next */
|
|
166
241
|
|
|
167
242
|
if (client.readyState !== client.OPEN) {
|
|
168
243
|
// if the client got disconnected whilst initializing the subscription
|
|
169
|
-
|
|
244
|
+
// no need to send stopped message if the client is disconnected
|
|
245
|
+
sub.unsubscribe();
|
|
170
246
|
return;
|
|
171
247
|
}
|
|
172
248
|
/* istanbul ignore next */
|
|
@@ -174,76 +250,31 @@ function applyWSSHandler(opts) {
|
|
|
174
250
|
|
|
175
251
|
if (clientSubscriptions.has(id)) {
|
|
176
252
|
// duplicate request ids for client
|
|
177
|
-
sub
|
|
178
|
-
|
|
253
|
+
stopSubscription(sub, {
|
|
254
|
+
id,
|
|
255
|
+
jsonrpc
|
|
256
|
+
});
|
|
257
|
+
throw new TRPCError.TRPCError({
|
|
179
258
|
message: `Duplicate id ${id}`,
|
|
180
259
|
code: 'BAD_REQUEST'
|
|
181
260
|
});
|
|
182
261
|
}
|
|
183
262
|
|
|
184
263
|
clientSubscriptions.set(id, sub);
|
|
185
|
-
sub.on('data', data => {
|
|
186
|
-
respond({
|
|
187
|
-
id,
|
|
188
|
-
result: {
|
|
189
|
-
type: 'data',
|
|
190
|
-
data
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
sub.on('error', _error => {
|
|
195
|
-
var _opts$onError;
|
|
196
|
-
|
|
197
|
-
const error = transformTRPCResponse.getErrorFromUnknown(_error);
|
|
198
|
-
const json = {
|
|
199
|
-
id,
|
|
200
|
-
error: router.getErrorShape({
|
|
201
|
-
error,
|
|
202
|
-
type,
|
|
203
|
-
path,
|
|
204
|
-
input,
|
|
205
|
-
ctx
|
|
206
|
-
})
|
|
207
|
-
};
|
|
208
|
-
(_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
|
|
209
|
-
error,
|
|
210
|
-
path,
|
|
211
|
-
type,
|
|
212
|
-
ctx,
|
|
213
|
-
req,
|
|
214
|
-
input
|
|
215
|
-
});
|
|
216
|
-
respond(json);
|
|
217
|
-
});
|
|
218
|
-
sub.on('destroy', () => {
|
|
219
|
-
respond({
|
|
220
|
-
id,
|
|
221
|
-
result: {
|
|
222
|
-
type: 'stopped'
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
264
|
respond({
|
|
227
265
|
id,
|
|
266
|
+
jsonrpc,
|
|
228
267
|
result: {
|
|
229
268
|
type: 'started'
|
|
230
269
|
}
|
|
231
270
|
});
|
|
232
|
-
await sub.start();
|
|
233
271
|
} catch (cause)
|
|
234
272
|
/* istanbul ignore next */
|
|
235
273
|
{
|
|
236
274
|
var _opts$onError2;
|
|
237
275
|
|
|
238
276
|
// procedure threw an error
|
|
239
|
-
const error =
|
|
240
|
-
const json = router.getErrorShape({
|
|
241
|
-
error,
|
|
242
|
-
type,
|
|
243
|
-
path,
|
|
244
|
-
input,
|
|
245
|
-
ctx
|
|
246
|
-
});
|
|
277
|
+
const error = TRPCError.getErrorFromUnknown(cause);
|
|
247
278
|
(_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, {
|
|
248
279
|
error,
|
|
249
280
|
path,
|
|
@@ -254,7 +285,14 @@ function applyWSSHandler(opts) {
|
|
|
254
285
|
});
|
|
255
286
|
respond({
|
|
256
287
|
id,
|
|
257
|
-
|
|
288
|
+
jsonrpc,
|
|
289
|
+
error: router.getErrorShape({
|
|
290
|
+
error,
|
|
291
|
+
type,
|
|
292
|
+
path,
|
|
293
|
+
input,
|
|
294
|
+
ctx
|
|
295
|
+
})
|
|
258
296
|
});
|
|
259
297
|
}
|
|
260
298
|
}
|
|
@@ -266,9 +304,9 @@ function applyWSSHandler(opts) {
|
|
|
266
304
|
const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
|
|
267
305
|
await Promise.all(promises);
|
|
268
306
|
} catch (cause) {
|
|
269
|
-
const error = new
|
|
307
|
+
const error = new TRPCError.TRPCError({
|
|
270
308
|
code: 'PARSE_ERROR',
|
|
271
|
-
cause:
|
|
309
|
+
cause: TRPCError.getCauseFromUnknown(cause)
|
|
272
310
|
});
|
|
273
311
|
respond({
|
|
274
312
|
id: null,
|
|
@@ -284,7 +322,7 @@ function applyWSSHandler(opts) {
|
|
|
284
322
|
});
|
|
285
323
|
client.once('close', () => {
|
|
286
324
|
for (const sub of clientSubscriptions.values()) {
|
|
287
|
-
sub.
|
|
325
|
+
sub.unsubscribe();
|
|
288
326
|
}
|
|
289
327
|
|
|
290
328
|
clientSubscriptions.clear();
|
|
@@ -296,17 +334,7 @@ function applyWSSHandler(opts) {
|
|
|
296
334
|
} catch (cause) {
|
|
297
335
|
var _opts$onError3, _global$setImmediate;
|
|
298
336
|
|
|
299
|
-
const error =
|
|
300
|
-
const json = {
|
|
301
|
-
id: null,
|
|
302
|
-
error: router.getErrorShape({
|
|
303
|
-
error,
|
|
304
|
-
type: 'unknown',
|
|
305
|
-
path: undefined,
|
|
306
|
-
input: undefined,
|
|
307
|
-
ctx
|
|
308
|
-
})
|
|
309
|
-
};
|
|
337
|
+
const error = TRPCError.getErrorFromUnknown(cause);
|
|
310
338
|
(_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
|
|
311
339
|
error,
|
|
312
340
|
path: undefined,
|
|
@@ -315,7 +343,16 @@ function applyWSSHandler(opts) {
|
|
|
315
343
|
req,
|
|
316
344
|
input: undefined
|
|
317
345
|
});
|
|
318
|
-
respond(
|
|
346
|
+
respond({
|
|
347
|
+
id: null,
|
|
348
|
+
error: router.getErrorShape({
|
|
349
|
+
error,
|
|
350
|
+
type: 'unknown',
|
|
351
|
+
path: undefined,
|
|
352
|
+
input: undefined,
|
|
353
|
+
ctx
|
|
354
|
+
})
|
|
355
|
+
}); // close in next tick
|
|
319
356
|
|
|
320
357
|
((_global$setImmediate = global.setImmediate) !== null && _global$setImmediate !== void 0 ? _global$setImmediate : global.setTimeout)(() => {
|
|
321
358
|
client.close();
|
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;
|
package/dist/http/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TRPCError } from '../../TRPCError';
|
|
2
|
-
import { BaseHandlerOptions } from '../../internals/
|
|
2
|
+
import { BaseHandlerOptions } from '../../internals/baseHandlerOptions';
|
|
3
3
|
import { AnyRouter, ProcedureType, inferRouterContext, inferRouterError } from '../../router';
|
|
4
4
|
import { TRPCResponse } from '../../rpc';
|
|
5
5
|
import { Dict } from '../../types';
|
|
6
|
-
import { ResponseMeta } from '../
|
|
6
|
+
import { ResponseMeta } from '../responseMeta';
|
|
7
7
|
export declare type HTTPHeaders = Dict<string | string[]>;
|
|
8
8
|
export interface HTTPResponse {
|
|
9
9
|
status: number;
|
|
@@ -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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseMeta.d.ts","sourceRoot":"","sources":["../../src/http/responseMeta.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|